*,
:before,
:after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb
}

:before,
:after {
    --tw-content: ""
}

html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    font-family: Roboto, Helvetica, Noto Sans TC, sans-serif;
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent
}

body {
    line-height: inherit
}

button {
    font-family: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    margin: 0
}

button {
    text-transform: none
}

button {
    -webkit-appearance: button;
    appearance: button;
    background-image: none;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto
}

::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

p {
    margin: 0
}

[role=button] {
    cursor: pointer
}

svg {
    display: block;
}

:root,
[data-theme] {
    background-color: var(--fallback-b1, oklch(var(--b1)/1));
    color: var(--fallback-bc, oklch(var(--bc)/1))
}

@supports not (color:oklch(0%0 0)) {
    :root {
        color-scheme: light;
        --fallback-p: #491eff;
        --fallback-pc: #d4dbff;
        --fallback-s: #ff41c7;
        --fallback-sc: #fff9fc;
        --fallback-a: #00cfbd;
        --fallback-ac: #00100d;
        --fallback-n: #2b3440;
        --fallback-nc: #d7dde4;
        --fallback-b1: #ffffff;
        --fallback-b2: #e5e6e6;
        --fallback-b3: #e5e6e6;
        --fallback-bc: #1f2937;
        --fallback-in: #00b3f0;
        --fallback-inc: #000000;
        --fallback-su: #00ca92;
        --fallback-suc: #000000;
        --fallback-wa: #ffc22d;
        --fallback-wac: #000000;
        --fallback-er: #ff6f70;
        --fallback-erc: #000000
    }

    @media (prefers-color-scheme:dark) {
        :root {
            color-scheme: dark;
            --fallback-p: #7582ff;
            --fallback-pc: #050617;
            --fallback-s: #ff71cf;
            --fallback-sc: #190211;
            --fallback-a: #00c7b5;
            --fallback-ac: #000e0c;
            --fallback-n: #2a323c;
            --fallback-nc: #a6adbb;
            --fallback-b1: #1d232a;
            --fallback-b2: #191e24;
            --fallback-b3: #15191e;
            --fallback-bc: #a6adbb;
            --fallback-in: #00b3f0;
            --fallback-inc: #000000;
            --fallback-su: #00ca92;
            --fallback-suc: #000000;
            --fallback-wa: #ffc22d;
            --fallback-wac: #000000;
            --fallback-er: #ff6f70;
            --fallback-erc: #000000
        }
    }
}

html {
    -webkit-tap-highlight-color: transparent
}

* {
    scrollbar-color: currentColor transparent
}

:root {
    color-scheme: light;
    --in: 72.06%.191 231.6;
    --su: 64.8%.15 160;
    --wa: 84.71%.199 83.87;
    --er: 71.76%.221 22.18;
    --pc: 89.824%.06192 275.75;
    --ac: 15.352%.0368 183.61;
    --inc: 0%0 0;
    --suc: 0%0 0;
    --wac: 0%0 0;
    --erc: 0%0 0;
    --rounded-box: 1rem;
    --rounded-btn: .5rem;
    --rounded-badge: 1.9rem;
    --animation-btn: .25s;
    --animation-input: .2s;
    --btn-focus-scale: .95;
    --border-btn: 1px;
    --tab-border: 1px;
    --tab-radius: .5rem;
    --p: 49.12%.3096 275.75;
    --s: 69.71%.329 342.55;
    --sc: 98.71%.0106 342.55;
    --a: 76.76%.184 183.61;
    --n: 32.1785%.02476 255.701624;
    --nc: 89.4994%.011585 252.096176;
    --b1: 100%0 0;
    --b2: 96.1151%0 0;
    --b3: 92.4169%.00108 197.137559;
    --bc: 27.8078%.029596 256.847952
}

@media (prefers-color-scheme:dark) {
    :root {
        color-scheme: dark;
        --in: 72.06%.191 231.6;
        --su: 64.8%.15 160;
        --wa: 84.71%.199 83.87;
        --er: 71.76%.221 22.18;
        --pc: 13.138%.0392 275.75;
        --sc: 14.96%.052 342.55;
        --ac: 14.902%.0334 183.61;
        --inc: 0%0 0;
        --suc: 0%0 0;
        --wac: 0%0 0;
        --erc: 0%0 0;
        --rounded-box: 1rem;
        --rounded-btn: .5rem;
        --rounded-badge: 1.9rem;
        --animation-btn: .25s;
        --animation-input: .2s;
        --btn-focus-scale: .95;
        --border-btn: 1px;
        --tab-border: 1px;
        --tab-radius: .5rem;
        --p: 65.69%.196 275.75;
        --s: 74.8%.26 342.55;
        --a: 74.51%.167 183.61;
        --n: 31.3815%.021108 254.139175;
        --nc: 74.6477%.0216 264.435964;
        --b1: 25.3267%.015896 252.417568;
        --b2: 23.2607%.013807 253.100675;
        --b3: 21.1484%.01165 254.087939;
        --bc: 74.6477%.0216 264.435964
    }
}

[data-theme=cupcake] {
    color-scheme: light;
    --in: 72.06%.191 231.6;
    --su: 64.8%.15 160;
    --wa: 84.71%.199 83.87;
    --er: 71.76%.221 22.18;
    --pc: 15.2344%.017892 200.026556;
    --sc: 15.787%.020249 356.29965;
    --ac: 15.8762%.029206 78.618794;
    --nc: 84.7148%.013247 313.189598;
    --inc: 0%0 0;
    --suc: 0%0 0;
    --wac: 0%0 0;
    --erc: 0%0 0;
    --rounded-box: 1rem;
    --rounded-badge: 1.9rem;
    --animation-btn: .25s;
    --animation-input: .2s;
    --btn-focus-scale: .95;
    --border-btn: 1px;
    --p: 76.172%.089459 200.026556;
    --s: 78.9351%.101246 356.29965;
    --a: 79.3811%.146032 78.618794;
    --n: 23.5742%.066235 313.189598;
    --b1: 97.7882%.00418 56.375637;
    --b2: 93.9822%.007638 61.449292;
    --b3: 91.5861%.006811 53.440502;
    --bc: 23.5742%.066235 313.189598;
    --rounded-btn: 1.9rem;
    --tab-border: 2px;
    --tab-radius: .7rem
}

*,
:before,
:after {
    --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x: ;
    --tw-pan-y: ;
    --tw-pinch-zoom: ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position: ;
    --tw-gradient-via-position: ;
    --tw-gradient-to-position: ;
    --tw-ordinal: ;
    --tw-slashed-zero: ;
    --tw-numeric-figure: ;
    --tw-numeric-spacing: ;
    --tw-numeric-fraction: ;
    --tw-ring-inset: ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246/.5);
    --tw-ring-offset-shadow: 0 0#0000;
    --tw-ring-shadow: 0 0#0000;
    --tw-shadow: 0 0#0000;
    --tw-shadow-colored: 0 0#0000;
    --tw-blur: ;
    --tw-brightness: ;
    --tw-contrast: ;
    --tw-grayscale: ;
    --tw-hue-rotate: ;
    --tw-invert: ;
    --tw-saturate: ;
    --tw-sepia: ;
    --tw-drop-shadow: ;
    --tw-backdrop-blur: ;
    --tw-backdrop-brightness: ;
    --tw-backdrop-contrast: ;
    --tw-backdrop-grayscale: ;
    --tw-backdrop-hue-rotate: ;
    --tw-backdrop-invert: ;
    --tw-backdrop-opacity: ;
    --tw-backdrop-saturate: ;
    --tw-backdrop-sepia: ;
    --tw-contain-size: ;
    --tw-contain-layout: ;
    --tw-contain-paint: ;
    --tw-contain-style:
}

@media (min-width:640px) {}

@media (hover:hover) {}

@media (hover:hover) {
}

@media (min-width:48rem) {}

.modal {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 0;
    display: grid;
    height: 100%;
    max-height: none;
    width: 100%;
    max-width: none;
    justify-items: center;
    padding: 0;
    overscroll-behavior: contain;
    z-index: 999;
    color: inherit;
    transition-duration: .2s;
    transition-timing-function: cubic-bezier(0, 0, .2, 1);
    transition-property: transform, opacity, visibility;
    overflow-y: hidden
}

:where(.modal) {
    align-items: center
}

.modal-box {
    max-height: calc(100vh - 5em);
    grid-column-start: 1;
    grid-row-start: 1;
    width: 91.666667%;
    max-width: 32rem;
    border-bottom-right-radius: var(--rounded-box, 1rem);
    border-bottom-left-radius: var(--rounded-box, 1rem);
    border-top-left-radius: var(--rounded-box, 1rem);
    border-top-right-radius: var(--rounded-box, 1rem);
    padding: 1.5rem;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
    transition-timing-function: cubic-bezier(0, 0, .2, 1);
    transition-duration: .2s;
    box-shadow: #00000040 0 25px 50px -12px;
    overflow-y: auto;
    overscroll-behavior: contain
}

.modal-open,
.modal:target {
    pointer-events: auto;
    visibility: visible;
    opacity: 1
}

.modal-action {
    display: flex;
    margin-top: 1.5rem
}

:root:has(:is(.modal-open, .modal:target, .modal-toggle:checked+.modal, .modal[open])) {
    overflow: hidden;
    scrollbar-gutter: stable
}

@keyframes button-pop {
    0% {
        transform: scale(var(--btn-focus-scale, .98))
    }

    40% {
        transform: scale(1.02)
    }

    to {
        transform: scale(1)
    }
}

@keyframes checkmark {
    0% {
        background-position-y: 5px
    }

    50% {
        background-position-y: -2px
    }

    to {
        background-position-y: 0
    }
}

.modal:not(dialog:not(.modal-open)),
.modal::backdrop {
    background-color: #0006;
    animation: modal-pop .2s ease-out
}

.modal-open .modal-box,
.modal:target .modal-box {
    --tw-translate-y: 0px;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}

@keyframes modal-pop {
    0% {
        opacity: 0
    }
}

@keyframes progress-loading {
    50% {
        background-position-x: -115%
    }
}

@keyframes radiomark {
    0% {
        box-shadow: 0 0 0 12px var(--fallback-b1, oklch(var(--b1)/1)) inset, 0 0 0 12px var(--fallback-b1, oklch(var(--b1)/1)) inset
    }

    50% {
        box-shadow: 0 0 0 3px var(--fallback-b1, oklch(var(--b1)/1)) inset, 0 0 0 3px var(--fallback-b1, oklch(var(--b1)/1)) inset
    }

    to {
        box-shadow: 0 0 0 4px var(--fallback-b1, oklch(var(--b1)/1)) inset, 0 0 0 4px var(--fallback-b1, oklch(var(--b1)/1)) inset
    }
}

@keyframes rating-pop {
    0% {
        transform: translateY(-.125em)
    }

    40% {
        transform: translateY(-.125em)
    }

    to {
        transform: translateY(0)
    }
}

@keyframes skeleton {
    0% {
        background-position: 150%
    }

    to {
        background-position: -50%
    }
}

@keyframes toast-pop {
    0% {
        transform: scale(.9);
        opacity: 0
    }

    to {
        transform: scale(1);
        opacity: 1
    }
}

.modal-middle {
    place-items: center
}

.modal-middle :where(.modal-box) {
    width: 91.666667%;
    max-width: 32rem;
    --tw-translate-y: 0px;
    --tw-scale-x: .9;
    --tw-scale-y: .9;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    border-top-left-radius: var(--rounded-box, 1rem);
    border-top-right-radius: var(--rounded-box, 1rem);
    border-bottom-right-radius: var(--rounded-box, 1rem);
    border-bottom-left-radius: var(--rounded-box, 1rem)
}

.mx-auto {
    margin-left: auto;
    margin-right: auto
}

.flex {
    display: flex
}

.h-5 {
    height: 1.25rem
}

.h-8 {
    height: 2rem
}

.w-5 {
    width: 1.25rem
}

.w-8 {
    width: 2rem
}

.flex-1 {
    flex: 1 1 0%
}

.items-center {
    align-items: center
}

.justify-center {
    justify-content: center
}

.gap-2 {
    gap: .5rem
}

.space-y-1>:not([hidden])~:not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(.25rem*calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(.25rem*var(--tw-space-y-reverse))
}

.space-y-4>:not([hidden])~:not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem*calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem*var(--tw-space-y-reverse))
}

.divide-y>:not([hidden])~:not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(1px*calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(1px*var(--tw-divide-y-reverse))
}

.divide-base-200>:not([hidden])~:not([hidden]) {
    --tw-divide-opacity: 1;
    border-color: var(--fallback-b2, oklch(var(--b2)/var(--tw-divide-opacity)))
}

.overflow-y-auto {
    overflow-y: auto
}

.rounded-full {
    border-radius: 9999px
}

.rounded-lg {
    border-radius: .5rem
}

.\!bg-black\/60 {
    background-color: #0009 !important
}

.bg-accent {
    --tw-bg-opacity: 1;
    background-color: var(--fallback-a, oklch(var(--a)/var(--tw-bg-opacity)))
}

.bg-base-100 {
    --tw-bg-opacity: 1;
    background-color: var(--fallback-b1, oklch(var(--b1)/var(--tw-bg-opacity)))
}

.bg-base-200 {
    --tw-bg-opacity: 1;
    background-color: var(--fallback-b2, oklch(var(--b2)/var(--tw-bg-opacity)))
}

.bg-primary {
    --tw-bg-opacity: 1;
    background-color: var(--fallback-p, oklch(var(--p)/var(--tw-bg-opacity)))
}

.bg-secondary {
    --tw-bg-opacity: 1;
    background-color: var(--fallback-s, oklch(var(--s)/var(--tw-bg-opacity)))
}

.p-3 {
    padding: .75rem
}

.px-2 {
    padding-left: .5rem;
    padding-right: .5rem
}

.pt-16 {
    padding-top: 4rem
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem
}

.text-accent-content {
    --tw-text-opacity: 1;
    color: var(--fallback-ac, oklch(var(--ac)/var(--tw-text-opacity)))
}

.text-primary-content {
    --tw-text-opacity: 1;
    color: var(--fallback-pc, oklch(var(--pc)/var(--tw-text-opacity)))
}

.text-secondary-content {
    --tw-text-opacity: 1;
    color: var(--fallback-sc, oklch(var(--sc)/var(--tw-text-opacity)))
}

.opacity-50 {
    opacity: .5
}

.\!backdrop-blur {
    --tw-backdrop-blur: blur(8px) !important;
    -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) !important;
    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) !important
}

html,
body {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Noto Sans TC, sans-serif;
    text-size-adjust: none;
    -webkit-text-size-adjust: none;
    -ms-text-size-adjust: none;
    -moz-text-size-adjust: none
}

* {
    overscroll-behavior-y: contain
}

@media (min-width:640px) {}

@media not all and (min-width:640px) {}

@media not all and (min-width:475px) {}

@media (max-width:384px) {}

@media (min-width:475px) {}

@media (min-width:640px) {
    .sm\:max-w-sm {
        max-width: 24rem
    }
}

@media (min-width:768px) {}

@media (min-width:1024px) {}

@media (min-width:1280px) {}

@media (prefers-color-scheme:dark) {}

/*!
 * Quill Editor v2.0.2
 * https://quilljs.com
 * Copyright (c) 2017-2024, Slab
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */