/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */
@layer properties {
    @supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {
        *, ::backdrop, :after, :before {
            --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-border-style: solid;
            --tw-leading: initial;
            --tw-font-weight: initial;
            --tw-tracking: 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-duration: initial;
            --tw-ease: initial
        }
    }
}

@layer theme {
    :host, :root {
        --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-500: oklch(63.7% .237 25.331);
        --color-red-600: oklch(57.7% .245 27.325);
        --color-red-700: oklch(50.5% .213 27.518);
        --color-orange-600: oklch(64.6% .222 41.116);
        --color-amber-50: oklch(98.7% .022 95.277);
        --color-amber-600: oklch(66.6% .179 58.318);
        --color-yellow-600: oklch(68.1% .162 75.834);
        --color-green-500: oklch(72.3% .219 149.579);
        --color-green-600: oklch(62.7% .194 149.214);
        --color-emerald-600: oklch(59.6% .145 163.225);
        --color-teal-600: oklch(60% .118 184.704);
        --color-blue-50: oklch(97% .014 254.604);
        --color-blue-500: oklch(62.3% .214 259.815);
        --color-blue-600: oklch(54.6% .245 262.881);
        --color-blue-700: oklch(48.8% .243 264.376);
        --color-blue-800: oklch(42.4% .199 265.638);
        --color-indigo-50: oklch(96.2% .018 272.314);
        --color-indigo-600: oklch(51.1% .262 276.966);
        --color-indigo-700: oklch(45.7% .24 277.023);
        --color-purple-500: oklch(62.7% .265 303.9);
        --color-purple-600: oklch(55.8% .288 302.321);
        --color-purple-700: oklch(49.6% .265 301.924);
        --color-rose-600: oklch(58.6% .253 17.585);
        --color-gray-50: oklch(98.5% .002 247.839);
        --color-gray-100: oklch(96.7% .003 264.542);
        --color-gray-200: oklch(92.8% .006 264.531);
        --color-gray-300: oklch(87.2% .01 258.338);
        --color-gray-400: oklch(70.7% .022 261.325);
        --color-gray-500: oklch(55.1% .027 264.364);
        --color-gray-600: oklch(44.6% .03 256.802);
        --color-gray-700: oklch(37.3% .034 259.733);
        --color-gray-800: oklch(27.8% .033 256.848);
        --color-gray-900: oklch(21% .034 264.665);
        --color-black: #000;
        --color-white: #fff;
        --spacing: .25rem;
        --container-md: 28rem;
        --container-xl: 36rem;
        --container-2xl: 42rem;
        --container-4xl: 56rem;
        --container-5xl: 64rem;
        --container-7xl: 80rem;
        --text-xs: .75rem;
        --text-xs--line-height: 1.33333;
        --text-sm: .875rem;
        --text-sm--line-height: 1.42857;
        --text-base: 1rem;
        --text-base--line-height: 1.5;
        --text-lg: 1.125rem;
        --text-lg--line-height: 1.55556;
        --text-xl: 1.25rem;
        --text-xl--line-height: 1.4;
        --text-2xl: 1.5rem;
        --text-2xl--line-height: 1.33333;
        --text-3xl: 1.875rem;
        --text-3xl--line-height: 1.2;
        --text-4xl: 2.25rem;
        --text-4xl--line-height: 1.11111;
        --text-5xl: 3rem;
        --text-5xl--line-height: 1;
        --font-weight-medium: 500;
        --font-weight-semibold: 600;
        --font-weight-bold: 700;
        --tracking-tight: -.025em;
        --leading-relaxed: 1.625;
        --radius-md: .375rem;
        --radius-lg: .5rem;
        --radius-xl: .75rem;
        --ease-in-out: cubic-bezier(.4, 0, .2, 1);
        --default-transition-duration: .15s;
        --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
        --default-font-family: var(--font-sans);
        --default-mono-font-family: var(--font-mono)
    }
}

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

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

    :host, html {
        -webkit-text-size-adjust: 100%;
        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);
        line-height: 1.5;
        -moz-tab-size: 4;
        -o-tab-size: 4;
        tab-size: 4;
        -webkit-tap-highlight-color: transparent
    }

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

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

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

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

    b, strong {
        font-weight: bolder
    }

    code, kbd, pre, samp {
        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-size: 1em;
        font-variation-settings: var(--default-mono-font-variation-settings, normal)
    }

    small {
        font-size: 80%
    }

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

    sub {
        bottom: -.25em
    }

    sup {
        top: -.5em
    }

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

    :-moz-focusring {
        outline: auto
    }

    progress {
        vertical-align: baseline
    }

    summary {
        display: list-item
    }

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

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

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

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

    ::file-selector-button {
        background-color: #0000;
        border-radius: 0;
        color: inherit;
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        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
    }

    ::-moz-placeholder {
        opacity: 1
    }

    ::placeholder {
        opacity: 1
    }

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

        ::placeholder {
            color: currentColor
        }

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

            ::placeholder {
                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 {
        padding-block: 0
    }

    ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-month-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-second-field {
        padding-block: 0
    }

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

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

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

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

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

    ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
        height: auto
    }

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

@layer components;

@layer utilities {
    .visible {
        visibility: visible
    }

    .sr-only {
        border-width: 0;
        clip-path: inset(50%);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        white-space: nowrap;
        width: 1px
    }

    .absolute, .sr-only {
        position: absolute
    }

    .fixed {
        position: fixed
    }

    .relative {
        position: relative
    }

    .static {
        position: static
    }

    .inset-0 {
        inset: calc(var(--spacing) * 0)
    }

    .z-50 {
        z-index: 50
    }

    .container {
        width: 100%
    }

    @media (min-width: 40rem) {
        .container {
            max-width: 40rem
        }
    }@media (min-width: 48rem) {
    .container {
        max-width: 48rem
    }
}@media (min-width: 64rem) {
    .container {
        max-width: 64rem
    }
}@media (min-width: 80rem) {
    .container {
        max-width: 80rem
    }
}@media (min-width: 96rem) {
    .container {
        max-width: 96rem
    }
}.mx-5 {
     margin-inline: calc(var(--spacing) * 5)
 }

    .mx-auto {
        margin-inline: auto
    }

    .my-5 {
        margin-block: calc(var(--spacing) * 5)
    }

    .my-10 {
        margin-block: calc(var(--spacing) * 10)
    }

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

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

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

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

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

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

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

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

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

    .mr-2 {
        margin-right: calc(var(--spacing) * 2)
    }

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

    .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-6 {
        margin-bottom: calc(var(--spacing) * 6)
    }

    .mb-8 {
        margin-bottom: calc(var(--spacing) * 8)
    }

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

    .block {
        display: block
    }

    .flex {
        display: flex
    }

    .grid {
        display: grid
    }

    .hidden {
        display: none
    }

    .inline-flex {
        display: inline-flex
    }

    .size-6 {
        height: calc(var(--spacing) * 6);
        width: calc(var(--spacing) * 6)
    }

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

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

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

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

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

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

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

    .h-screen {
        height: 100vh
    }

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

    .min-h-screen {
        min-height: 100vh
    }

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

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

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

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

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

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

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

    .w-full {
        width: 100%
    }

    .max-w-2xl {
        max-width: var(--container-2xl)
    }

    .max-w-4xl {
        max-width: var(--container-4xl)
    }

    .max-w-5xl {
        max-width: var(--container-5xl)
    }

    .max-w-7xl {
        max-width: var(--container-7xl)
    }

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

    .max-w-none {
        max-width: none
    }

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

    .flex-1 {
        flex: 1
    }

    .flex-auto {
        flex: auto
    }

    .flex-shrink {
        flex-shrink: 1
    }

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

    .cursor-not-allowed {
        cursor: not-allowed
    }

    .resize {
        resize: both
    }

    .list-disc {
        list-style-type: disc
    }

    .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))
    }

    .flex-col {
        flex-direction: column
    }

    .flex-wrap {
        flex-wrap: wrap
    }

    .items-center {
        align-items: center
    }

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

    .justify-center {
        justify-content: center
    }

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

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

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

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

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

    :where(.space-y-1>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 1 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 1 * var(--tw-space-y-reverse))
    }

    :where(.space-y-3>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 3 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 3 * var(--tw-space-y-reverse))
    }

    :where(.space-y-4>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 4 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 4 * var(--tw-space-y-reverse))
    }

    :where(.space-y-6>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 6 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 6 * var(--tw-space-y-reverse))
    }

    :where(.space-y-8>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 8 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 8 * var(--tw-space-y-reverse))
    }

    :where(.space-y-16>:not(:last-child)) {
        --tw-space-y-reverse: 0;
        margin-block-end: calc(var(--spacing) * 16 * (1 - var(--tw-space-y-reverse)));
        margin-block-start: calc(var(--spacing) * 16 * var(--tw-space-y-reverse))
    }

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

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

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

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

    .gap-y-12 {
        row-gap: calc(var(--spacing) * 12)
    }

    .gap-y-16 {
        row-gap: calc(var(--spacing) * 16)
    }

    .self-center {
        align-self: center
    }

    .overflow-auto {
        overflow: auto
    }

    .overflow-hidden {
        overflow: hidden
    }

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

    .rounded {
        border-radius: .25rem
    }

    .rounded-full {
        border-radius: 3.40282e+38px
    }

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

    .rounded-md {
        border-radius: var(--radius-md)
    }

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

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

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

    .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-b {
        border-bottom-style: var(--tw-border-style);
        border-bottom-width: 1px
    }

    .border-dashed {
        --tw-border-style: dashed;
        border-style: dashed
    }

    .border-gray-200 {
        border-color: var(--color-gray-200)
    }

    .border-gray-300 {
        border-color: var(--color-gray-300)
    }

    .border-gray-900\/10 {
        border-color: #1018281a
    }

    @supports (color:color-mix(in lab,red,red)) {
        .border-gray-900\/10 {
            border-color: color-mix(in oklab, var(--color-gray-900) 10%, transparent)
        }
    }.bg-amber-50 {
         background-color: var(--color-amber-50)
     }

    .bg-amber-600 {
        background-color: var(--color-amber-600)
    }

    .bg-black\/40 {
        background-color: #0006
    }

    @supports (color:color-mix(in lab,red,red)) {
        .bg-black\/40 {
            background-color: color-mix(in oklab, var(--color-black) 40%, transparent)
        }
    }.bg-blue-50 {
         background-color: var(--color-blue-50)
     }

    .bg-blue-500 {
        background-color: var(--color-blue-500)
    }

    .bg-blue-600 {
        background-color: var(--color-blue-600)
    }

    .bg-emerald-600 {
        background-color: var(--color-emerald-600)
    }

    .bg-gray-50 {
        background-color: var(--color-gray-50)
    }

    .bg-gray-100 {
        background-color: var(--color-gray-100)
    }

    .bg-gray-500 {
        background-color: var(--color-gray-500)
    }

    .bg-green-500 {
        background-color: var(--color-green-500)
    }

    .bg-indigo-50 {
        background-color: var(--color-indigo-50)
    }

    .bg-indigo-600 {
        background-color: var(--color-indigo-600)
    }

    .bg-orange-600 {
        background-color: var(--color-orange-600)
    }

    .bg-purple-500 {
        background-color: var(--color-purple-500)
    }

    .bg-purple-600 {
        background-color: var(--color-purple-600)
    }

    .bg-red-500 {
        background-color: var(--color-red-500)
    }

    .bg-rose-600 {
        background-color: var(--color-rose-600)
    }

    .bg-teal-600 {
        background-color: var(--color-teal-600)
    }

    .bg-white {
        background-color: var(--color-white)
    }

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

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

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

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

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

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

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

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

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

    .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-3 {
        padding-block: calc(var(--spacing) * 3)
    }

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

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

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

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

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

    .pt-10 {
        padding-top: calc(var(--spacing) * 10)
    }

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

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

    .pl-5 {
        padding-left: calc(var(--spacing) * 5)
    }

    .text-center {
        text-align: center
    }

    .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 {
        line-height: var(--tw-leading, var(--text-base--line-height))
    }

    .text-base, .text-base\/7 {
        font-size: var(--text-base)
    }

    .text-base\/7 {
        line-height: calc(var(--spacing) * 7)
    }

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

    .text-lg, .text-lg\/8 {
        font-size: var(--text-lg)
    }

    .text-lg\/8 {
        line-height: calc(var(--spacing) * 8)
    }

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

    .text-sm, .text-sm\/6 {
        font-size: var(--text-sm)
    }

    .text-sm\/6 {
        line-height: calc(var(--spacing) * 6)
    }

    .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-\[11px\] {
        font-size: 11px
    }

    .leading-relaxed {
        --tw-leading: var(--leading-relaxed);
        line-height: var(--leading-relaxed)
    }

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

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

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

    .tracking-tight {
        --tw-tracking: var(--tracking-tight);
        letter-spacing: var(--tracking-tight)
    }

    .text-balance {
        text-wrap: balance
    }

    .text-pretty {
        text-wrap: pretty
    }

    .text-blue-500 {
        color: var(--color-blue-500)
    }

    .text-blue-600 {
        color: var(--color-blue-600)
    }

    .text-gray-400 {
        color: var(--color-gray-400)
    }

    .text-gray-500 {
        color: var(--color-gray-500)
    }

    .text-gray-600 {
        color: var(--color-gray-600)
    }

    .text-gray-700 {
        color: var(--color-gray-700)
    }

    .text-gray-800 {
        color: var(--color-gray-800)
    }

    .text-gray-900 {
        color: var(--color-gray-900)
    }

    .text-green-600 {
        color: var(--color-green-600)
    }

    .text-indigo-700 {
        color: var(--color-indigo-700)
    }

    .text-red-500 {
        color: var(--color-red-500)
    }

    .text-red-600 {
        color: var(--color-red-600)
    }

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

    .text-yellow-600 {
        color: var(--color-yellow-600)
    }

    .underline {
        text-decoration-line: underline
    }

    .accent-purple-600 {
        accent-color: var(--color-purple-600)
    }

    .opacity-50 {
        opacity: .5
    }

    .shadow-2xl {
        --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040)
    }

    .shadow-2xl, .shadow-lg {
        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, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a)
    }

    .shadow-sm {
        --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a)
    }

    .ring-1, .shadow-sm {
        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)
    }

    .ring-black\/5 {
        --tw-ring-color: #0000000d
    }

    @supports (color:color-mix(in lab,red,red)) {
        .ring-black\/5 {
            --tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent)
        }
    }.ring-indigo-700\/10 {
         --tw-ring-color: #432dd71a
     }

    @supports (color:color-mix(in lab,red,red)) {
        .ring-indigo-700\/10 {
            --tw-ring-color: color-mix(in oklab, var(--color-indigo-700) 10%, transparent)
        }
    }.outline {
         outline-style: var(--tw-outline-style);
         outline-width: 1px
     }

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

    .transition {
        transition-duration: var(--tw-duration, var(--default-transition-duration));
        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, backdrop-filter, display, content-visibility, overlay, pointer-events;
        transition-timing-function: var(--tw-ease, var(--default-transition-timing-function))
    }

    .transition-colors {
        transition-duration: var(--tw-duration, var(--default-transition-duration));
        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))
    }

    .duration-200 {
        --tw-duration: .2s;
        transition-duration: .2s
    }

    .ease-in-out {
        --tw-ease: var(--ease-in-out);
        transition-timing-function: var(--ease-in-out)
    }

    .select-none {
        -webkit-user-select: none;
        -moz-user-select: none;
        user-select: none
    }

    .ring-inset {
        --tw-ring-inset: inset
    }

    @media (hover: hover) {
        .hover\:border-blue-500:hover {
            border-color: var(--color-blue-500)
        }

        .hover\:bg-blue-600:hover {
            background-color: var(--color-blue-600)
        }

        .hover\:bg-blue-700:hover {
            background-color: var(--color-blue-700)
        }

        .hover\:bg-gray-50:hover {
            background-color: var(--color-gray-50)
        }

        .hover\:bg-gray-100:hover {
            background-color: var(--color-gray-100)
        }

        .hover\:bg-gray-600:hover {
            background-color: var(--color-gray-600)
        }

        .hover\:bg-green-600:hover {
            background-color: var(--color-green-600)
        }

        .hover\:bg-purple-600:hover {
            background-color: var(--color-purple-600)
        }

        .hover\:bg-purple-700:hover {
            background-color: var(--color-purple-700)
        }

        .hover\:bg-red-600:hover {
            background-color: var(--color-red-600)
        }

        .hover\:text-blue-700:hover {
            color: var(--color-blue-700)
        }

        .hover\:text-blue-800:hover {
            color: var(--color-blue-800)
        }

        .hover\:text-gray-700:hover {
            color: var(--color-gray-700)
        }

        .hover\:text-gray-800:hover {
            color: var(--color-gray-800)
        }

        .hover\:text-gray-900:hover {
            color: var(--color-gray-900)
        }

        .hover\:text-red-700:hover {
            color: var(--color-red-700)
        }
    }.focus\:ring-1:focus {
         --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor)
     }

    .focus\:ring-1:focus, .focus\:ring-2:focus {
        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-2:focus {
        --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor)
    }

    .focus\:ring-blue-500:focus {
        --tw-ring-color: var(--color-blue-500)
    }

    .focus\:ring-purple-500:focus {
        --tw-ring-color: var(--color-purple-500)
    }

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

    @media (min-width: 40rem) {
        .sm\:mx-20 {
            margin-inline: calc(var(--spacing) * 20)
        }

        .sm\:mt-10 {
            margin-top: calc(var(--spacing) * 10)
        }

        .sm\:mt-20 {
            margin-top: calc(var(--spacing) * 20)
        }

        .sm\:grid {
            display: grid
        }

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

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

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

        :where(.sm\:space-y-0>:not(:last-child)) {
            --tw-space-y-reverse: 0;
            margin-block-end: calc(var(--spacing) * 0 * (1 - var(--tw-space-y-reverse)));
            margin-block-start: calc(var(--spacing) * 0 * var(--tw-space-y-reverse))
        }

        .sm\:gap-x-6 {
            -moz-column-gap: calc(var(--spacing) * 6);
            column-gap: calc(var(--spacing) * 6)
        }

        .sm\:gap-y-16 {
            row-gap: calc(var(--spacing) * 16)
        }

        .sm\:px-8 {
            padding-inline: calc(var(--spacing) * 8)
        }

        .sm\:py-24 {
            padding-block: calc(var(--spacing) * 24)
        }

        .sm\:py-32 {
            padding-block: calc(var(--spacing) * 32)
        }

        .sm\:text-5xl {
            font-size: var(--text-5xl);
            line-height: var(--tw-leading, var(--text-5xl--line-height))
        }
    }@media (min-width: 48rem) {
    .md\:mt-0 {
        margin-top: calc(var(--spacing) * 0)
    }

    .md\:grid {
        display: grid
    }

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

    .md\:grid-cols-5 {
        grid-template-columns:repeat(5, minmax(0, 1fr))
    }

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

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

    .md\:px-16 {
        padding-inline: calc(var(--spacing) * 16)
    }
}@media (min-width: 64rem) {
    .lg\:mx-0 {
        margin-inline: calc(var(--spacing) * 0)
    }

    .lg\:mt-14 {
        margin-top: calc(var(--spacing) * 14)
    }

    .lg\:mt-24 {
        margin-top: calc(var(--spacing) * 24)
    }

    .lg\:max-w-none {
        max-width: none
    }

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

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

    .lg\:grid-cols-6 {
        grid-template-columns:repeat(6, minmax(0, 1fr))
    }

    .lg\:gap-x-10 {
        -moz-column-gap: calc(var(--spacing) * 10);
        column-gap: calc(var(--spacing) * 10)
    }

    .lg\:px-8 {
        padding-inline: calc(var(--spacing) * 8)
    }

    .lg\:px-32 {
        padding-inline: calc(var(--spacing) * 32)
    }
}@media (min-width: 80rem) {
    .xl\:col-span-2 {
        grid-column: span 2/span 2
    }

    .xl\:mt-0 {
        margin-top: calc(var(--spacing) * 0)
    }

    .xl\:grid {
        display: grid
    }

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

    .xl\:grid-cols-7 {
        grid-template-columns:repeat(7, minmax(0, 1fr))
    }

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

    .xl\:px-48 {
        padding-inline: calc(var(--spacing) * 48)
    }
}
}

:root {
    --cols: 4;
    --rows: 4;
    --cell: 64px ;
    --board-pad: 10px;
    --board-bg: #fff;
    --base-gap: 6px;
    --base-fill: #e7d6cf;
    --base-stroke: #d7bfb5;
    --base-stroke-w: 2px;
    --grid-width: calc(var(--cols) * var(--cell) + (var(--cols) - 1) * var(--base-gap));
    --grid-height: calc(var(--rows) * var(--cell) + (var(--rows) - 1) * var(--base-gap));
    --top-dash-w: 2;
    --top-dash-array: 6 6;
    --top-radius: 10;
    --slot1-fill: #2e7d3233;
    --slot2-fill: #1976d233;
    --slot3-fill: #d17d8e33;
    --slot4-fill: #ea530133;
    --slot5-fill: #7b1fa233;
    --slot6-fill: #509ea453;
    --slot1-dash: #2e7b32;
    --slot2-dash: #1874cf;
    --slot3-dash: #d98e9d;
    --slot4-dash: #ea5301;
    --slot5-dash: #7a1fa1;
    --slot6-dash: #5ba9b0
}

.domino-wrapper.rotate-buffer {
    outline: 2px dashed #00000059;
    outline-offset: 2px;
    z-index: 1000
}

.board {
    margin: 0
}

.label-badge[data-region-type=greater] {
    --label-prefix: ">"
}

.label-badge[data-region-type=less] {
    --label-prefix: "<"
}

.label-badge[data-region-type=equals] {
    --label-prefix: "="
}

.label-badge[data-region-type=unequal] {
    --label-prefix: "≠"
}

.label-badge[data-region-type=sum] {
    --label-prefix: ""
}

.label-badge[data-region-type=equals]:after, .label-badge[data-region-type=unequal]:after {
    font-size: clamp(14px, calc(var(--cell) * .38), 16px);
    font-weight: 900;
    height: 23px
}

.label-badge[data-region-type=greater]:after, .label-badge[data-region-type=less]:after {
    font-size: clamp(12px, calc(var(--cell) * .38), 15px);
    font-weight: 700;
    height: 23px
}

.label-badge[data-slot="1"]:before {
    background: var(--slot1-dash)
}

.label-badge[data-slot="2"]:before {
    background: var(--slot2-dash)
}

.label-badge[data-slot="3"]:before {
    background: var(--slot3-dash)
}

.label-badge[data-slot="4"]:before {
    background: var(--slot4-dash)
}

.label-badge[data-slot="5"]:before {
    background: var(--slot5-dash)
}

.label-badge[data-slot="6"]:before {
    background: var(--slot6-dash)
}

.label-badge:after {
    align-items: center;
    bottom: var(--badge-inset, -10px);
    color: #fff;
    content: var(--label-prefix, "") attr(data-target);
    display: flex;
    font-size: clamp(10px, calc(var(--cell) * .38), 12px);
    font-weight: black;
    height: 20px;
    justify-content: center;
    line-height: 1;
    position: absolute;
    right: var(--badge-inset, -10px);
    white-space: nowrap;
    width: 20px;
    z-index: 2
}

* {
    box-sizing: border-box
}

body {
    background: #f5f5f5;
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;
    margin: 0
}

.wrap {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 8px #0000000f;
    margin: 0 auto 20px
}

h2 {
    margin: 0 0 12px
}

.header {
    align-items: center;
    display: flex;
    gap: 12px;
    margin-bottom: 8px
}

.logo img {
    height: 32px;
    width: 32px
}

h1 {
    color: #1e293b;
    font-size: 28px;
    font-weight: 700;
    margin: 0
}

.stage {
    padding: 2px
}

.grida, .stage {
    position: relative
}

.grida {
    display: grid;
    gap: var(--base-gap);
    grid-template-columns:repeat(var(--cols), var(--cell));
    grid-template-rows:repeat(var(--rows), var(--cell));
    justify-content: center
}

.grid-base {
    z-index: 1
}

.fills {
    z-index: 2
}

.fills, .grid-top {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    position: absolute
}

.grid-top {
    z-index: 3
}

#outline {
    display: block;
    z-index: 4
}

#outline, .grid-labels {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    position: absolute
}

.grid-labels {
    z-index: 5
}

.cell-base {
    background: var(--base-fill);
    border: var(--base-stroke-w) solid var(--base-stroke);
    border-radius: 10px
}

.cell-base, .cell-top {
    height: var(--cell);
    width: var(--cell)
}

.cell-top {
    border: none;
    border-radius: 0;
    position: relative
}

.label {
    align-items: center;
    color: #555;
    display: flex;
    font-size: 12px;
    font-weight: 700;
    height: var(--cell);
    justify-content: center;
    width: var(--cell)
}

.info {
    background: #f0f9ff;
    border: 1px solid #0ea5e9;
    border-radius: 8px;
    color: #0c4a6e;
    font-size: 14px
}

.info, .puzzle-info {
    margin-bottom: 20px;
    padding: 12px
}

.puzzle-info {
    /*background: #f8fafc;*/
    /*border: 1px solid #ed0909;*/
    /*border-radius: 8px;*/
    color: #334155;
    font-size: 13px;
    display:flex;
    justify-content:right;
    max-width:800px;
    margin:auto;
    padding-bottom: 1px;

}

.puzzle-info strong {
    color: #1e293b
}

.container {
    margin: 0 auto;
    max-width: 1000px
}

.instructions {
    color: #666;
    margin-bottom: 20px;
    text-align: center
}

.canvas-container {
    align-items: flex-start;
    display: flex;
    justify-content: center;
    position: relative;
    width: 100%;
    min-height:250px
}

.board {
    height: var(--grid-height);
    position: relative;
    width: var(--grid-width)
}

.canvas-drop-zone {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.domino-tray-container {
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px #0000001a;
    display: flex;
    justify-content: center;
    margin: 0 auto 20px;
    max-width: 800px;
    overflow: hidden;
    padding: 20px
}

.domino-tray {
    display: grid;
    gap: 2px;
    justify-content: center;
    max-width: 800px;
    width: 100%
}

.cell-base.is-visible {
    background: #dec2b6;
    border: var(--base-stroke-w) solid var(--base-stroke)
}

.cell-base.is-ghost {
    filter: grayscale(20%);
    opacity: .45
}

.tray-slot {
    align-items: center;
    border: 1px dashed #0000;
    border-radius: 8px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    position: relative;
    transition: border-color .2s
}

.tray-slot:empty:after {
    background-color: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
    content: "";
    top: 5px;
    right: 5px;
    bottom: 5px;
    left: 5px;
    position: absolute;
    z-index: 1
}

.domino-wrapper {
    background: #fff;
    border-radius: 4px
}

.domino-wrapper.in-canvas {
    background: 0 0
}

.domino-wrapper.in-canvas:hover:not(.is-active) {
    transform: scale(1.05);
    z-index: 1000
}

.domino-wrapper.in-tray {
    cursor: pointer;
    transform: scale(.9)
}

.domino-wrapper.in-tray:hover:not(.dragging):not(.rotating) {
    transform: scale(.9)
}

.domino-wrapper.used {
    opacity: 0;
    pointer-events: none;
    transform: scale(.8);
    transition: all .3s
}

.domino-wrapper.returning {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
    transition: all .4s
}

.domino-tile {
    background-color: #fff;
    border: 2px solid #333;
    border-radius: 6px;
    box-shadow: 0 2px 4px #0000001a;
    display: flex;
    height: var(--cell);
    transform-origin: 50%;
    transition: transform .3s, box-shadow .3s, border-color .3s, opacity .3s;
    width: calc(var(--cell) * 2 - var(--base-gap));
    z-index: 1
}

.domino-tile:hover {
    border-color: #4caf50;
    box-shadow: 0 4px 8px #0003
}

.half-domino {
    align-items: center;
    display: flex;
    flex: 1;
    justify-content: center
}

.half-domino.first {
    border-bottom-left-radius: 4px;
    border-right: 1px solid #333;
    border-top-left-radius: 4px
}

.half-domino.second {
    border-bottom-right-radius: 4px;
    border-top-right-radius: 4px
}

.half-domino {
    display: grid;
    grid-template-columns:repeat(3, 1fr);
    grid-template-rows:repeat(3, 1fr);
    position: relative
}

:root {
    --pip-size: calc(var(--cell) * .22)
}

.dot {
    background: #333;
    border-radius: 50%;
    height: var(--pip-size);
    place-self: center;
    width: var(--pip-size)
}

.p-tl {
    grid-area: 1/1
}

.p-tc {
    grid-area: 1/2
}

.p-tr {
    grid-area: 1/3
}

.p-ml {
    grid-area: 2/1
}

.p-cc {
    grid-area: 2/2
}

.p-mr {
    grid-area: 2/3
}

.p-bl {
    grid-area: 3/1
}

.p-bc {
    grid-area: 3/2
}

.p-br {
    grid-area: 3/3
}

.domino-tile.click-feedback {
    transform: scale(1.1)
}

.domino-wrapper.in-canvas.snapped {
    z-index: 1 !important
}

.domino-wrapper.in-canvas {
    position: absolute;
    z-index: 100
}

.domino-wrapper.in-canvas.dragging {
    z-index: 200 !important
}

.domino-wrapper.in-canvas:hover:not(.dragging):not(.rotating):not(.is-active) {
    transform: scale(1.05);
    z-index: 100 !important
}

.domino-wrapper, body.dragging {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.domino-wrapper {
    box-sizing: border-box;
    cursor: grab
}

.domino-tile {
    aspect-ratio: auto !important;
    height: 100% !important;
    width: 100% !important
}

.half-domino {
    box-sizing: border-box
}

.domino-tile {
    position: relative
}

.domino-rotor {
    height: 100%;
    width: 100%
}

.domino-rotor, .domino-tile, .domino-wrapper {
    transform-origin: 50%
}

.grid-labels .label {
    pointer-events: none;
    position: relative
}

.label-badge:before {
    border-radius: 3px;
    bottom: var(--badge-inset, -10px);
    content: "";
    filter: drop-shadow(0 1px 2px #0000004d);
    height: 20px;
    position: absolute;
    right: var(--badge-inset, -10px);
    transform: rotate(45deg);
    width: 20px;
    z-index: 1
}

.domino-wrapper.in-canvas, .domino-wrapper.in-tray {
    touch-action: none;
    -ms-touch-action: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-touch-callout: none
}

.canvas-container {
    padding-bottom: calc(var(--board-pad) + 8px);
    padding-right: calc(var(--board-pad))
}

.status-message {
    background: #000c;
    border-radius: 10px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    left: 50%;
    opacity: 0;
    padding: 20px 40px;
    position: fixed;
    top: 50%;
    transform: translate(-50%, -50%);
    transition: all .3s;
    visibility: hidden;
    z-index: 1000
}

.status-message.show {
    opacity: 1;
    visibility: visible
}

.status-message.success {
    background: #4caf50e6
}

.status-message.error {
    background: #f44336e6
}

.status-message.warning {
    background: #ff9800e6
}

/* 基础toolbar样式 */
.toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    /*background: #fff;*/
    /*border-radius: 12px;*/
    /*box-shadow: 0 2px 8px #0000001a;*/
    margin-bottom: 20px;
    margin-left: auto;
    margin-right: auto;
    max-width: 800px;
    padding: 10px 15px;
    gap: 10px;
    animation: toolbarFadeIn .3s ease-out
}
/* 统一各组件高度 */
.logo-container,
.difficulty-selector,
.timer-display,
.nav {
    height: 40px;
    display: flex;
    align-items: center;
}

/* Logo样式 */
.logo-container {
    flex: 0 0 auto;
}
.site-logo {
     font-size: 28px;
    font-weight: 700;
    background: radial-gradient(circle at center, #854d0e, #f59e0b);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    letter-spacing: 0.5px;
    margin: 0;
    padding: 0 4px;
    line-height: 1;
    transform: scaleY(1.5); /* 垂直拉伸1.5倍 */

}
/* 难度选择器 */
.difficulty-selector {
    position: relative;
    flex: 0 1 auto;
    min-width: 100px;
}

.difficulty-label {
    position: absolute;
    top: -8px;
    left: 8px;
    background: #fff;
    padding: 0 4px;
    font-size: 10px;
    color: #854d0e;
    font-weight: 500;
    z-index: 1;
}

.difficulty-select {
    background-color: #fef9c3;
    border: 1px solid #eab308;
    border-radius: 6px;
    color: #854d0e;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    min-width: 100px;
    padding: 8px 20px 8px 8px;
    transition: all .2s;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23854d0e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 12px;
    height: 36px;
    box-sizing: border-box;
}
.difficulty-select:hover {
    background-color: #fde047;
    box-shadow: 0 2px 4px #0000001a;
}
.difficulty-select:focus {
    outline: none;
    border-color: #eab308;
    box-shadow: 0 0 0 3px #fef9c380;
}
.difficulty-select option {
    background-color: #fff;
    color: #374151;
    padding: 8px;
}
.difficulty-select option:hover {
    background-color: #fbbf24;
    color: #854d0e;
}


/* 计时器 */
.timer-display {
    background: #78a6f6;
    border-radius: 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    gap: 6px;
    justify-content: center;
    padding: 0 12px;
    flex: 0 1 auto;
    min-width: 80px;
}

.timer-icon {
    font-size: 14px
}

.timer-text {
    font-family: Courier New, monospace;
    letter-spacing: 1px;
    font-size: medium;
}

/* 导航按钮组 */
.nav {
    flex: 0 1 auto;
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

.nav button {
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    color: #374151;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    min-width: 60px;
    padding: 0 8px;
    transition: all .2s;
    height: 36px;
    box-sizing: border-box;
}
.nav button:hover {
    background: #f9fafb;
    border-color: #9ca3af;
    box-shadow: 0 2px 4px #0000001a;
    color: #111827;
    transform: translateY(-1px);
}

.nav button:active {
    box-shadow: 0 1px 2px #0000001a;
    transform: translateY(0);
}

.nav button:disabled {
    box-shadow: none;
    cursor: not-allowed;
    opacity: .5;
    transform: none;
}

.nav button:disabled:hover {
    background: #fff;
    border-color: #d1d5db;
    color: #374151;
}

.nav button#btnRandom {
    background: #e0fbfb;
    border: 0;
    color: #049c8d;
    box-shadow: 0 2px 4px #0000001a;
}
.nav button#btnRandom:hover {
    background: #6de3fb;

    transform: translateY(-1px);
}

/* Reset按钮样式 */
.nav button#btnReset {
    background: #fbfbda;
    border: 0;
    color: #d59549;
    box-shadow: 0 2px 4px #0000001a;

}

.nav button#btnReset:hover {
    background: #fde047;
    transform: translateY(-1px);
}

.nav button#btnReset:active {
    box-shadow: 0 1px 2px #0000001a;
    transform: translateY(0);
}

.nav button#feedbackBtn {
   border: 0;
   box-shadow: 0 2px 4px #0000001a;
}

.nav button#shareBtn {
    background: #cefacb;
    border: 0;
    color: #539c04;
    box-shadow: 0 2px 4px #0000001a;
}
.nav button#shareBtn:hover {
    background: #95f86c;
    transform: translateY(-1px);
}
/* From Uiverse.io by Mohammad-Rahme-576 */
/* Container Styles */
.tooltip-container {
  position: relative;
  display: inline-block;
  font-family: "Arial", sans-serif;
  overflow: visible;
}

/* Button Styles */
.button-content {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #6e8efb;
  color: white;
  padding: 6px 6px;
  border-radius: 5px;
  cursor: pointer;

  /*box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);*/
  position: relative;
  z-index: 10;
  overflow: hidden;
}

.button-content::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;

  filter: blur(15px);
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: -1;
}

.button-content::after {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 100%;
  height: 100%;

  transform: scale(0);
  transition: transform 0.6s ease-out;
  z-index: -1;
}

.button-content:hover::before {
  opacity: 1;
}

.button-content:hover::after {
  transform: scale(1);
}

.button-content:hover {
  background:  #a777e3;

}

.button-content:active {
  transform: translateY(-2px) scale(0.98);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.15);
}

.text {
  font-size: 12px;
  font-weight:300;
  margin-right: 2px;
  white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  transition: letter-spacing 0.3s ease;
}


.share-icon {
  fill: white;
  transition:
    transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55),
    fill 0.3s ease;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}

.button-content:hover .share-icon {
  transform: rotate(180deg) scale(1.1);
  fill: #ffffff;
}

/* Tooltip Styles */
.tooltip-content {
  position: absolute;
  top: 100%;
  left: 50%;

  background: white;
  border-radius: 15px;
  padding: 12px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;

  z-index: 100;
  pointer-events: none;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.9);
}

.tooltip-container:hover .tooltip-content {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) scale(1);
  pointer-events: auto;
}

/* Social Icons Styles */
.social-icons {
  display: flex;
  /*justify-content: space-between;*/
  flex-direction:column;
  gap: 12px;
  align-items: center;
}

.social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width:24px;
  height: 24px;
  border-radius: 50%;
  background: #f0f0f0;
  transition:
    transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55),
    background 0.3s ease,
    box-shadow 0.4s ease;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: hidden;
}

.social-icon::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at center,
    rgba(255, 255, 255, 0.8) 0%,
    rgba(255, 255, 255, 0) 70%
  );
  opacity: 0;
  transition: opacity 0.3s ease;
}

.social-icon:hover::before {
  opacity: 1;
}

.social-icon svg {
  width:16px;
  height: 16px;
  fill: #333;
  transition:
    transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55),
    fill 0.3s ease;
  z-index: 1;
}

.social-icon:hover {
  transform: translateY(-5px) scale(1.1);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
}

.social-icon:active {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
}

.social-icon:hover svg {
  transform: scale(1.2);
  fill: white;
}

.social-icon.twitter:hover {
  background: linear-gradient(135deg, #1da1f2, #1a91da);
}

.social-icon.facebook:hover {
  background: linear-gradient(135deg, #1877f2, #165ed0);
}

.social-icon.linkedin:hover {
  background: linear-gradient(135deg, #0077b5, #005e94);
}

.social-icon.instagram:hover {
  background: linear-gradient(135deg, #c673f6, #ea58f4);
}

.social-icon.reddit:hover {
  background: linear-gradient(135deg, #f15f71, #f3593f);
}

.button-content {
  animation: pulse 3s infinite;
}

/* Hover Ripple Effect */
@keyframes ripple {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  100% {
    transform: scale(4);
    opacity: 0;
  }
}

.button-content::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.3);
  border-radius: inherit;
  transform: scale(0);
  opacity: 0;
}

.button-content:active::before {
  animation: ripple 0.6s linear;
}


/* Responsive Design */
@media (max-width: 768px) {
  .button-content {
    padding: 6px 6px;
    border-radius: 5px;
  }

  .text {
    font-size: 13px;
  }

  .tooltip-content {
    width: 80px;
    padding: 18px;
  }

  .social-icon {
    width: 44px;
    height: 44px;
  }

  .social-icon svg {
    width: 20px;
    height: 20px;
  }
}

@media (max-width: 480px) {
  .button-content {
    padding: 0 3px;
  }

  .text {
    font-size: 10px;
  }

  .tooltip-content {
    width: 60px;
    padding: 15px;
    align-items: center;
  }

  .social-icon {
    width: 40px;
    height: 40px;
  }

  .social-icon svg {
    width: 18px;
    height: 18px;
  }
}


/* 响应式设计 */

@media (max-width: 1024px) {
    #how_to_play {
         display:flex;
         flex-direction: column;
         align-items: center;
     }
}
/* 平板适配 (641px - 768px) */
@media (min-width: 641px) and (max-width: 768px) {
    .toolbar {
        padding: 10px 15px;
        gap: 12px;
    }

    .site-logo {
        font-size: 22px;
    }

    .difficulty-selector {
        min-width: 110px;
    }

    .difficulty-select {
        font-size: 13px;
        min-width: 110px;
        padding: 6px 20px 6px 10px;
    }

    .timer-display {
        font-size: 13px;
        min-width: 90px;
        padding: 0 14px;
    }

    .nav button {
        font-size: 13px;
        min-width: 70px;
        padding: 0 10px;
    }

    .nav button#btnReset button#btnRandom button#shareBtn button#feedbackBtn {
        min-width: 70px;
    }

     .tooltip-content {
        width: 80px;
        padding: 15px;
        align-items: center;
  }
    #how_to_play {
         display:flex;
         flex-direction: column;
         align-items: center;
     }
}

/* 小屏幕适配 (481px - 640px) */
@media (min-width: 481px) and (max-width: 640px) {
    .toolbar {
        padding: 8px 12px;
        gap: 8px;
    }

    .site-logo {
        font-size: 18px;
    }

    .difficulty-selector {
        min-width: 90px;
    }

    .difficulty-select {
        font-size: 11px;
        min-width: 90px;
        padding: 6px 16px 6px 8px;
        background-position: right 6px center;
        background-size: 12px;
    }

    .timer-display {
        font-size: 11px;
        min-width: 70px;
        padding: 0 10px;
    }

    .timer-icon {
        font-size: 12px;
    }

    .nav button {
        font-size: 11px;
        min-width: 55px;
        padding: 0 6px;
    }

    .nav button#btnReset button#btnRandom button#shareBtn button#feedbackBtn {
        min-width: 50px;
    }

    #how_to_play {
         display:flex;
         flex-direction: column;
         align-items: center;
     }
}

/* 超小屏幕适配 (480px及以下) */
@media (max-width: 480px) {
    .toolbar {
        padding: 6px 10px;
        gap: 2px;
        /*flex-wrap: wrap;*/
    }

    .logo-container {
        order: 1;
        height: 30px;
    }

    .site-logo {
        font-size: 16px;
    }

    .difficulty-selector {
        order: 2;
        min-width: 50px !important;
        height: 30px;
    }

    .difficulty-label {
        top: -7px;
        left: 6px;
        font-size: 8px;
        padding: 0 3px;
    }

    .difficulty-select {
        font-size: 10px;
        min-width: 50px !important;
        padding: 4px 5px 4px 5px;
        /*background-position: right 2px center;*/
        /*background-size: 10px;*/
        height: 26px;
    }

    .timer-display {
        order: 3;
        font-size: 8px !important;
        min-width: 60px;
        padding: 0 5px;
        height: 26px;
    }

    #timerDisplay svg {
        display: none;
    }
    .timer-text {
        font-size:12px !important;
    }
    .nav {
        order: 4;
        width: 100%;
        justify-content: center;
        height: auto;
        margin-top: 5px;
    }

    .nav button {
        font-size: 10px;
        min-width: 40px;
        padding: 0 5px;
        height: 26px;
    }
   .nav button svg {
        display: none;
    }
    .nav button#btnReset {
        min-width: 40px;
    }
    .share-icon {
        display: none;
    }
    .button-content {
        height:26px !important;
        padding:0 5px;
    }

    #how_to_play {
         display:flex;
         flex-direction: column;
         align-items: center;
     }
}

@keyframes buttonClick {
    0% {
        transform: scale(1)
    }
    50% {
        transform: scale(.95)
    }
    to {
        transform: scale(1)
    }
}

.toolbar button:active {
    animation: buttonClick .15s
}

@keyframes toolbarFadeIn {
    0% {
        opacity: 0;
        transform: translateY(-10px)
    }
    to {
        opacity: 1;
        transform: translateY(0)
    }
}

.domino-wrapper.is-active:not(.dragging):not(.rotating):not(.in-tray) .domino-tile, .domino-wrapper.rotate-buffer:not(.dragging):not(.rotating):not(.in-tray) .domino-tile {
    border-color: #4caf50;
    border-width: 3px;
    cursor: pointer;
    position: relative;
    z-index: 1000
}

.domino-wrapper.is-active:not(.dragging):not(.rotating):not(.in-tray) {
    backface-visibility: hidden;
    transform-origin: 50%;
    -webkit-font-smoothing: antialiased;
    transform: scale(1.05);
    z-index: 1000 !important
}

.domino-wrapper.is-active:not(.dragging):not(.rotating):not(.in-tray):after {
    align-items: center;
    background: #e98e07ef;
    border-radius: 50%;
    color: #fff;
    content: "↻";
    display: flex;
    font-size: 10px;
    height: 16px;
    justify-content: center;
    pointer-events: none;
    position: absolute;
    right: -5px;
    top: -5px;
    width: 16px;
    z-index: 3000
}

.canvas-container {
    overflow: clip
}

.board {
    transform-origin: top
}

body, html {
    overflow-x: clip
}

.stage {
    container-type: inline-size
}

.readonly-board {
    display: block !important;
    filter: grayscale(.1);
    margin: 0 auto !important;
    opacity: .8
}

.readonly-board, .readonly-board * {
    pointer-events: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    user-select: none !important
}

.readonly-board *, .readonly-board .domino {
    cursor: default !important
}

.readonly-board .domino {
    pointer-events: none !important
}

.readonly-board .domino:hover {
    box-shadow: none !important;
    transform: none !important
}

.readonly-board #fills-svg, .readonly-board #outline {
    height: auto !important;
    width: 100% !important
}

.preview-box {
    --k: min(1, calc(120cqw / var(--grid-width)));
    container: board-preview/inline-size
}

.board-frame {
    height: calc(var(--grid-height) * var(--k));
    place-items: start center
}

.preview-box .board {
    position: relative;
    transform: scale(var(--k));
    transform-origin: top
}

#fills-svg, #outline {
    height: auto !important;
    width: 100% !important
}

.rubber {
    border: 2px solid #0000;
    border-radius: 4px;
    box-shadow: 0 0 0 3px #8624e2, inset 0 0 0 2px #8624e2;
    color: #8624e2;
    font-family: Black Ops One, cursive;
    font-size: 24px;
    line-height: 26px;
    opacity: .7;
    padding: 5px 2px;
    pointer-events: none;
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    top: 34%;
    transform: rotate(-10deg);
    width: 178px;
    z-index: 200
}

.domino-wrapper.in-tray {
    position: relative
}

.domino-wrapper.in-tray.rotating, .domino-wrapper.in-tray.spinning {
    z-index: 9999
}

.domino-tray {
    isolation: isolate
}

.domino-tray-container {
    overflow: visible
}

#drag-layer {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
    position: fixed;
    z-index: 2147483647
}

@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-border-style {
    syntax: "*";
    inherits: false;
    initial-value: solid
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@property --tw-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-duration {
    syntax: "*";
    inherits: false
}

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