From bea3ff05cb0e4ddadab850c7cd4620661056f67b Mon Sep 17 00:00:00 2001 From: shuki Date: Wed, 4 Mar 2026 19:10:33 +0200 Subject: [PATCH] Add exclude paths for restore and skip-suspended/schedule enhancements - Add --exclude flag to restore account/files commands to skip specific paths during homedir restoration (rsync --exclude / rclone --exclude) - Add exclude paths UI in WHM restore form (step 2 tag input + modal, step 3 summary, step 4 command building) - Add rclone_from_remote_filtered() for passing extra args to rclone copy - Add _build_exclude_args() helper in restore.sh - Add exclude pattern to Runner.pm allowlist - Add skip-suspended flag and schedule configuration enhancements Co-Authored-By: Claude Opus 4.6 --- lib/rclone.sh | 37 ++++++++ lib/restore.sh | 90 ++++++++++++++++--- whm/gniza-whm/assets/gniza-whm.css | 2 +- whm/gniza-whm/assets/src/safelist.html | 2 +- whm/gniza-whm/lib/GnizaWHM/Runner.pm | 2 + whm/gniza-whm/restore.cgi | 119 ++++++++++++++++++++++++- 6 files changed, 236 insertions(+), 16 deletions(-) diff --git a/lib/rclone.sh b/lib/rclone.sh index 9bede4a..41f1aff 100644 --- a/lib/rclone.sh +++ b/lib/rclone.sh @@ -163,6 +163,43 @@ rclone_from_remote() { return 1 } +# Like rclone_from_remote but passes extra args (e.g. --exclude) to rclone copy. +# Usage: rclone_from_remote_filtered [extra_args...] +rclone_from_remote_filtered() { + local remote_subpath="$1" + local local_dir="$2" + shift 2 + local -a extra_args=("$@") + local attempt=0 + local max_retries="${SSH_RETRIES:-$DEFAULT_SSH_RETRIES}" + local remote_src; remote_src=$(_rclone_remote_path "$remote_subpath") + + mkdir -p "$local_dir" || { + log_error "Failed to create local dir: $local_dir" + return 1 + } + + while (( attempt < max_retries )); do + ((attempt++)) || true + log_debug "rclone copy (filtered) attempt $attempt/$max_retries: $remote_src -> $local_dir" + + if _rclone_cmd copy "$remote_src" "$local_dir" "${extra_args[@]}"; then + log_debug "rclone download succeeded on attempt $attempt" + return 0 + fi + + log_warn "rclone download failed, attempt $attempt/$max_retries" + if (( attempt < max_retries )); then + local backoff=$(( attempt * 10 )) + log_info "Retrying in ${backoff}s..." + sleep "$backoff" + fi + done + + log_error "rclone download failed after $max_retries attempts" + return 1 +} + # ── Snapshot Management ─────────────────────────────────────── rclone_list_dirs() { diff --git a/lib/restore.sh b/lib/restore.sh index 45561c1..48973b9 100644 --- a/lib/restore.sh +++ b/lib/restore.sh @@ -19,6 +19,21 @@ _rsync_download() { fi } +# Helper: build --exclude args from comma-separated exclude string. +# Outputs one arg per line (--exclude then pattern). +_build_exclude_args() { + local exclude="$1" + local -a args=() + if [[ -n "$exclude" ]]; then + IFS=',' read -ra patterns <<< "$exclude" + for p in "${patterns[@]}"; do + p="${p## }"; p="${p%% }" + [[ -n "$p" ]] && args+=(--exclude "$p") + done + fi + printf '%s\n' "${args[@]}" +} + # Helper: detect pkgacct base (old vs new format) for rclone or SSH _detect_pkgacct_base() { local snap_path="$1" @@ -42,9 +57,16 @@ _detect_pkgacct_base() { restore_full_account() { local user="$1" local timestamp="${2:-}" - local force="${3:-false}" + local strategy="${3:-}" + local exclude="${4:-}" local temp_dir="${TEMP_DIR:-$DEFAULT_TEMP_DIR}" + # Validate strategy + if [[ -n "$strategy" ]] && [[ "$strategy" != "merge" ]] && [[ "$strategy" != "terminate" ]]; then + log_error "Invalid strategy: $strategy (must be 'merge' or 'terminate')" + return 1 + fi + # Resolve timestamp local ts; ts=$(resolve_snapshot_timestamp "$user" "$timestamp") || return 1 local snap_dir; snap_dir=$(get_snapshot_dir "$user") @@ -53,11 +75,21 @@ restore_full_account() { log_info "Restoring full account: $user from snapshot $ts" # Check if account already exists - if account_exists "$user" && [[ "$force" != "true" ]]; then - log_error "Account $user already exists. Use --force to overwrite." + if account_exists "$user" && [[ -z "$strategy" ]]; then + log_error "Account $user already exists. Use --strategy=merge or --strategy=terminate to proceed." return 1 fi + # Terminate strategy: remove existing account first + if [[ "$strategy" == "terminate" ]] && account_exists "$user"; then + log_info "Terminating existing account $user (--strategy=terminate)..." + if ! /scripts/removeacct --keepdns "$user"; then + log_error "Failed to terminate account $user" + return 1 + fi + log_info "Account $user terminated, proceeding with clean restore" + fi + local restore_dir="$temp_dir/restore-$user" mkdir -p "$restore_dir" || { log_error "Failed to create restore temp directory" @@ -119,7 +151,7 @@ restore_full_account() { # Run restorepkg log_info "Running restorepkg for $user..." - if [[ "$force" == "true" ]] && account_exists "$user"; then + if [[ "$strategy" == "merge" ]] && account_exists "$user"; then if ! /scripts/restorepkg --force "$restore_dir/$user"; then log_error "restorepkg failed for $user" rm -rf "$restore_dir" @@ -133,16 +165,32 @@ restore_full_account() { fi fi + # Build exclude args for homedir phase + local -a exclude_args=() + if [[ -n "$exclude" ]]; then + while IFS= read -r arg; do + exclude_args+=("$arg") + done < <(_build_exclude_args "$exclude") + fi + # Restore homedir local homedir; homedir=$(get_account_homedir "$user") if _is_rclone_mode; then local snap_subpath="accounts/${user}/snapshots/${ts}" if rclone_exists "${snap_subpath}/homedir/"; then log_info "Restoring homedir for $user..." - if ! rclone_from_remote "${snap_subpath}/homedir" "$homedir"; then - log_error "Failed to restore homedir for $user" - rm -rf "$restore_dir" - return 1 + if [[ ${#exclude_args[@]} -gt 0 ]]; then + if ! rclone_from_remote_filtered "${snap_subpath}/homedir" "$homedir" "${exclude_args[@]}"; then + log_error "Failed to restore homedir for $user" + rm -rf "$restore_dir" + return 1 + fi + else + if ! rclone_from_remote "${snap_subpath}/homedir" "$homedir"; then + log_error "Failed to restore homedir for $user" + rm -rf "$restore_dir" + return 1 + fi fi log_info "Fixing ownership for $homedir..." chown -R "$user":"$user" "$homedir" @@ -151,6 +199,7 @@ restore_full_account() { log_info "Restoring homedir for $user..." local rsync_ssh; rsync_ssh=$(build_rsync_ssh_cmd) if ! rsync -aHAX --numeric-ids --rsync-path="rsync --fake-super" \ + "${exclude_args[@]}" \ -e "$rsync_ssh" \ "${REMOTE_USER}@${REMOTE_HOST}:${snap_path}/homedir/" \ "$homedir/"; then @@ -173,6 +222,7 @@ restore_files() { local user="$1" local subpath="${2:-}" local timestamp="${3:-}" + local exclude="${4:-}" local ts; ts=$(resolve_snapshot_timestamp "$user" "$timestamp") || return 1 @@ -186,14 +236,29 @@ restore_files() { log_info "Restoring files for $user: ${subpath:-entire homedir} from snapshot $ts" + # Build exclude args + local -a exclude_args=() + if [[ -n "$exclude" ]]; then + while IFS= read -r arg; do + exclude_args+=("$arg") + done < <(_build_exclude_args "$exclude") + fi + if _is_rclone_mode; then local snap_subpath="accounts/${user}/snapshots/${ts}" local remote_sub="${snap_subpath}/homedir" [[ -n "$subpath" ]] && remote_sub="${snap_subpath}/homedir/${subpath}" - if ! rclone_from_remote "$remote_sub" "$local_dest"; then - log_error "Failed to restore files for $user" - return 1 + if [[ ${#exclude_args[@]} -gt 0 ]]; then + if ! rclone_from_remote_filtered "$remote_sub" "$local_dest" "${exclude_args[@]}"; then + log_error "Failed to restore files for $user" + return 1 + fi + else + if ! rclone_from_remote "$remote_sub" "$local_dest"; then + log_error "Failed to restore files for $user" + return 1 + fi fi else local snap_dir; snap_dir=$(get_snapshot_dir "$user") @@ -204,6 +269,7 @@ restore_files() { [[ -n "$subpath" ]] && remote_source="${snap_path}/homedir/${subpath}" if ! rsync -aHAX --numeric-ids --rsync-path="rsync --fake-super" \ + "${exclude_args[@]}" \ -e "$rsync_ssh" \ "${REMOTE_USER}@${REMOTE_HOST}:${remote_source}" \ "$local_dest"; then @@ -1348,7 +1414,7 @@ restore_server() { ((total++)) || true log_info "--- Restoring account $user ($total) ---" - if restore_full_account "$user" "$timestamp" "true"; then + if restore_full_account "$user" "$timestamp" "merge"; then ((succeeded++)) || true else ((failed++)) || true diff --git a/whm/gniza-whm/assets/gniza-whm.css b/whm/gniza-whm/assets/gniza-whm.css index b9f0077..363ce71 100644 --- a/whm/gniza-whm/assets/gniza-whm.css +++ b/whm/gniza-whm/assets/gniza-whm.css @@ -1,2 +1,2 @@ /*! tailwindcss v4.2.1 | 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)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}:root,:host{--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite}@layer daisyui.l1.l2.l3{.modal{pointer-events:none!important;visibility:hidden!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;color:inherit!important;transition:visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out!important;overscroll-behavior:contain!important;z-index:999!important;scrollbar-gutter:auto!important;background-color:#0000!important;place-items:center!important;margin:0!important;padding:0!important;display:grid!important;position:fixed!important;inset:0!important;overflow:clip!important}.modal::backdrop{display:none!important}.tab{cursor:pointer!important;appearance:none!important;text-align:center!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;display:inline-flex!important;position:relative!important}@media (hover:hover){.tab:hover{color:var(--color-base-content)!important}}.tab{--tab-p:.75rem!important;--tab-bg:var(--color-base-100)!important;--tab-border-color:var(--color-base-300)!important;--tab-radius-ss:0!important;--tab-radius-se:0!important;--tab-radius-es:0!important;--tab-radius-ee:0!important;--tab-order:0!important;--tab-radius-min:calc(.75rem - var(--border))!important;--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min))!important;--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px)!important;order:var(--tab-order)!important;height:var(--tab-height)!important;padding-inline:var(--tab-p)!important;border-color:#0000!important;font-size:.875rem!important}.tab:is(input[type=radio]){min-width:fit-content!important}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label)!important;content:var(--tw-content)!important}.tab:is(label){position:relative!important}.tab:is(label) input{cursor:pointer!important;appearance:none!important;opacity:0!important;position:absolute!important;inset:0!important}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block!important}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)!important}}.tab:not(input):empty{cursor:default!important;flex-grow:1!important}.tab:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.tab:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px!important;outline:2px solid!important}.tab[disabled]{pointer-events:none!important;opacity:.4!important}:where(.btn){width:unset!important}.btn{cursor:pointer!important;text-align:center!important;vertical-align:middle!important;outline-offset:2px!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;padding-inline:var(--btn-p)!important;color:var(--btn-fg)!important;--tw-prose-links:var(--btn-fg)!important;height:var(--size)!important;font-size:var(--fontsize,.875rem)!important;outline-color:var(--btn-color,var(--color-base-content))!important;background-color:var(--btn-bg)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--btn-noise)!important;border-width:var(--border)!important;border-style:solid!important;border-color:var(--btn-border)!important;text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15))!important;touch-action:manipulation!important;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow)!important;--size:calc(var(--size-field,.25rem) * 10)!important;--btn-bg:var(--btn-color,var(--color-base-200))!important;--btn-fg:var(--color-base-content)!important;--btn-p:1rem!important;--btn-border:var(--btn-bg)!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-wrap:nowrap!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;gap:.375rem!important;font-weight:600!important;transition-property:color,background-color,border-color,box-shadow!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(0,0,.2,1)!important;display:inline-flex!important}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))!important}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)!important}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)!important}}.btn{--btn-noise:var(--fx-noise)!important}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate!important;outline-width:2px!important;outline-style:solid!important}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200))!important;translate:0 .5px!important}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)!important}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)!important}.btn:is(input[type=checkbox],input[type=radio]){appearance:none!important}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label)!important;content:var(--tw-content)!important}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary)!important;--btn-fg:var(--color-primary-content)!important;isolation:isolate!important}.loading{pointer-events:none!important;aspect-ratio:1!important;vertical-align:middle!important;width:calc(var(--size-selector,.25rem) * 6)!important;background-color:currentColor!important;display:inline-block!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;-webkit-mask-position:50%!important;mask-position:50%!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important}.collapse{border-radius:var(--radius-box,1rem)!important;isolation:isolate!important;grid-template-rows:max-content 0fr!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;display:grid!important;position:relative!important;overflow:hidden!important}@media (prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s!important}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none!important;opacity:0!important;z-index:1!important;padding:1rem!important;grid-row-start:1!important;grid-column-start:1!important;width:100%!important;min-height:1lh!important;padding-inline-end:3rem!important;transition:background-color .2s ease-out!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible!important;min-height:fit-content!important}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible!important}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content)!important;outline-offset:2px!important;outline-width:2px!important;outline-style:solid!important}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer!important}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem!important}.collapse:is(details){width:100%!important}@media (prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s!important;interpolate-size:allow-keywords!important;height:0!important}.collapse:is(details):where([open])::details-content{height:auto!important}}.collapse:is(details) summary{display:block!important;position:relative!important}.collapse:is(details) summary::-webkit-details-marker{display:none!important}.collapse:is(details)>.collapse-content{content-visibility:visible!important}.collapse:is(details) summary{outline:none!important}.collapse-content{content-visibility:hidden!important;min-height:0!important;cursor:unset!important;grid-row-start:2!important;grid-column-start:1!important;padding-left:1rem!important;padding-right:1rem!important}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden!important}}@media (prefers-reduced-motion:no-preference){.collapse-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out!important}}.toggle{border:var(--border) solid currentColor!important;color:var(--input-color)!important;cursor:pointer!important;appearance:none!important;vertical-align:middle!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector))!important;border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)))!important;padding:var(--toggle-p)!important;flex-shrink:0!important;grid-template-columns:0fr 1fr 1fr!important;place-content:center!important;display:inline-grid!important;position:relative!important;box-shadow:inset 0 1px!important}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset!important}}.toggle{--input-color:var(--color-base-content)!important;transition:color .3s,grid-template-columns .2s!important}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)!important}}.toggle{--toggle-p:calc(var(--size) * .125)!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2)!important;height:var(--size)!important}.toggle>*{z-index:1!important;cursor:pointer!important;appearance:none!important;background-color:#0000!important;border:none!important;grid-column:2/span 1!important;grid-row-start:1!important;height:100%!important;padding:.125rem!important;transition:opacity .2s,rotate .4s!important}.toggle>:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.toggle>:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.toggle>:nth-child(2){color:var(--color-base-100)!important;rotate:none!important}.toggle>:nth-child(3){color:var(--color-base-100)!important;opacity:0!important;rotate:-15deg!important}.toggle:has(:checked)>:nth-child(2){opacity:0!important;rotate:15deg!important}.toggle:has(:checked)>:nth-child(3){opacity:1!important;rotate:none!important}.toggle:before{aspect-ratio:1!important;border-radius:var(--radius-selector)!important;--tw-content:""!important;content:var(--tw-content)!important;width:100%!important;height:100%!important;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor!important;background-color:currentColor!important;grid-row-start:1!important;grid-column-start:2!important;transition:background-color .1s,translate .2s,inset-inline-start .2s!important;position:relative!important;inset-inline-start:0!important;translate:0!important}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)!important}}.toggle:before{background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style)!important;outline-offset:calc(1px * -1)!important;outline-width:1px!important}}@media print{.toggle:before{outline-offset:-1rem!important;outline:.25rem solid!important}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px!important;outline:2px solid!important}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100)!important;--input-color:var(--color-base-content)!important;grid-template-columns:1fr 1fr 0fr!important}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor!important}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0!important}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr!important}.toggle:disabled{cursor:not-allowed!important;opacity:.3!important}.toggle:disabled:before{border:var(--border) solid currentColor!important;background-color:#0000!important}.input{cursor:text!important;border:var(--border) solid #0000!important;appearance:none!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;white-space:nowrap!important;width:clamp(3rem,20rem,100%)!important;height:var(--size)!important;font-size:max(var(--font-size,.875rem), .875rem)!important;touch-action:manipulation!important;border-color:var(--input-color)!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-shrink:1!important;align-items:center!important;gap:.5rem!important;padding-inline:.75rem!important;display:inline-flex!important;position:relative!important}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.input{--size:calc(var(--size-field,.25rem) * 10)!important;--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.input:where(input){display:inline-flex!important}.input :where(input){appearance:none!important;background-color:#0000!important;border:none!important;width:100%!important;height:100%!important;display:inline-flex!important}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr!important}.input :where(input[type=date]){display:inline-flex!important}.input:focus,.input:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.input:focus,.input:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem!important}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none!important}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed!important}.input::-webkit-date-and-time-value{text-align:inherit!important}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem!important;margin-inline-end:-.75rem!important}.input::-webkit-calendar-picker-indicator{position:absolute!important;inset-inline-end:.75em!important}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none!important;appearance:none!important;display:inline-flex!important}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;width:1em!important;height:1em!important;position:absolute!important;inset-inline-end:.75em!important}.table{border-collapse:separate!important;--tw-border-spacing-x:calc(.25rem * 0)!important;--tw-border-spacing-y:calc(.25rem * 0)!important;width:100%!important;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)!important;border-radius:var(--radius-box)!important;text-align:left!important;font-size:.875rem!important;position:relative!important}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right!important}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)!important}}.table :where(th,td){vertical-align:middle!important;padding-block:.75rem!important;padding-inline:1rem!important}.table :where(thead,tfoot){white-space:nowrap!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)!important}}.table :where(thead,tfoot){font-size:.875rem!important;font-weight:600!important}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)!important}}.table :where(.table-pin-rows thead tr){z-index:1!important;background-color:var(--color-base-100)!important;position:sticky!important;top:0!important}.table :where(.table-pin-rows tfoot tr){z-index:1!important;background-color:var(--color-base-100)!important;position:sticky!important;bottom:0!important}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100)!important;position:sticky!important;left:0!important;right:0!important}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)!important}}.steps{counter-reset:step!important;grid-auto-columns:1fr!important;grid-auto-flow:column!important;display:inline-grid!important;overflow:auto hidden!important}.steps .step{text-align:center!important;--step-bg:var(--color-base-300)!important;--step-fg:var(--color-base-content)!important;grid-template-rows:40px 1fr!important;grid-template-columns:auto!important;place-items:center!important;min-width:4rem!important;display:grid!important}.steps .step:before{width:100%!important;height:.5rem!important;color:var(--step-bg)!important;background-color:var(--step-bg)!important;content:""!important;border:1px solid!important;grid-row-start:1!important;grid-column-start:1!important;margin-inline-start:-100%!important;top:0!important}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step)!important;content:var(--tw-content)!important;counter-increment:step!important;z-index:1!important;color:var(--step-fg)!important;background-color:var(--step-bg)!important;border:1px solid var(--step-bg)!important;border-radius:3.40282e38px!important;grid-row-start:1!important;grid-column-start:1!important;place-self:center!important;place-items:center!important;width:2rem!important;height:2rem!important;display:grid!important;position:relative!important}.steps .step:first-child:before{--tw-content:none!important;content:var(--tw-content)!important}.steps .step[data-content]:after{--tw-content:attr(data-content)!important;content:var(--tw-content)!important}.select{border:var(--border) solid #0000!important;appearance:none!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;width:clamp(3rem,20rem,100%)!important;height:var(--size)!important;touch-action:manipulation!important;white-space:nowrap!important;text-overflow:ellipsis!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%)!important;background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%)!important;background-repeat:no-repeat!important;background-size:4px 4px,4px 4px!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-shrink:1!important;align-items:center!important;gap:.375rem!important;padding-inline:.75rem 1.75rem!important;font-size:.875rem!important;display:inline-flex!important;position:relative!important;overflow:hidden!important}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.select{border-color:var(--input-color)!important;--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.select{--size:calc(var(--size-field,.25rem) * 10)!important}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)!important}[dir=rtl] .select::picker(select){translate:.5rem!important}[dir=rtl] .select select::picker(select){translate:.5rem!important}.select[multiple]{background-image:none!important;height:auto!important;padding-block:.75rem!important;padding-inline-end:.75rem!important;overflow:auto!important}.select select{appearance:none!important;width:calc(100% + 2.75rem)!important;height:calc(100% - calc(var(--border) * 2))!important;background:inherit!important;border-radius:inherit!important;border-style:none!important;align-items:center!important;margin-inline:-.75rem -1.75rem!important;padding-inline:.75rem 1.75rem!important}.select select:focus,.select select:focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.select select:not(:last-child){background-image:none!important;margin-inline-end:-1.375rem!important}.select:focus,.select:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.select:focus,.select:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed!important}@supports (appearance:base-select){.select,.select select{appearance:base-select!important}:is(.select,.select select)::picker(select){appearance:base-select!important}}:is(.select,.select select)::picker(select){color:inherit!important;border:var(--border) solid var(--color-base-200)!important;border-radius:var(--radius-box)!important;background-color:inherit!important;max-height:min(24rem,70dvh)!important;box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2)!important;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1))!important;margin-block:.5rem!important;margin-inline:.5rem!important;padding:.5rem!important;translate:-.5rem!important}:is(.select,.select select)::picker-icon{display:none!important}:is(.select,.select select) optgroup{padding-top:.5em!important}:is(.select,.select select) optgroup option:first-child{margin-top:.5em!important}:is(.select,.select select) option{border-radius:var(--radius-field)!important;white-space:normal!important;padding-block:.375rem!important;padding-inline:.75rem!important;transition-property:color,background-color!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(0,0,.2,1)!important}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer!important;background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px!important;outline:2px solid #0000!important}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral)!important;color:var(--color-neutral-content)!important;box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)!important}.collapse-title{grid-row-start:1!important;grid-column-start:1!important;width:100%!important;min-height:1lh!important;padding:1rem!important;padding-inline-end:3rem!important;transition:background-color .2s ease-out!important;position:relative!important}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))!important}}.checkbox{cursor:pointer!important;appearance:none!important;border-radius:var(--radius-selector)!important;vertical-align:middle!important;color:var(--color-base-content)!important;box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:var(--size)!important;height:var(--size)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;flex-shrink:0!important;padding:.25rem!important;transition:background-color .2s,box-shadow .2s!important;display:inline-block!important;position:relative!important}.checkbox:before{--tw-content:""!important;content:var(--tw-content)!important;opacity:0!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%)!important;width:100%!important;height:100%!important;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;background-color:currentColor!important;font-size:1rem!important;line-height:.75!important;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s!important;display:block!important;rotate:45deg!important}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor)!important;outline-offset:2px!important}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000)!important;box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))!important}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%)!important;opacity:1!important}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))!important}}.checkbox:indeterminate:before{opacity:1!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%)!important;translate:0 -35%!important;rotate:none!important}.radio{cursor:pointer!important;appearance:none!important;vertical-align:middle!important;border:var(--border) solid var(--input-color,currentColor)!important;border-radius:3.40282e38px!important;flex-shrink:0!important;padding:.25rem!important;display:inline-block!important;position:relative!important}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))!important}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:var(--size)!important;height:var(--size)!important;color:var(--input-color,currentColor)!important}.radio:before{--tw-content:""!important;content:var(--tw-content)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;border-radius:3.40282e38px!important;width:100%!important;height:100%!important;display:block!important}.radio:focus-visible{outline:2px solid!important}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100)!important;border-color:currentColor!important}@media (prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio!important}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))!important;background-color:currentColor!important}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style)!important;outline-offset:calc(1px * -1)!important;outline-width:1px!important}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem!important;outline:.25rem solid!important}}.card{border-radius:var(--radius-box)!important;outline-offset:2px!important;outline:0 solid #0000!important;flex-direction:column!important;transition:outline .2s ease-in-out!important;display:flex!important;position:relative!important}.card:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.card:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.card:focus-visible{outline-color:currentColor!important}.card :where(figure:first-child){border-start-start-radius:inherit!important;border-start-end-radius:inherit!important;border-end-end-radius:unset!important;border-end-start-radius:unset!important;overflow:hidden!important}.card :where(figure:last-child){border-start-start-radius:unset!important;border-start-end-radius:unset!important;border-end-end-radius:inherit!important;border-end-start-radius:inherit!important;overflow:hidden!important}.card figure{justify-content:center!important;align-items:center!important;display:flex!important}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important}.card:has(>:checked){outline:2px solid!important}.textarea{border:var(--border) solid #0000!important;appearance:none!important;border-radius:var(--radius-field)!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;width:clamp(3rem,20rem,100%)!important;min-height:5rem!important;font-size:max(var(--font-size,.875rem), .875rem)!important;touch-action:manipulation!important;border-color:var(--input-color)!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;flex-shrink:1!important;padding-block:.5rem!important;padding-inline:.75rem!important}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.textarea{--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.textarea textarea{appearance:none!important;background-color:#0000!important;border:none!important}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem!important}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none!important}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed!important}.modal-backdrop{color:#0000!important;z-index:-1!important;grid-row-start:1!important;grid-column-start:1!important;place-self:stretch stretch!important;display:grid!important}.modal-backdrop button{cursor:pointer!important}.tab-content{order:var(--tabcontent-order)!important;--tabcontent-radius-ss:var(--radius-box)!important;--tabcontent-radius-se:var(--radius-box)!important;--tabcontent-radius-es:var(--radius-box)!important;--tabcontent-radius-ee:var(--radius-box)!important;--tabcontent-order:1!important;width:100%!important;height:calc(100% - var(--tab-height) + var(--border))!important;margin:var(--tabcontent-margin)!important;border-color:#0000!important;border-width:var(--border)!important;border-start-start-radius:var(--tabcontent-radius-ss)!important;border-start-end-radius:var(--tabcontent-radius-se)!important;border-end-end-radius:var(--tabcontent-radius-ee)!important;border-end-start-radius:var(--tabcontent-radius-es)!important;display:none!important}.modal-box{background-color:var(--color-base-100)!important;border-top-left-radius:var(--modal-tl,var(--radius-box))!important;border-top-right-radius:var(--modal-tr,var(--radius-box))!important;border-bottom-left-radius:var(--modal-bl,var(--radius-box))!important;border-bottom-right-radius:var(--modal-br,var(--radius-box))!important;opacity:0!important;overscroll-behavior:contain!important;grid-row-start:1!important;grid-column-start:1!important;width:91.6667%!important;max-width:32rem!important;max-height:100vh!important;padding:1.5rem!important;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out!important;overflow-y:auto!important;scale:95%!important;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)!important}.breadcrumbs{max-width:100%!important;padding-block:.5rem!important;overflow-x:auto!important}.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol{white-space:nowrap!important;align-items:center!important;min-height:min-content!important;display:flex!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li{align-items:center!important;display:flex!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>*{cursor:pointer!important;align-items:center!important;gap:.5rem!important;display:flex!important}@media (hover:hover){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:hover{text-decoration-line:underline!important}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{outline-offset:2px!important;outline:2px solid #0000!important}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus-visible{outline-offset:2px!important;outline:2px solid!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li+:before{content:""!important;opacity:.4!important;background-color:#0000!important;border-top:1px solid!important;border-right:1px solid!important;width:.375rem!important;height:.375rem!important;margin-inline:.5rem .75rem!important;display:block!important;rotate:45deg!important}[dir=rtl] :is(:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li)+:before{rotate:-135deg!important}.modal-action{justify-content:flex-end!important;gap:.5rem!important;margin-top:1.5rem!important;display:flex!important}.badge{border-radius:var(--radius-selector)!important;vertical-align:middle!important;color:var(--badge-fg)!important;border:var(--border) solid var(--badge-color,var(--color-base-200))!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;background-color:var(--badge-bg)!important;--badge-bg:var(--badge-color,var(--color-base-100))!important;--badge-fg:var(--color-base-content)!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:fit-content!important;height:var(--size)!important;padding-inline:calc(var(--size) / 2 - var(--border))!important;justify-content:center!important;align-items:center!important;gap:.5rem!important;font-size:.875rem!important;display:inline-flex!important}.tabs{--tabs-height:auto!important;--tabs-direction:row!important;--tab-height:calc(var(--size-field,.25rem) * 10)!important;height:var(--tabs-height)!important;flex-wrap:wrap!important;flex-direction:var(--tabs-direction)!important;display:flex!important}.card-body{padding:var(--card-p,1.5rem)!important;font-size:var(--card-fs,.875rem)!important;flex-direction:column!important;flex:auto!important;gap:.5rem!important;display:flex!important}.card-body :where(p){flex-grow:1!important}.alert{--alert-border-color:var(--color-base-200)!important;border-radius:var(--radius-box)!important;color:var(--color-base-content)!important;background-color:var(--alert-color,var(--color-base-200))!important;text-align:start!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))!important;border-style:solid!important;grid-template-columns:auto!important;grid-auto-flow:column!important;justify-content:start!important;place-items:center start!important;gap:1rem!important;padding-block:.75rem!important;padding-inline:1rem!important;font-size:.875rem!important;line-height:1.25rem!important;display:grid!important}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))!important}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)!important}.card-title{font-size:var(--cardtitle-fs,1.125rem)!important;align-items:center!important;gap:.5rem!important;font-weight:600!important;display:flex!important}.link{cursor:pointer!important;text-decoration-line:underline!important}.link:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.link:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.link:focus-visible{outline-offset:2px!important;outline:2px solid!important}.btn-error{--btn-color:var(--color-error)!important;--btn-fg:var(--color-error-content)!important}.btn-info{--btn-color:var(--color-info)!important;--btn-fg:var(--color-info-content)!important}.btn-primary{--btn-color:var(--color-primary)!important;--btn-fg:var(--color-primary-content)!important}.btn-secondary{--btn-color:var(--color-secondary)!important;--btn-fg:var(--color-secondary-content)!important}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto!important;visibility:visible!important;opacity:1!important;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out!important;background-color:oklch(0% 0 0/.4)!important}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1!important;translate:0!important;scale:1!important}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1!important;--page-overflow:hidden!important;--page-scroll-bg:var(--page-scroll-bg-on)!important;--page-scroll-gutter:stable!important;--page-scroll-transition:var(--page-scroll-transition-on)!important;animation:forwards set-page-has-scroll!important;animation-timeline:scroll()!important}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0!important}}.collapse-arrow>.collapse-title:after{width:.5rem!important;height:.5rem!important;display:block!important;position:absolute!important;transform:translateY(-100%)rotate(45deg)!important}@media (prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}}.collapse-arrow>.collapse-title:after{content:""!important;transform-origin:75% 75%!important;pointer-events:none!important;top:50%!important;inset-inline-end:1.4rem!important;box-shadow:2px 2px!important}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none!important}.btn:disabled{pointer-events:none!important;--btn-border:#0000!important;--btn-noise:none!important;--btn-fg:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)!important}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none!important}.btn[disabled]{pointer-events:none!important;--btn-border:#0000!important;--btn-noise:none!important;--btn-fg:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)!important}}@media (prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)!important}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−"!important;content:var(--tw-content)!important}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)!important}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−"!important;content:var(--tw-content)!important}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral)!important;--step-fg:var(--color-neutral-content)!important}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary)!important;--step-fg:var(--color-primary-content)!important}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary)!important;--step-fg:var(--color-secondary-content)!important}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent)!important;--step-fg:var(--color-accent-content)!important}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info)!important;--step-fg:var(--color-info-content)!important}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success)!important;--step-fg:var(--color-success-content)!important}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning)!important;--step-fg:var(--color-warning-content)!important}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error)!important;--step-fg:var(--color-error-content)!important}.checkbox:disabled,.radio:disabled{cursor:not-allowed!important;opacity:.2!important}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn-active{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)!important;isolation:isolate!important}.tabs-box{background-color:var(--color-base-200)!important;--tabs-box-radius:calc(3 * var(--radius-field))!important;border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)))!important;box-shadow:0 -.5px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 .5px oklch(0% 0 0 / calc(var(--depth) * .05)) inset!important;padding:.25rem!important}.tabs-box>.tab{border-radius:var(--radius-field)!important;border-style:none!important}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px!important}.tabs-box>.tab:focus-visible{z-index:1!important}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100))!important;box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral)!important}@supports (color:color-mix(in lab, red, red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000)!important}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid!important}}.tabs-box>.tab-content{height:calc(100% - var(--tab-height) + var(--border) - .5rem)!important;border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)) - var(--border))!important;margin-top:.25rem!important}.input-sm{--size:calc(var(--size-field,.25rem) * 8)!important;font-size:max(var(--font-size,.75rem), .75rem)!important}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem!important;margin-inline-end:-.75rem!important}.loading-xs{width:calc(var(--size-selector,.25rem) * 4)!important}.badge-outline{color:var(--badge-color)!important;--badge-bg:#0000!important;background-image:none!important;border-color:currentColor!important}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important}.checkbox-sm{--size:calc(var(--size-selector,.25rem) * 5)!important;padding:.1875rem!important}.radio-sm{padding:.1875rem!important}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem) * 5)!important}.select-sm{--size:calc(var(--size-field,.25rem) * 8)!important;font-size:.75rem!important}.select-sm option{padding-block:.25rem!important;padding-inline:.625rem!important}.tabs-lg{--tab-height:calc(var(--size-field,.25rem) * 12)!important}.tabs-lg>.tab{--tab-p:1rem!important;--tab-radius-min:calc(1.5rem - var(--border))!important;font-size:1.125rem!important}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5)!important;font-size:.75rem!important}.textarea-sm{font-size:max(var(--font-size,.75rem), .75rem)!important}.alert-error{color:var(--color-error-content)!important;--alert-border-color:var(--color-error)!important;--alert-color:var(--color-error)!important}.alert-info{color:var(--color-info-content)!important;--alert-border-color:var(--color-info)!important;--alert-color:var(--color-info)!important}.alert-success{color:var(--color-success-content)!important;--alert-border-color:var(--color-success)!important;--alert-color:var(--color-success)!important}.alert-warning{color:var(--color-warning-content)!important;--alert-border-color:var(--color-warning)!important;--alert-color:var(--color-warning)!important}.btn-sm{--fontsize:.75rem!important;--btn-p:.75rem!important;--size:calc(var(--size-field,.25rem) * 8)!important}.btn-xs{--fontsize:.6875rem!important;--btn-p:.5rem!important;--size:calc(var(--size-field,.25rem) * 6)!important}.badge-error{--badge-color:var(--color-error)!important;--badge-fg:var(--color-error-content)!important}.badge-info{--badge-color:var(--color-info)!important;--badge-fg:var(--color-info-content)!important}.badge-neutral{--badge-color:var(--color-neutral)!important;--badge-fg:var(--color-neutral-content)!important}.badge-success{--badge-color:var(--color-success)!important;--badge-fg:var(--color-success-content)!important}.badge-warning{--badge-color:var(--color-warning)!important;--badge-fg:var(--color-warning-content)!important}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 5)!important}.toggle-success:checked,.toggle-success[aria-checked=true]{--input-color:var(--color-success)!important}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none!important}.collapse:not(td,tr,colgroup){visibility:revert-layer!important}.collapse{visibility:collapse!important}.join{--join-ss:0!important;--join-se:0!important;--join-es:0!important;--join-ee:0!important;align-items:stretch!important;display:inline-flex!important}.join :where(.join-item){border-start-start-radius:var(--join-ss,0)!important;border-start-end-radius:var(--join-se,0)!important;border-end-end-radius:var(--join-ee,0)!important;border-end-start-radius:var(--join-es,0)!important}.join :where(.join-item) *{--join-ss:var(--radius-field)!important;--join-se:var(--radius-field)!important;--join-es:var(--radius-field)!important;--join-ee:var(--radius-field)!important}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field)!important;--join-se:0!important;--join-es:var(--radius-field)!important;--join-ee:0!important}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0!important;--join-se:var(--radius-field)!important;--join-es:0!important;--join-ee:var(--radius-field)!important}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field)!important;--join-se:var(--radius-field)!important;--join-es:var(--radius-field)!important;--join-ee:var(--radius-field)!important}.join>:where(:focus,:has(:focus)){z-index:1!important}@media (hover:hover){.join>:where(.btn:hover,:has(.btn:hover)){isolation:isolate!important}}.m-0{margin:calc(var(--spacing) * 0)!important}.mx-auto{margin-inline:auto!important}.my-2{margin-block:calc(var(--spacing) * 2)!important}.my-4{margin-block:calc(var(--spacing) * 4)!important}.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0!important;margin-inline-start:calc(var(--border,1px) * -1)!important}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px) 0 var(--border,1px) var(--border,1px)!important}.mt-2{margin-top:calc(var(--spacing) * 2)!important}.mt-3{margin-top:calc(var(--spacing) * 3)!important}.mt-4{margin-top:calc(var(--spacing) * 4)!important}.mt-5{margin-top:calc(var(--spacing) * 5)!important}.mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)!important}.mb-3{margin-bottom:calc(var(--spacing) * 3)!important}.mb-4{margin-bottom:calc(var(--spacing) * 4)!important}.mb-5{margin-bottom:calc(var(--spacing) * 5)!important}.mb-6{margin-bottom:calc(var(--spacing) * 6)!important}.ml-2{margin-left:calc(var(--spacing) * 2)!important}.alert{border-width:var(--border)!important;border-color:var(--alert-border-color,var(--color-base-200))!important}.flex{display:flex!important}.hidden{display:none!important}.inline{display:inline!important}.inline-flex{display:inline-flex!important}.table{display:table!important}.max-h-48{max-height:calc(var(--spacing) * 48)!important}.max-h-\[360px\]{max-height:360px!important}.w-11\/12{width:91.6667%!important}.w-44{width:calc(var(--spacing) * 44)!important}.w-fit{width:fit-content!important}.w-full{width:100%!important}.max-w-2xl{max-width:var(--container-2xl)!important}.max-w-xs{max-width:var(--container-xs)!important}.flex-1{flex:1!important}.animate-pulse{animation:var(--animate-pulse)!important}.cursor-pointer{cursor:pointer!important}.list-disc{list-style-type:disc!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.items-center{align-items:center!important}.items-start{align-items:flex-start!important}.items-stretch{align-items:stretch!important}.gap-1{gap:calc(var(--spacing) * 1)!important}.gap-2{gap:calc(var(--spacing) * 2)!important}.gap-3{gap:calc(var(--spacing) * 3)!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.rounded-box{border-radius:var(--radius-box)!important;border-radius:var(--radius-box)!important}.rounded-lg{border-radius:var(--radius-lg)!important}.border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border-base-300{border-color:var(--color-base-300)!important}.border-base-content\/5{border-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.border-base-content\/5{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)!important}}.bg-\[\#fafafa\]{background-color:#fafafa!important}.bg-base-100{background-color:var(--color-base-100)!important}.bg-base-200{background-color:var(--color-base-200)!important}.bg-neutral{background-color:var(--color-neutral)!important}.bg-primary\/10{background-color:var(--color-primary)!important}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)!important}}.bg-white{background-color:var(--color-white)!important}.p-2\.5{padding:calc(var(--spacing) * 2.5)!important}.p-3{padding:calc(var(--spacing) * 3)!important}.p-4{padding:calc(var(--spacing) * 4)!important}.px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-5{padding-inline:calc(var(--spacing) * 5)!important}.py-1{padding-block:calc(var(--spacing) * 1)!important}.py-3{padding-block:calc(var(--spacing) * 3)!important}.py-4{padding-block:calc(var(--spacing) * 4)!important}.pt-1{padding-top:calc(var(--spacing) * 1)!important}.pt-2{padding-top:calc(var(--spacing) * 2)!important}.pl-5{padding-left:calc(var(--spacing) * 5)!important}.text-center{text-align:center!important}.font-mono{font-family:var(--font-mono)!important}.font-sans{font-family:var(--font-sans)!important}.text-lg{font-size:var(--text-lg)!important;line-height:var(--tw-leading,var(--text-lg--line-height))!important}.text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.text-xl{font-size:var(--text-xl)!important;line-height:var(--tw-leading,var(--text-xl--line-height))!important}.text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[1\.6rem\]{font-size:1.6rem!important}.leading-relaxed{--tw-leading:var(--leading-relaxed)!important;line-height:var(--leading-relaxed)!important}.font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.font-medium{--tw-font-weight:var(--font-weight-medium)!important;font-weight:var(--font-weight-medium)!important}.font-semibold{--tw-font-weight:var(--font-weight-semibold)!important;font-weight:var(--font-weight-semibold)!important}.whitespace-pre-wrap{white-space:pre-wrap!important}.text-base-content\/60{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.text-base-content\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)!important}}.text-error{color:var(--color-error)!important}.text-neutral-content{color:var(--color-neutral-content)!important}.text-warning{color:var(--color-warning)!important}.no-underline{text-decoration-line:none!important}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}@layer daisyui.l1{.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:""!important;--btn-bg:#0000!important;--btn-border:#0000!important;--btn-noise:none!important}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor)!important;outline-color:currentColor!important}@media (hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:""!important;--btn-bg:#0000!important;--btn-fg:var(--btn-color,currentColor)!important;--btn-border:#0000!important;--btn-noise:none!important;outline-color:currentColor!important}}}@layer base{:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}@property --radialprogress{syntax:"";inherits:true;initial-value:0%}:root:not(span){overflow:var(--page-overflow)}:root{background:var(--page-scroll-bg,var(--root-bg));--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset) ; else: unset)}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}:where(:root),:root:has(input.theme-controller[value=gniza]:checked),[data-theme=gniza]{color-scheme:light;--color-base-100:transparent;--color-base-200:oklch(97% 0 0);--color-base-300:oklch(89.8% 0 0);--color-base-content:oklch(30.9% .116 258.9);--color-primary:oklch(38.2% .145 259.4);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(69.5% .169 47.8);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(86.4% .177 90.8);--color-accent-content:oklch(30.9% .116 258.9);--color-neutral:oklch(30.9% .116 258.9);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(69% .083 217.5);--color-info-content:oklch(100% 0 0);--color-success:oklch(65% .25 140);--color-success-content:oklch(100% 0 0);--color-warning:oklch(86.4% .177 90.8);--color-warning-content:oklch(30.9% .116 258.9);--color-error:oklch(57.7% .245 27.3);--color-error-content:oklch(100% 0 0);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@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-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file +@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-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}:root,:host{--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-lg:.5rem;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite}@layer daisyui.l1.l2.l3{.modal{pointer-events:none!important;visibility:hidden!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;color:inherit!important;transition:visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out!important;overscroll-behavior:contain!important;z-index:999!important;scrollbar-gutter:auto!important;background-color:#0000!important;place-items:center!important;margin:0!important;padding:0!important;display:grid!important;position:fixed!important;inset:0!important;overflow:clip!important}.modal::backdrop{display:none!important}.tab{cursor:pointer!important;appearance:none!important;text-align:center!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;display:inline-flex!important;position:relative!important}@media (hover:hover){.tab:hover{color:var(--color-base-content)!important}}.tab{--tab-p:.75rem!important;--tab-bg:var(--color-base-100)!important;--tab-border-color:var(--color-base-300)!important;--tab-radius-ss:0!important;--tab-radius-se:0!important;--tab-radius-es:0!important;--tab-radius-ee:0!important;--tab-order:0!important;--tab-radius-min:calc(.75rem - var(--border))!important;--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min))!important;--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px)!important;order:var(--tab-order)!important;height:var(--tab-height)!important;padding-inline:var(--tab-p)!important;border-color:#0000!important;font-size:.875rem!important}.tab:is(input[type=radio]){min-width:fit-content!important}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label)!important;content:var(--tw-content)!important}.tab:is(label){position:relative!important}.tab:is(label) input{cursor:pointer!important;appearance:none!important;opacity:0!important;position:absolute!important;inset:0!important}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block!important}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)!important}}.tab:not(input):empty{cursor:default!important;flex-grow:1!important}.tab:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.tab:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px!important;outline:2px solid!important}.tab[disabled]{pointer-events:none!important;opacity:.4!important}:where(.btn){width:unset!important}.btn{cursor:pointer!important;text-align:center!important;vertical-align:middle!important;outline-offset:2px!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;padding-inline:var(--btn-p)!important;color:var(--btn-fg)!important;--tw-prose-links:var(--btn-fg)!important;height:var(--size)!important;font-size:var(--fontsize,.875rem)!important;outline-color:var(--btn-color,var(--color-base-content))!important;background-color:var(--btn-bg)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--btn-noise)!important;border-width:var(--border)!important;border-style:solid!important;border-color:var(--btn-border)!important;text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15))!important;touch-action:manipulation!important;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow)!important;--size:calc(var(--size-field,.25rem) * 10)!important;--btn-bg:var(--btn-color,var(--color-base-200))!important;--btn-fg:var(--color-base-content)!important;--btn-p:1rem!important;--btn-border:var(--btn-bg)!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-wrap:nowrap!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;gap:.375rem!important;font-weight:600!important;transition-property:color,background-color,border-color,box-shadow!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(0,0,.2,1)!important;display:inline-flex!important}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))!important}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)!important}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)!important}}.btn{--btn-noise:var(--fx-noise)!important}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate!important;outline-width:2px!important;outline-style:solid!important}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200))!important;translate:0 .5px!important}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)!important}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)!important}.btn:is(input[type=checkbox],input[type=radio]){appearance:none!important}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label)!important;content:var(--tw-content)!important}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary)!important;--btn-fg:var(--color-primary-content)!important;isolation:isolate!important}.loading{pointer-events:none!important;aspect-ratio:1!important;vertical-align:middle!important;width:calc(var(--size-selector,.25rem) * 6)!important;background-color:currentColor!important;display:inline-block!important;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;-webkit-mask-position:50%!important;mask-position:50%!important;-webkit-mask-size:100%!important;mask-size:100%!important;-webkit-mask-repeat:no-repeat!important;mask-repeat:no-repeat!important}.collapse{border-radius:var(--radius-box,1rem)!important;isolation:isolate!important;grid-template-rows:max-content 0fr!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;display:grid!important;position:relative!important;overflow:hidden!important}@media (prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s!important}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none!important;opacity:0!important;z-index:1!important;padding:1rem!important;grid-row-start:1!important;grid-column-start:1!important;width:100%!important;min-height:1lh!important;padding-inline-end:3rem!important;transition:background-color .2s ease-out!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible!important;min-height:fit-content!important}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible!important}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content)!important;outline-offset:2px!important;outline-width:2px!important;outline-style:solid!important}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer!important}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset!important}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem!important}.collapse:is(details){width:100%!important}@media (prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s!important;interpolate-size:allow-keywords!important;height:0!important}.collapse:is(details):where([open])::details-content{height:auto!important}}.collapse:is(details) summary{display:block!important;position:relative!important}.collapse:is(details) summary::-webkit-details-marker{display:none!important}.collapse:is(details)>.collapse-content{content-visibility:visible!important}.collapse:is(details) summary{outline:none!important}.collapse-content{content-visibility:hidden!important;min-height:0!important;cursor:unset!important;grid-row-start:2!important;grid-column-start:1!important;padding-left:1rem!important;padding-right:1rem!important}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden!important}}@media (prefers-reduced-motion:no-preference){.collapse-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out!important}}.toggle{border:var(--border) solid currentColor!important;color:var(--input-color)!important;cursor:pointer!important;appearance:none!important;vertical-align:middle!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector))!important;border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)))!important;padding:var(--toggle-p)!important;flex-shrink:0!important;grid-template-columns:0fr 1fr 1fr!important;place-content:center!important;display:inline-grid!important;position:relative!important;box-shadow:inset 0 1px!important}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset!important}}.toggle{--input-color:var(--color-base-content)!important;transition:color .3s,grid-template-columns .2s!important}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)!important}}.toggle{--toggle-p:calc(var(--size) * .125)!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2)!important;height:var(--size)!important}.toggle>*{z-index:1!important;cursor:pointer!important;appearance:none!important;background-color:#0000!important;border:none!important;grid-column:2/span 1!important;grid-row-start:1!important;height:100%!important;padding:.125rem!important;transition:opacity .2s,rotate .4s!important}.toggle>:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.toggle>:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.toggle>:nth-child(2){color:var(--color-base-100)!important;rotate:none!important}.toggle>:nth-child(3){color:var(--color-base-100)!important;opacity:0!important;rotate:-15deg!important}.toggle:has(:checked)>:nth-child(2){opacity:0!important;rotate:15deg!important}.toggle:has(:checked)>:nth-child(3){opacity:1!important;rotate:none!important}.toggle:before{aspect-ratio:1!important;border-radius:var(--radius-selector)!important;--tw-content:""!important;content:var(--tw-content)!important;width:100%!important;height:100%!important;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor!important;background-color:currentColor!important;grid-row-start:1!important;grid-column-start:2!important;transition:background-color .1s,translate .2s,inset-inline-start .2s!important;position:relative!important;inset-inline-start:0!important;translate:0!important}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)!important}}.toggle:before{background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style)!important;outline-offset:calc(1px * -1)!important;outline-width:1px!important}}@media print{.toggle:before{outline-offset:-1rem!important;outline:.25rem solid!important}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px!important;outline:2px solid!important}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100)!important;--input-color:var(--color-base-content)!important;grid-template-columns:1fr 1fr 0fr!important}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor!important}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0!important}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr!important}.toggle:disabled{cursor:not-allowed!important;opacity:.3!important}.toggle:disabled:before{border:var(--border) solid currentColor!important;background-color:#0000!important}.input{cursor:text!important;border:var(--border) solid #0000!important;appearance:none!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;white-space:nowrap!important;width:clamp(3rem,20rem,100%)!important;height:var(--size)!important;font-size:max(var(--font-size,.875rem), .875rem)!important;touch-action:manipulation!important;border-color:var(--input-color)!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-shrink:1!important;align-items:center!important;gap:.5rem!important;padding-inline:.75rem!important;display:inline-flex!important;position:relative!important}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.input{--size:calc(var(--size-field,.25rem) * 10)!important;--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.input:where(input){display:inline-flex!important}.input :where(input){appearance:none!important;background-color:#0000!important;border:none!important;width:100%!important;height:100%!important;display:inline-flex!important}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr!important}.input :where(input[type=date]){display:inline-flex!important}.input:focus,.input:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.input:focus,.input:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem!important}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none!important}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed!important}.input::-webkit-date-and-time-value{text-align:inherit!important}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem!important;margin-inline-end:-.75rem!important}.input::-webkit-calendar-picker-indicator{position:absolute!important;inset-inline-end:.75em!important}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none!important;appearance:none!important;display:inline-flex!important}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer!important;width:1em!important;height:1em!important;position:absolute!important;inset-inline-end:.75em!important}.table{border-collapse:separate!important;--tw-border-spacing-x:calc(.25rem * 0)!important;--tw-border-spacing-y:calc(.25rem * 0)!important;width:100%!important;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)!important;border-radius:var(--radius-box)!important;text-align:left!important;font-size:.875rem!important;position:relative!important}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right!important}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)!important}}.table :where(th,td){vertical-align:middle!important;padding-block:.75rem!important;padding-inline:1rem!important}.table :where(thead,tfoot){white-space:nowrap!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)!important}}.table :where(thead,tfoot){font-size:.875rem!important;font-weight:600!important}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)!important}}.table :where(.table-pin-rows thead tr){z-index:1!important;background-color:var(--color-base-100)!important;position:sticky!important;top:0!important}.table :where(.table-pin-rows tfoot tr){z-index:1!important;background-color:var(--color-base-100)!important;position:sticky!important;bottom:0!important}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100)!important;position:sticky!important;left:0!important;right:0!important}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)!important}}.steps{counter-reset:step!important;grid-auto-columns:1fr!important;grid-auto-flow:column!important;display:inline-grid!important;overflow:auto hidden!important}.steps .step{text-align:center!important;--step-bg:var(--color-base-300)!important;--step-fg:var(--color-base-content)!important;grid-template-rows:40px 1fr!important;grid-template-columns:auto!important;place-items:center!important;min-width:4rem!important;display:grid!important}.steps .step:before{width:100%!important;height:.5rem!important;color:var(--step-bg)!important;background-color:var(--step-bg)!important;content:""!important;border:1px solid!important;grid-row-start:1!important;grid-column-start:1!important;margin-inline-start:-100%!important;top:0!important}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step)!important;content:var(--tw-content)!important;counter-increment:step!important;z-index:1!important;color:var(--step-fg)!important;background-color:var(--step-bg)!important;border:1px solid var(--step-bg)!important;border-radius:3.40282e38px!important;grid-row-start:1!important;grid-column-start:1!important;place-self:center!important;place-items:center!important;width:2rem!important;height:2rem!important;display:grid!important;position:relative!important}.steps .step:first-child:before{--tw-content:none!important;content:var(--tw-content)!important}.steps .step[data-content]:after{--tw-content:attr(data-content)!important;content:var(--tw-content)!important}.select{border:var(--border) solid #0000!important;appearance:none!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;width:clamp(3rem,20rem,100%)!important;height:var(--size)!important;touch-action:manipulation!important;white-space:nowrap!important;text-overflow:ellipsis!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%)!important;background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%)!important;background-repeat:no-repeat!important;background-size:4px 4px,4px 4px!important;border-start-start-radius:var(--join-ss,var(--radius-field))!important;border-start-end-radius:var(--join-se,var(--radius-field))!important;border-end-end-radius:var(--join-ee,var(--radius-field))!important;border-end-start-radius:var(--join-es,var(--radius-field))!important;flex-shrink:1!important;align-items:center!important;gap:.375rem!important;padding-inline:.75rem 1.75rem!important;font-size:.875rem!important;display:inline-flex!important;position:relative!important;overflow:hidden!important}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.select{border-color:var(--input-color)!important;--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.select{--size:calc(var(--size-field,.25rem) * 10)!important}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)!important}[dir=rtl] .select::picker(select){translate:.5rem!important}[dir=rtl] .select select::picker(select){translate:.5rem!important}.select[multiple]{background-image:none!important;height:auto!important;padding-block:.75rem!important;padding-inline-end:.75rem!important;overflow:auto!important}.select select{appearance:none!important;width:calc(100% + 2.75rem)!important;height:calc(100% - calc(var(--border) * 2))!important;background:inherit!important;border-radius:inherit!important;border-style:none!important;align-items:center!important;margin-inline:-.75rem -1.75rem!important;padding-inline:.75rem 1.75rem!important}.select select:focus,.select select:focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.select select:not(:last-child){background-image:none!important;margin-inline-end:-1.375rem!important}.select:focus,.select:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.select:focus,.select:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed!important}@supports (appearance:base-select){.select,.select select{appearance:base-select!important}:is(.select,.select select)::picker(select){appearance:base-select!important}}:is(.select,.select select)::picker(select){color:inherit!important;border:var(--border) solid var(--color-base-200)!important;border-radius:var(--radius-box)!important;background-color:inherit!important;max-height:min(24rem,70dvh)!important;box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2)!important;box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1))!important;margin-block:.5rem!important;margin-inline:.5rem!important;padding:.5rem!important;translate:-.5rem!important}:is(.select,.select select)::picker-icon{display:none!important}:is(.select,.select select) optgroup{padding-top:.5em!important}:is(.select,.select select) optgroup option:first-child{margin-top:.5em!important}:is(.select,.select select) option{border-radius:var(--radius-field)!important;white-space:normal!important;padding-block:.375rem!important;padding-inline:.75rem!important;transition-property:color,background-color!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(0,0,.2,1)!important}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer!important;background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px!important;outline:2px solid #0000!important}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral)!important;color:var(--color-neutral-content)!important;box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)!important}.collapse-title{grid-row-start:1!important;grid-column-start:1!important;width:100%!important;min-height:1lh!important;padding:1rem!important;padding-inline-end:3rem!important;transition:background-color .2s ease-out!important;position:relative!important}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))!important}}.checkbox{cursor:pointer!important;appearance:none!important;border-radius:var(--radius-selector)!important;vertical-align:middle!important;color:var(--color-base-content)!important;box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:var(--size)!important;height:var(--size)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;flex-shrink:0!important;padding:.25rem!important;transition:background-color .2s,box-shadow .2s!important;display:inline-block!important;position:relative!important}.checkbox:before{--tw-content:""!important;content:var(--tw-content)!important;opacity:0!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%)!important;width:100%!important;height:100%!important;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;background-color:currentColor!important;font-size:1rem!important;line-height:.75!important;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s!important;display:block!important;rotate:45deg!important}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor)!important;outline-offset:2px!important}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000)!important;box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))!important}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%)!important;opacity:1!important}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎"!important;clip-path:none!important;background-color:#0000!important;rotate:none!important}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))!important}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))!important}}.checkbox:indeterminate:before{opacity:1!important;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%)!important;translate:0 -35%!important;rotate:none!important}.radio{cursor:pointer!important;appearance:none!important;vertical-align:middle!important;border:var(--border) solid var(--input-color,currentColor)!important;border-radius:3.40282e38px!important;flex-shrink:0!important;padding:.25rem!important;display:inline-block!important;position:relative!important}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))!important}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:var(--size)!important;height:var(--size)!important;color:var(--input-color,currentColor)!important}.radio:before{--tw-content:""!important;content:var(--tw-content)!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;border-radius:3.40282e38px!important;width:100%!important;height:100%!important;display:block!important}.radio:focus-visible{outline:2px solid!important}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100)!important;border-color:currentColor!important}@media (prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio!important}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))!important;background-color:currentColor!important}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style)!important;outline-offset:calc(1px * -1)!important;outline-width:1px!important}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem!important;outline:.25rem solid!important}}.card{border-radius:var(--radius-box)!important;outline-offset:2px!important;outline:0 solid #0000!important;flex-direction:column!important;transition:outline .2s ease-in-out!important;display:flex!important;position:relative!important}.card:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.card:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.card:focus-visible{outline-color:currentColor!important}.card :where(figure:first-child){border-start-start-radius:inherit!important;border-start-end-radius:inherit!important;border-end-end-radius:unset!important;border-end-start-radius:unset!important;overflow:hidden!important}.card :where(figure:last-child){border-start-start-radius:unset!important;border-start-end-radius:unset!important;border-end-end-radius:inherit!important;border-end-start-radius:inherit!important;overflow:hidden!important}.card figure{justify-content:center!important;align-items:center!important;display:flex!important}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer!important;-webkit-user-select:none!important;user-select:none!important}.card:has(>:checked){outline:2px solid!important}.textarea{border:var(--border) solid #0000!important;appearance:none!important;border-radius:var(--radius-field)!important;background-color:var(--color-base-100)!important;vertical-align:middle!important;width:clamp(3rem,20rem,100%)!important;min-height:5rem!important;font-size:max(var(--font-size,.875rem), .875rem)!important;touch-action:manipulation!important;border-color:var(--input-color)!important;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important;flex-shrink:1!important;padding-block:.5rem!important;padding-inline:.75rem!important}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset!important}}.textarea{--input-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)!important}}.textarea textarea{appearance:none!important;background-color:#0000!important;border:none!important}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px!important;outline:2px solid #0000!important}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content)!important;box-shadow:0 1px var(--input-color)!important}@supports (color:color-mix(in lab, red, red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)!important}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color)!important;outline-offset:2px!important;isolation:isolate!important}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem!important}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed!important;border-color:var(--color-base-200)!important;background-color:var(--color-base-200)!important;color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)!important}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)!important}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none!important}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed!important}.modal-backdrop{color:#0000!important;z-index:-1!important;grid-row-start:1!important;grid-column-start:1!important;place-self:stretch stretch!important;display:grid!important}.modal-backdrop button{cursor:pointer!important}.tab-content{order:var(--tabcontent-order)!important;--tabcontent-radius-ss:var(--radius-box)!important;--tabcontent-radius-se:var(--radius-box)!important;--tabcontent-radius-es:var(--radius-box)!important;--tabcontent-radius-ee:var(--radius-box)!important;--tabcontent-order:1!important;width:100%!important;height:calc(100% - var(--tab-height) + var(--border))!important;margin:var(--tabcontent-margin)!important;border-color:#0000!important;border-width:var(--border)!important;border-start-start-radius:var(--tabcontent-radius-ss)!important;border-start-end-radius:var(--tabcontent-radius-se)!important;border-end-end-radius:var(--tabcontent-radius-ee)!important;border-end-start-radius:var(--tabcontent-radius-es)!important;display:none!important}.modal-box{background-color:var(--color-base-100)!important;border-top-left-radius:var(--modal-tl,var(--radius-box))!important;border-top-right-radius:var(--modal-tr,var(--radius-box))!important;border-bottom-left-radius:var(--modal-bl,var(--radius-box))!important;border-bottom-right-radius:var(--modal-br,var(--radius-box))!important;opacity:0!important;overscroll-behavior:contain!important;grid-row-start:1!important;grid-column-start:1!important;width:91.6667%!important;max-width:32rem!important;max-height:100vh!important;padding:1.5rem!important;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out!important;overflow-y:auto!important;scale:95%!important;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)!important}.breadcrumbs{max-width:100%!important;padding-block:.5rem!important;overflow-x:auto!important}.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol{white-space:nowrap!important;align-items:center!important;min-height:min-content!important;display:flex!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li{align-items:center!important;display:flex!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>*{cursor:pointer!important;align-items:center!important;gap:.5rem!important;display:flex!important}@media (hover:hover){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:hover{text-decoration-line:underline!important}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus{outline-offset:2px!important;outline:2px solid #0000!important}}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li>:focus-visible{outline-offset:2px!important;outline:2px solid!important}:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li+:before{content:""!important;opacity:.4!important;background-color:#0000!important;border-top:1px solid!important;border-right:1px solid!important;width:.375rem!important;height:.375rem!important;margin-inline:.5rem .75rem!important;display:block!important;rotate:45deg!important}[dir=rtl] :is(:is(.breadcrumbs>menu,.breadcrumbs>ul,.breadcrumbs>ol)>li)+:before{rotate:-135deg!important}.modal-action{justify-content:flex-end!important;gap:.5rem!important;margin-top:1.5rem!important;display:flex!important}.badge{border-radius:var(--radius-selector)!important;vertical-align:middle!important;color:var(--badge-fg)!important;border:var(--border) solid var(--badge-color,var(--color-base-200))!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;background-color:var(--badge-bg)!important;--badge-bg:var(--badge-color,var(--color-base-100))!important;--badge-fg:var(--color-base-content)!important;--size:calc(var(--size-selector,.25rem) * 6)!important;width:fit-content!important;height:var(--size)!important;padding-inline:calc(var(--size) / 2 - var(--border))!important;justify-content:center!important;align-items:center!important;gap:.5rem!important;font-size:.875rem!important;display:inline-flex!important}.tabs{--tabs-height:auto!important;--tabs-direction:row!important;--tab-height:calc(var(--size-field,.25rem) * 10)!important;height:var(--tabs-height)!important;flex-wrap:wrap!important;flex-direction:var(--tabs-direction)!important;display:flex!important}.card-body{padding:var(--card-p,1.5rem)!important;font-size:var(--card-fs,.875rem)!important;flex-direction:column!important;flex:auto!important;gap:.5rem!important;display:flex!important}.card-body :where(p){flex-grow:1!important}.alert{--alert-border-color:var(--color-base-200)!important;border-radius:var(--radius-box)!important;color:var(--color-base-content)!important;background-color:var(--alert-color,var(--color-base-200))!important;text-align:start!important;background-size:auto, calc(var(--noise) * 100%)!important;background-image:none, var(--fx-noise)!important;box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))!important;border-style:solid!important;grid-template-columns:auto!important;grid-auto-flow:column!important;justify-content:start!important;place-items:center start!important;gap:1rem!important;padding-block:.75rem!important;padding-inline:1rem!important;font-size:.875rem!important;line-height:1.25rem!important;display:grid!important}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))!important}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)!important}.card-title{font-size:var(--cardtitle-fs,1.125rem)!important;align-items:center!important;gap:.5rem!important;font-weight:600!important;display:flex!important}.link{cursor:pointer!important;text-decoration-line:underline!important}.link:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.link:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.link:focus-visible{outline-offset:2px!important;outline:2px solid!important}.btn-error{--btn-color:var(--color-error)!important;--btn-fg:var(--color-error-content)!important}.btn-info{--btn-color:var(--color-info)!important;--btn-fg:var(--color-info-content)!important}.btn-primary{--btn-color:var(--color-primary)!important;--btn-fg:var(--color-primary-content)!important}.btn-secondary{--btn-color:var(--color-secondary)!important;--btn-fg:var(--color-secondary-content)!important}.btn-warning{--btn-color:var(--color-warning)!important;--btn-fg:var(--color-warning-content)!important}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto!important;visibility:visible!important;opacity:1!important;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out!important;background-color:oklch(0% 0 0/.4)!important}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1!important;translate:0!important;scale:1!important}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1!important;--page-overflow:hidden!important;--page-scroll-bg:var(--page-scroll-bg-on)!important;--page-scroll-gutter:stable!important;--page-scroll-transition:var(--page-scroll-transition-on)!important;animation:forwards set-page-has-scroll!important;animation-timeline:scroll()!important}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0!important}}.collapse-arrow>.collapse-title:after{width:.5rem!important;height:.5rem!important;display:block!important;position:absolute!important;transform:translateY(-100%)rotate(45deg)!important}@media (prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all!important;transition-duration:.2s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}}.collapse-arrow>.collapse-title:after{content:""!important;transform-origin:75% 75%!important;pointer-events:none!important;top:50%!important;inset-inline-end:1.4rem!important;box-shadow:2px 2px!important}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none!important}.btn:disabled{pointer-events:none!important;--btn-border:#0000!important;--btn-noise:none!important;--btn-fg:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)!important}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)!important}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none!important}.btn[disabled]{pointer-events:none!important;--btn-border:#0000!important;--btn-noise:none!important;--btn-fg:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)!important}}@media (prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)!important}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−"!important;content:var(--tw-content)!important}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)!important}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−"!important;content:var(--tw-content)!important}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral)!important;--step-fg:var(--color-neutral-content)!important}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary)!important;--step-fg:var(--color-primary-content)!important}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary)!important;--step-fg:var(--color-secondary-content)!important}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent)!important;--step-fg:var(--color-accent-content)!important}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info)!important;--step-fg:var(--color-info-content)!important}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success)!important;--step-fg:var(--color-success-content)!important}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning)!important;--step-fg:var(--color-warning-content)!important}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error)!important;--step-fg:var(--color-error-content)!important}.checkbox:disabled,.radio:disabled{cursor:not-allowed!important;opacity:.2!important}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))!important}@supports (color:color-mix(in lab, red, red)){.btn-active{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)!important}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)!important;isolation:isolate!important}.tabs-box{background-color:var(--color-base-200)!important;--tabs-box-radius:calc(3 * var(--radius-field))!important;border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)))!important;box-shadow:0 -.5px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 .5px oklch(0% 0 0 / calc(var(--depth) * .05)) inset!important;padding:.25rem!important}.tabs-box>.tab{border-radius:var(--radius-field)!important;border-style:none!important}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px!important}.tabs-box>.tab:focus-visible{z-index:1!important}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100))!important;box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral)!important}@supports (color:color-mix(in lab, red, red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000)!important}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid!important}}.tabs-box>.tab-content{height:calc(100% - var(--tab-height) + var(--border) - .5rem)!important;border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)) - var(--border))!important;margin-top:.25rem!important}.input-sm{--size:calc(var(--size-field,.25rem) * 8)!important;font-size:max(var(--font-size,.75rem), .75rem)!important}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem!important;margin-inline-end:-.75rem!important}.btn-circle{width:var(--size)!important;height:var(--size)!important;border-radius:3.40282e38px!important;padding-inline:0!important}.loading-xs{width:calc(var(--size-selector,.25rem) * 4)!important}.badge-outline{color:var(--badge-color)!important;--badge-bg:#0000!important;background-image:none!important;border-color:currentColor!important}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")!important}.checkbox-sm{--size:calc(var(--size-selector,.25rem) * 5)!important;padding:.1875rem!important}.radio-sm{padding:.1875rem!important}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem) * 5)!important}.select-sm{--size:calc(var(--size-field,.25rem) * 8)!important;font-size:.75rem!important}.select-sm option{padding-block:.25rem!important;padding-inline:.625rem!important}.tabs-lg{--tab-height:calc(var(--size-field,.25rem) * 12)!important}.tabs-lg>.tab{--tab-p:1rem!important;--tab-radius-min:calc(1.5rem - var(--border))!important;font-size:1.125rem!important}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5)!important;font-size:.75rem!important}.textarea-sm{font-size:max(var(--font-size,.75rem), .75rem)!important}.alert-error{color:var(--color-error-content)!important;--alert-border-color:var(--color-error)!important;--alert-color:var(--color-error)!important}.alert-info{color:var(--color-info-content)!important;--alert-border-color:var(--color-info)!important;--alert-color:var(--color-info)!important}.alert-success{color:var(--color-success-content)!important;--alert-border-color:var(--color-success)!important;--alert-color:var(--color-success)!important}.alert-warning{color:var(--color-warning-content)!important;--alert-border-color:var(--color-warning)!important;--alert-color:var(--color-warning)!important}.btn-sm{--fontsize:.75rem!important;--btn-p:.75rem!important;--size:calc(var(--size-field,.25rem) * 8)!important}.btn-xs{--fontsize:.6875rem!important;--btn-p:.5rem!important;--size:calc(var(--size-field,.25rem) * 6)!important}.badge-error{--badge-color:var(--color-error)!important;--badge-fg:var(--color-error-content)!important}.badge-info{--badge-color:var(--color-info)!important;--badge-fg:var(--color-info-content)!important}.badge-neutral{--badge-color:var(--color-neutral)!important;--badge-fg:var(--color-neutral-content)!important}.badge-success{--badge-color:var(--color-success)!important;--badge-fg:var(--color-success-content)!important}.badge-warning{--badge-color:var(--color-warning)!important;--badge-fg:var(--color-warning-content)!important}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 5)!important}.toggle-success:checked,.toggle-success[aria-checked=true]{--input-color:var(--color-success)!important}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none!important}.collapse:not(td,tr,colgroup){visibility:revert-layer!important}.collapse{visibility:collapse!important}.join{--join-ss:0!important;--join-se:0!important;--join-es:0!important;--join-ee:0!important;align-items:stretch!important;display:inline-flex!important}.join :where(.join-item){border-start-start-radius:var(--join-ss,0)!important;border-start-end-radius:var(--join-se,0)!important;border-end-end-radius:var(--join-ee,0)!important;border-end-start-radius:var(--join-es,0)!important}.join :where(.join-item) *{--join-ss:var(--radius-field)!important;--join-se:var(--radius-field)!important;--join-es:var(--radius-field)!important;--join-ee:var(--radius-field)!important}.join>.join-item:where(:first-child),.join :first-child:not(:last-child) :where(.join-item){--join-ss:var(--radius-field)!important;--join-se:0!important;--join-es:var(--radius-field)!important;--join-ee:0!important}.join>.join-item:where(:last-child),.join :last-child:not(:first-child) :where(.join-item){--join-ss:0!important;--join-se:var(--radius-field)!important;--join-es:0!important;--join-ee:var(--radius-field)!important}.join>.join-item:where(:only-child),.join :only-child :where(.join-item){--join-ss:var(--radius-field)!important;--join-se:var(--radius-field)!important;--join-es:var(--radius-field)!important;--join-ee:var(--radius-field)!important}.join>:where(:focus,:has(:focus)){z-index:1!important}@media (hover:hover){.join>:where(.btn:hover,:has(.btn:hover)){isolation:isolate!important}}.m-0{margin:calc(var(--spacing) * 0)!important}.mx-auto{margin-inline:auto!important}.my-2{margin-block:calc(var(--spacing) * 2)!important}.my-4{margin-block:calc(var(--spacing) * 4)!important}.join-item:where(:not(:first-child,:disabled,[disabled],.btn-disabled)){margin-block-start:0!important;margin-inline-start:calc(var(--border,1px) * -1)!important}.join-item:where(:is(:disabled,[disabled],.btn-disabled)){border-width:var(--border,1px) 0 var(--border,1px) var(--border,1px)!important}.mt-1{margin-top:calc(var(--spacing) * 1)!important}.mt-2{margin-top:calc(var(--spacing) * 2)!important}.mt-3{margin-top:calc(var(--spacing) * 3)!important}.mt-4{margin-top:calc(var(--spacing) * 4)!important}.mt-5{margin-top:calc(var(--spacing) * 5)!important}.mb-1{margin-bottom:calc(var(--spacing) * 1)!important}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)!important}.mb-3{margin-bottom:calc(var(--spacing) * 3)!important}.mb-4{margin-bottom:calc(var(--spacing) * 4)!important}.mb-5{margin-bottom:calc(var(--spacing) * 5)!important}.mb-6{margin-bottom:calc(var(--spacing) * 6)!important}.ml-2{margin-left:calc(var(--spacing) * 2)!important}.alert{border-width:var(--border)!important;border-color:var(--alert-border-color,var(--color-base-200))!important}.flex{display:flex!important}.hidden{display:none!important}.inline{display:inline!important}.inline-flex{display:inline-flex!important}.table{display:table!important}.h-40{height:calc(var(--spacing) * 40)!important}.max-h-48{max-height:calc(var(--spacing) * 48)!important}.max-h-\[360px\]{max-height:360px!important}.w-11\/12{width:91.6667%!important}.w-44{width:calc(var(--spacing) * 44)!important}.w-fit{width:fit-content!important}.w-full{width:100%!important}.max-w-2xl{max-width:var(--container-2xl)!important}.max-w-xs{max-width:var(--container-xs)!important}.flex-1{flex:1!important}.animate-pulse{animation:var(--animate-pulse)!important}.cursor-pointer{cursor:pointer!important}.list-disc{list-style-type:disc!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.items-center{align-items:center!important}.items-start{align-items:flex-start!important}.items-stretch{align-items:stretch!important}.gap-1{gap:calc(var(--spacing) * 1)!important}.gap-2{gap:calc(var(--spacing) * 2)!important}.gap-3{gap:calc(var(--spacing) * 3)!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.rounded-box{border-radius:var(--radius-box)!important;border-radius:var(--radius-box)!important}.rounded-lg{border-radius:var(--radius-lg)!important}.border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border-base-300{border-color:var(--color-base-300)!important}.border-base-content\/5{border-color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.border-base-content\/5{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)!important}}.bg-\[\#fafafa\]{background-color:#fafafa!important}.bg-base-100{background-color:var(--color-base-100)!important}.bg-base-200{background-color:var(--color-base-200)!important}.bg-neutral{background-color:var(--color-neutral)!important}.bg-primary\/10{background-color:var(--color-primary)!important}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)!important}}.bg-white{background-color:var(--color-white)!important}.p-2\.5{padding:calc(var(--spacing) * 2.5)!important}.p-3{padding:calc(var(--spacing) * 3)!important}.p-4{padding:calc(var(--spacing) * 4)!important}.px-4{padding-inline:calc(var(--spacing) * 4)!important}.px-5{padding-inline:calc(var(--spacing) * 5)!important}.py-1{padding-block:calc(var(--spacing) * 1)!important}.py-3{padding-block:calc(var(--spacing) * 3)!important}.py-4{padding-block:calc(var(--spacing) * 4)!important}.pt-1{padding-top:calc(var(--spacing) * 1)!important}.pt-2{padding-top:calc(var(--spacing) * 2)!important}.pl-5{padding-left:calc(var(--spacing) * 5)!important}.text-center{text-align:center!important}.font-mono{font-family:var(--font-mono)!important}.font-sans{font-family:var(--font-sans)!important}.text-lg{font-size:var(--text-lg)!important;line-height:var(--tw-leading,var(--text-lg--line-height))!important}.text-sm{font-size:var(--text-sm)!important;line-height:var(--tw-leading,var(--text-sm--line-height))!important}.text-xl{font-size:var(--text-xl)!important;line-height:var(--tw-leading,var(--text-xl--line-height))!important}.text-xs{font-size:var(--text-xs)!important;line-height:var(--tw-leading,var(--text-xs--line-height))!important}.text-\[1\.6rem\]{font-size:1.6rem!important}.leading-relaxed{--tw-leading:var(--leading-relaxed)!important;line-height:var(--leading-relaxed)!important}.font-bold{--tw-font-weight:var(--font-weight-bold)!important;font-weight:var(--font-weight-bold)!important}.font-medium{--tw-font-weight:var(--font-weight-medium)!important;font-weight:var(--font-weight-medium)!important}.font-semibold{--tw-font-weight:var(--font-weight-semibold)!important;font-weight:var(--font-weight-semibold)!important}.whitespace-pre-wrap{white-space:pre-wrap!important}.text-base-content\/60{color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.text-base-content\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)!important}}.text-error{color:var(--color-error)!important}.text-neutral-content{color:var(--color-neutral-content)!important}.text-warning{color:var(--color-warning)!important}.no-underline{text-decoration-line:none!important}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a)!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}@layer daisyui.l1{.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:""!important;--btn-bg:#0000!important;--btn-border:#0000!important;--btn-noise:none!important}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor)!important;outline-color:currentColor!important}@media (hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:""!important;--btn-bg:#0000!important;--btn-fg:var(--btn-color,currentColor)!important;--btn-border:#0000!important;--btn-noise:none!important;outline-color:currentColor!important}}}@layer base{:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}@property --radialprogress{syntax:"";inherits:true;initial-value:0%}:root:not(span){overflow:var(--page-overflow)}:root{background:var(--page-scroll-bg,var(--root-bg));--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset) ; else: unset)}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}:where(:root),:root:has(input.theme-controller[value=gniza]:checked),[data-theme=gniza]{color-scheme:light;--color-base-100:transparent;--color-base-200:oklch(97% 0 0);--color-base-300:oklch(89.8% 0 0);--color-base-content:oklch(30.9% .116 258.9);--color-primary:oklch(38.2% .145 259.4);--color-primary-content:oklch(100% 0 0);--color-secondary:oklch(69.5% .169 47.8);--color-secondary-content:oklch(100% 0 0);--color-accent:oklch(86.4% .177 90.8);--color-accent-content:oklch(30.9% .116 258.9);--color-neutral:oklch(30.9% .116 258.9);--color-neutral-content:oklch(100% 0 0);--color-info:oklch(69% .083 217.5);--color-info-content:oklch(100% 0 0);--color-success:oklch(65% .25 140);--color-success-content:oklch(100% 0 0);--color-warning:oklch(86.4% .177 90.8);--color-warning-content:oklch(30.9% .116 258.9);--color-error:oklch(57.7% .245 27.3);--color-error-content:oklch(100% 0 0);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@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-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";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:"";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:"";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}@keyframes pulse{50%{opacity:.5}} \ No newline at end of file diff --git a/whm/gniza-whm/assets/src/safelist.html b/whm/gniza-whm/assets/src/safelist.html index c3d4aa7..1d04e56 100644 --- a/whm/gniza-whm/assets/src/safelist.html +++ b/whm/gniza-whm/assets/src/safelist.html @@ -1,2 +1,2 @@ - + diff --git a/whm/gniza-whm/lib/GnizaWHM/Runner.pm b/whm/gniza-whm/lib/GnizaWHM/Runner.pm index 023d0a0..b4bb9dc 100644 --- a/whm/gniza-whm/lib/GnizaWHM/Runner.pm +++ b/whm/gniza-whm/lib/GnizaWHM/Runner.pm @@ -47,6 +47,8 @@ my %OPT_PATTERNS = ( timestamp => qr/^\d{4}-\d{2}-\d{2}T\d{6}$/, path => qr/^[a-zA-Z0-9_.\/@ -]+$/, account => qr/^[a-z][a-z0-9_-]*$/, + strategy => qr/^(merge|terminate)$/, + exclude => qr/^[a-zA-Z0-9_.,\/@ *?\[\]-]+$/, ); # _validate($cmd, $subcmd, \@args, \%opts) diff --git a/whm/gniza-whm/restore.cgi b/whm/gniza-whm/restore.cgi index aa41575..f3f4f5a 100644 --- a/whm/gniza-whm/restore.cgi +++ b/whm/gniza-whm/restore.cgi @@ -247,6 +247,44 @@ sub handle_step2 { print qq{ \n}; print qq{\n}; + # Restore strategy (visible only for Full Account mode) + print qq{
\n}; + print qq{ \n}; + print qq{
\n}; + print qq{ \n}; + print qq{ \n}; + print qq{
\n}; + print qq{
\n}; + + # Exclude paths (visible in both Full Account and Selective modes) + print qq{
\n}; + print qq{
\n}; + print qq{

Directories and Files to Exclude

\n}; + print qq{
\n}; + print qq{ \n}; + print qq{ \n}; + print qq{ \n}; + print qq{
\n}; + print qq{

Exclude files and directories from restoration

\n}; + print qq{
\n}; + print qq{ \n}; + print qq{
\n}; + print qq{
\n}; + + # Exclude modal + print qq{\n}; + print qq{\n}; + print qq{\n}; + print qq{\n}; + # Hidden field that always carries account type when Full is selected print qq{\n}; @@ -414,6 +452,7 @@ function gnizaModeChanged() { var mode = document.querySelector('input[name="restore_mode"]:checked').value; var selective = mode === 'selective'; document.getElementById('selective-panel').hidden = !selective; + document.getElementById('strategy-panel').hidden = selective; document.getElementById('type_account_hidden').disabled = selective; if (selective) { gnizaTypesChanged(); @@ -601,6 +640,61 @@ function gnizaPopulatePreview(containerId, options, type) { } } +function gnizaAddExclude() { + var input = document.getElementById('exclude-input'); + var val = input.value.trim(); + if (!val) return; + gnizaAddExcludeTag(val); + input.value = ''; + gnizaUpdateExcludeField(); +} + +function gnizaAddExcludeTag(text) { + var container = document.getElementById('exclude-tags'); + // Skip duplicates + var existing = container.querySelectorAll('.badge span'); + for (var i = 0; i < existing.length; i++) { + if (existing[i].textContent === text) return; + } + var badge = document.createElement('span'); + badge.className = 'badge badge-warning gap-1'; + var span = document.createElement('span'); + span.textContent = text; + badge.appendChild(span); + var btn = document.createElement('button'); + btn.type = 'button'; + btn.className = 'btn btn-xs btn-ghost btn-circle'; + btn.innerHTML = '\\u2715'; + btn.onclick = function() { badge.remove(); gnizaUpdateExcludeField(); }; + badge.appendChild(btn); + container.appendChild(badge); +} + +function gnizaUpdateExcludeField() { + var tags = document.getElementById('exclude-tags').querySelectorAll('.badge span'); + var vals = []; + for (var i = 0; i < tags.length; i++) { + vals.push(tags[i].textContent); + } + document.getElementById('exclude_paths').value = vals.join(','); +} + +function gnizaOpenExcludeModal() { + document.getElementById('exclude-textarea').value = ''; + document.getElementById('exclude-modal').showModal(); +} + +function gnizaExcludeModalOk() { + var text = document.getElementById('exclude-textarea').value; + var lines = text.split('\\n'); + for (var i = 0; i < lines.length; i++) { + var line = lines[i].trim(); + if (line) gnizaAddExcludeTag(line); + } + gnizaUpdateExcludeField(); + document.getElementById('exclude-modal').close(); +} + gnizaModeChanged(); function gnizaOpenFileBrowser() { @@ -765,7 +859,9 @@ sub handle_step3 { my $dbuser_names = $form->{'dbuser_names'} // ''; my $emails = $form->{'emails'} // ''; my $domain_names = $form->{'domain_names'} // ''; - my $ssl_names = $form->{'ssl_names'} // ''; + my $ssl_names = $form->{'ssl_names'} // ''; + my $strategy = $form->{'strategy'} // ''; + my $exclude_paths = $form->{'exclude_paths'} // ''; # Collect selected types from type_* checkboxes my @all_type_keys = qw(account files database mailbox cron dbusers cpconfig domains ssl); @@ -801,6 +897,12 @@ sub handle_step3 { print qq{Snapshot$esc_timestamp\n}; print qq{Restore Types$types_display\n}; + if (grep { $_ eq 'account' } @selected_types) { + my %strategy_labels = (merge => 'Overwrite (merge)', terminate => 'Terminate & re-create'); + my $strategy_display = GnizaWHM::UI::esc($strategy_labels{$strategy} // $strategy); + print qq{Strategy$strategy_display\n}; + } + # Show sub-field details for applicable types if (grep { $_ eq 'files' } @selected_types) { my $path_display = $path ne '' ? GnizaWHM::UI::esc($path) : 'All files'; @@ -827,6 +929,12 @@ sub handle_step3 { print qq{SSL$ssl_display\n}; } + if ($exclude_paths ne '') { + my $exclude_display = GnizaWHM::UI::esc($exclude_paths); + $exclude_display =~ s/,/, /g; + print qq{Exclude$exclude_display\n}; + } + print qq{\n}; print qq{\n\n}; @@ -844,6 +952,8 @@ sub handle_step3 { print qq{\n}; print qq{\n}; print qq{\n}; + print qq{\n}; + print qq{\n}; print GnizaWHM::UI::csrf_hidden_field(); print qq{
\n}; @@ -874,7 +984,9 @@ sub handle_step4 { my $dbuser_names = $form->{'dbuser_names'} // ''; my $emails = $form->{'emails'} // ''; my $domain_names = $form->{'domain_names'} // ''; - my $ssl_names = $form->{'ssl_names'} // ''; + my $ssl_names = $form->{'ssl_names'} // ''; + my $strategy = $form->{'strategy'} // ''; + my $exclude_paths = $form->{'exclude_paths'} // ''; # Collect selected types my @all_type_keys = qw(account files database mailbox cron dbusers cpconfig domains ssl); @@ -895,11 +1007,14 @@ sub handle_step4 { for my $type (@selected_types) { my %opts = (remote => $remote); $opts{timestamp} = $timestamp if $timestamp ne ''; + $opts{strategy} = $strategy if $strategy ne '' && $type eq 'account'; if ($SIMPLE_TYPES{$type}) { + $opts{exclude} = $exclude_paths if $exclude_paths ne '' && $type eq 'account'; push @commands, ['restore', $type, [$account], {%opts}]; } elsif ($type eq 'files') { $opts{path} = $path if $path ne ''; + $opts{exclude} = $exclude_paths if $exclude_paths ne ''; push @commands, ['restore', 'files', [$account], {%opts}]; } elsif ($type eq 'database') { my @dbs;