*,
:before,
:after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246/.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style:
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246/.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style:
}
*,
:before,
:after {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb
}
:before,
:after {
  --tw-content: ""
}
html,
:host {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  font-family: var(--font-sans);
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent
}
body {
  margin: 0;
  line-height: inherit
}
hr {
  height: 0;
  color: inherit;
  border-top-width: 1px
}
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit
}
a {
  color: inherit;
  text-decoration: inherit
}
b,
strong {
  font-weight: bolder
}
code,
kbd,
samp,
pre {
  font-family: var(--font-mono);
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-size: 1em
}
small {
  font-size: 80%
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline
}
sub {
  bottom: -.25em
}
sup {
  top: -.5em
}
table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0
}
button,
select {
  text-transform: none
}
button,
input:where([type=button]),
input:where([type=reset]),
input:where([type=submit]) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none
}
:-moz-focusring {
  outline: auto
}
:-moz-ui-invalid {
  box-shadow: none
}
progress {
  vertical-align: baseline
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}
::-webkit-search-decoration {
  -webkit-appearance: none
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}
summary {
  display: list-item
}
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0
}
fieldset {
  margin: 0;
  padding: 0
}
legend {
  padding: 0
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0
}
dialog {
  padding: 0
}
textarea {
  resize: vertical
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af
}
button,
[role=button] {
  cursor: pointer
}
:disabled {
  cursor: default
}
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  vertical-align: middle
}
img,
video {
  max-width: 100%;
  height: auto
}
[hidden]:where(:not([hidden=until-found])) {
  display: none
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,
  0,
  0,
  0);
  white-space: nowrap;
  border-width: 0
}
.pointer-events-none {
  pointer-events: none
}
.pointer-events-auto {
  pointer-events: auto
}
.visible {
  visibility: visible
}
.invisible {
  visibility: hidden
}
.fixed {
  position: fixed
}
.absolute {
  position: absolute
}
.relative {
  position: relative
}
.inset-0 {
  inset: 0
}
.inset-x-0 {
  left: 0;
  right: 0
}
.inset-y-0 {
  top: 0;
  bottom: 0
}
.-bottom-12 {
  bottom: -3rem
}
.-left-12 {
  left: -3rem
}
.-right-12 {
  right: -3rem
}
.-top-12 {
  top: -3rem
}
.bottom-0 {
  bottom: 0
}
.left-0 {
  left: 0
}
.left-1 {
  left: .25rem
}
.left-1\/2 {
  left: 50%
}
.left-2 {
  left: .5rem
}
.left-\[50\%\] {
  left: 50%
}
.right-0 {
  right: 0
}
.right-1 {
  right: .25rem
}
.right-2 {
  right: .5rem
}
.right-3 {
  right: .75rem
}
.right-4 {
  right: 1rem
}
.top-0 {
  top: 0
}
.top-1\.5 {
  top: .375rem
}
.top-1\/2 {
  top: 50%
}
.top-2 {
  top: .5rem
}
.top-3\.5 {
  top: .875rem
}
.top-4 {
  top: 1rem
}
.top-\[1px\] {
  top: 1px
}
.top-\[50\%\] {
  top: 50%
}
.top-\[60\%\] {
  top: 60%
}
.top-full {
  top: 100%
}
.z-10 {
  z-index: 10
}
.z-20 {
  z-index: 20
}
.z-50 {
  z-index: 50
}
.z-\[100\] {
  z-index: 100
}
.z-\[1\] {
  z-index: 1
}
.-mx-1 {
  margin-left: -.25rem;
  margin-right: -.25rem
}
.mx-2 {
  margin-left: .5rem;
  margin-right: .5rem
}
.mx-3\.5 {
  margin-left: .875rem;
  margin-right: .875rem
}
.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem
}
.mx-auto {
  margin-left: auto;
  margin-right: auto
}
.my-0\.5 {
  margin-top: .125rem;
  margin-bottom: .125rem
}
.my-1 {
  margin-top: .25rem;
  margin-bottom: .25rem
}
.-ml-4 {
  margin-left: -1rem
}
.-mt-4 {
  margin-top: -1rem
}
.mb-1 {
  margin-bottom: .25rem
}
.mb-4 {
  margin-bottom: 1rem
}
.ml-1 {
  margin-left: .25rem
}
.ml-auto {
  margin-left: auto
}
.mr-2 {
  margin-right: .5rem
}
.mt-1\.5 {
  margin-top: .375rem
}
.mt-2 {
  margin-top: .5rem
}
.mt-24 {
  margin-top: 6rem
}
.mt-4 {
  margin-top: 1rem
}
.mt-auto {
  margin-top: auto
}
.block {
  display: block
}
.flex {
  display: flex
}
.inline-flex {
  display: inline-flex
}
.table {
  display: table
}
.grid {
  display: grid
}
.hidden {
  display: none
}
.aspect-square {
  aspect-ratio: 1/1
}
.aspect-video {
  aspect-ratio: 16/9
}
.size-4 {
  width: 1rem;
  height: 1rem
}
.h-1\.5 {
  height: .375rem
}
.h-10 {
  height: 2.5rem
}
.h-11 {
  height: 2.75rem
}
.h-12 {
  height: 3rem
}
.h-2 {
  height: .5rem
}
.h-2\.5 {
  height: .625rem
}
.h-3 {
  height: .75rem
}
.h-3\.5 {
  height: .875rem
}
.h-4 {
  height: 1rem
}
.h-5 {
  height: 1.25rem
}
.h-6 {
  height: 1.5rem
}
.h-7 {
  height: 1.75rem
}
.h-8 {
  height: 2rem
}
.h-9 {
  height: 2.25rem
}
.h-\[1px\] {
  height: 1px
}
.h-\[var\(--radix-navigation-menu-viewport-height\)\] {
  height: var(--radix-navigation-menu-viewport-height)
}
.h-\[var\(--radix-select-trigger-height\)\] {
  height: var(--radix-select-trigger-height)
}
.h-auto {
  height: auto
}
.h-full {
  height: 100%
}
.h-px {
  height: 1px
}
.h-svh {
  height: 100svh
}
.max-h-\[--radix-context-menu-content-available-height\] {
  max-height: var(--radix-context-menu-content-available-height)
}
.max-h-\[--radix-select-content-available-height\] {
  max-height: var(--radix-select-content-available-height)
}
.max-h-\[300px\] {
  max-height: 300px
}
.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\] {
  max-height: var(--radix-dropdown-menu-content-available-height)
}
.max-h-screen {
  max-height: 100vh
}
.min-h-0 {
  min-height: 0px
}
.min-h-10 {
  min-height: 2.5rem
}
.min-h-8 {
  min-height: 2rem
}
.min-h-9 {
  min-height: 2.25rem
}
.min-h-\[80px\] {
  min-height: 80px
}
.min-h-screen {
  min-height: 100vh
}
.min-h-svh {
  min-height: 100svh
}
.w-0 {
  width: 0px
}
.w-1 {
  width: .25rem
}
.w-10 {
  width: 2.5rem
}
.w-11 {
  width: 2.75rem
}
.w-2 {
  width: .5rem
}
.w-2\.5 {
  width: .625rem
}
.w-3 {
  width: .75rem
}
.w-3\.5 {
  width: .875rem
}
.w-3\/4 {
  width: 75%
}
.w-4 {
  width: 1rem
}
.w-5 {
  width: 1.25rem
}
.w-64 {
  width: 16rem
}
.w-7 {
  width: 1.75rem
}
.w-72 {
  width: 18rem
}
.w-8 {
  width: 2rem
}
.w-9 {
  width: 2.25rem
}
.w-\[100px\] {
  width: 100px
}
.w-\[1px\] {
  width: 1px
}
.w-\[var\(--sidebar-width\)\] {
  width: var(--sidebar-width)
}
.w-auto {
  width: auto
}
.w-full {
  width: 100%
}
.w-max {
  width: -moz-max-content;
  width: max-content
}
.w-px {
  width: 1px
}
.min-w-0 {
  min-width: 0px
}
.min-w-10 {
  min-width: 2.5rem
}
.min-w-11 {
  min-width: 2.75rem
}
.min-w-5 {
  min-width: 1.25rem
}
.min-w-9 {
  min-width: 2.25rem
}
.min-w-\[12rem\] {
  min-width: 12rem
}
.min-w-\[8rem\] {
  min-width: 8rem
}
.min-w-\[var\(--radix-select-trigger-width\)\] {
  min-width: var(--radix-select-trigger-width)
}
.max-w-\[var\(--skeleton-width\)\] {
  max-width: var(--skeleton-width)
}
.max-w-lg {
  max-width: 32rem
}
.max-w-max {
  max-width: -moz-max-content;
  max-width: max-content
}
.max-w-md {
  max-width: 28rem
}
.flex-1 {
  flex: 1 1 0%
}
.shrink-0 {
  flex-shrink: 0
}
.grow {
  flex-grow: 1
}
.grow-0 {
  flex-grow: 0
}
.basis-full {
  flex-basis: 100%
}
.caption-bottom {
  caption-side: bottom
}
.border-collapse {
  border-collapse: collapse
}
.origin-\[--radix-context-menu-content-transform-origin\] {
  transform-origin: var(--radix-context-menu-content-transform-origin)
}
.origin-\[--radix-dropdown-menu-content-transform-origin\] {
  transform-origin: var(--radix-dropdown-menu-content-transform-origin)
}
.origin-\[--radix-hover-card-content-transform-origin\] {
  transform-origin: var(--radix-hover-card-content-transform-origin)
}
.origin-\[--radix-menubar-content-transform-origin\] {
  transform-origin: var(--radix-menubar-content-transform-origin)
}
.origin-\[--radix-popover-content-transform-origin\] {
  transform-origin: var(--radix-popover-content-transform-origin)
}
.origin-\[--radix-select-content-transform-origin\] {
  transform-origin: var(--radix-select-content-transform-origin)
}
.origin-\[--radix-tooltip-content-transform-origin\] {
  transform-origin: var(--radix-tooltip-content-transform-origin)
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.-translate-x-px {
  --tw-translate-x: -1px;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.translate-x-\[-50\%\] {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.translate-x-px {
  --tw-translate-x: 1px;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.translate-y-\[-50\%\] {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.rotate-45 {
  --tw-rotate: 45deg;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.transform {
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
@keyframes pulse {
  50% {
    opacity: .5
  }

}
.animate-pulse {
  animation: pulse 2s cubic-bezier(.4,
  0,
  .6,
  1) infinite
}
.cursor-default {
  cursor: default
}
.cursor-pointer {
  cursor: pointer
}
.touch-none {
  touch-action: none
}
.select-none {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none
}
.list-none {
  list-style-type: none
}
.flex-row {
  flex-direction: row
}
.flex-col {
  flex-direction: column
}
.flex-col-reverse {
  flex-direction: column-reverse
}
.flex-wrap {
  flex-wrap: wrap
}
.items-start {
  align-items: flex-start
}
.items-end {
  align-items: flex-end
}
.items-center {
  align-items: center
}
.items-stretch {
  align-items: stretch
}
.justify-center {
  justify-content: center
}
.justify-between {
  justify-content: space-between
}
.gap-1 {
  gap: .25rem
}
.gap-1\.5 {
  gap: .375rem
}
.gap-2 {
  gap: .5rem
}
.gap-4 {
  gap: 1rem
}
.space-x-1>:not([hidden])~:not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(.25rem*var(--tw-space-x-reverse));
  margin-left: calc(.25rem*calc(1 - var(--tw-space-x-reverse)))
}
.space-x-4>:not([hidden])~:not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem*var(--tw-space-x-reverse));
  margin-left: calc(1rem*calc(1 - var(--tw-space-x-reverse)))
}
.space-y-1>:not([hidden])~:not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(.25rem*calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(.25rem*var(--tw-space-y-reverse))
}
.space-y-1\.5>:not([hidden])~:not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(.375rem*calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(.375rem*var(--tw-space-y-reverse))
}
.space-y-2>:not([hidden])~:not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(.5rem*calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(.5rem*var(--tw-space-y-reverse))
}
.space-y-4>:not([hidden])~:not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem*calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem*var(--tw-space-y-reverse))
}
.overflow-auto {
  overflow: auto
}
.overflow-hidden {
  overflow: hidden
}
.overflow-y-auto {
  overflow-y: auto
}
.overflow-x-hidden {
  overflow-x: hidden
}
.whitespace-nowrap {
  white-space: nowrap
}
.break-words {
  overflow-wrap: break-word
}
.rounded-\[2px\] {
  border-radius: 2px
}
.rounded-\[inherit\] {
  border-radius: inherit
}
.rounded-full {
  border-radius: 9999px
}
.rounded-lg {
  border-radius: .5625rem
}
.rounded-md {
  border-radius: .375rem
}
.rounded-sm {
  border-radius: .1875rem
}
.rounded-xl {
  border-radius: .75rem
}
.rounded-t-\[10px\] {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px
}
.rounded-tl-sm {
  border-top-left-radius: .1875rem
}
.border {
  border-width: 1px
}
.border-2 {
  border-width: 2px
}
.border-\[1\.5px\] {
  border-width: 1.5px
}
.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px
}
.border-b {
  border-bottom-width: 1px
}
.border-l {
  border-left-width: 1px
}
.border-r {
  border-right-width: 1px
}
.border-t {
  border-top-width: 1px
}
.border-dashed {
  border-style: dashed
}
.border-\[--color-border\] {
  border-color: var(--color-border)
}
.border-border\/50 {
  border-color: hsl(var(--border)/.5)
}
.border-card-border {
  --tw-border-opacity: 1;
  border-color: hsl(var(--card-border)/var(--tw-border-opacity,
   1))
}
.border-destructive {
  --tw-border-opacity: 1;
  border-color: hsl(var(--destructive)/var(--tw-border-opacity,
   1))
}
.border-destructive-border {
  border-color: var(--destructive-border)
}
.border-destructive\/50 {
  border-color: hsl(var(--destructive)/.5)
}
.border-input {
  --tw-border-opacity: 1;
  border-color: hsl(var(--input)/var(--tw-border-opacity,
   1))
}
.border-primary {
  --tw-border-opacity: 1;
  border-color: hsl(var(--primary)/var(--tw-border-opacity,
   1))
}
.border-primary-border {
  border-color: var(--primary-border)
}
.border-secondary-border {
  border-color: var(--secondary-border)
}
.border-sidebar-border {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sidebar-border)/var(--tw-border-opacity,
   1))
}
.border-transparent {
  border-color: transparent
}
.border-l-transparent {
  border-left-color: transparent
}
.border-t-transparent {
  border-top-color: transparent
}
.bg-\[--color-bg\] {
  background-color: var(--color-bg)
}
.bg-accent {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--accent)/var(--tw-bg-opacity,
   1))
}
.bg-background {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--background)/var(--tw-bg-opacity,
   1))
}
.bg-black\/80 {
  background-color: #000c
}
.bg-border {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--border)/var(--tw-bg-opacity,
   1))
}
.bg-card {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--card)/var(--tw-bg-opacity,
   1))
}
.bg-destructive {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--destructive)/var(--tw-bg-opacity,
   1))
}
.bg-foreground {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--foreground)/var(--tw-bg-opacity,
   1))
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251/var(--tw-bg-opacity,
   1))
}
.bg-muted {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--muted)/var(--tw-bg-opacity,
   1))
}
.bg-muted\/50 {
  background-color: hsl(var(--muted)/.5)
}
.bg-popover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--popover)/var(--tw-bg-opacity,
   1))
}
.bg-primary {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--primary)/var(--tw-bg-opacity,
   1))
}
.bg-secondary {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--secondary)/var(--tw-bg-opacity,
   1))
}
.bg-sidebar {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sidebar)/var(--tw-bg-opacity,
   1))
}
.bg-sidebar-border {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sidebar-border)/var(--tw-bg-opacity,
   1))
}
.bg-transparent {
  background-color: transparent
}
.fill-current {
  fill: currentColor
}
.p-0 {
  padding: 0
}
.p-1 {
  padding: .25rem
}
.p-2 {
  padding: .5rem
}
.p-3 {
  padding: .75rem
}
.p-4 {
  padding: 1rem
}
.p-6 {
  padding: 1.5rem
}
.p-\[1px\] {
  padding: 1px
}
.px-1 {
  padding-left: .25rem;
  padding-right: .25rem
}
.px-2 {
  padding-left: .5rem;
  padding-right: .5rem
}
.px-2\.5 {
  padding-left: .625rem;
  padding-right: .625rem
}
.px-3 {
  padding-left: .75rem;
  padding-right: .75rem
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem
}
.py-0\.5 {
  padding-top: .125rem;
  padding-bottom: .125rem
}
.py-1 {
  padding-top: .25rem;
  padding-bottom: .25rem
}
.py-1\.5 {
  padding-top: .375rem;
  padding-bottom: .375rem
}
.py-2 {
  padding-top: .5rem;
  padding-bottom: .5rem
}
.py-3 {
  padding-top: .75rem;
  padding-bottom: .75rem
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem
}
.pb-3 {
  padding-bottom: .75rem
}
.pb-4 {
  padding-bottom: 1rem
}
.pl-2\.5 {
  padding-left: .625rem
}
.pl-4 {
  padding-left: 1rem
}
.pl-8 {
  padding-left: 2rem
}
.pr-2 {
  padding-right: .5rem
}
.pr-2\.5 {
  padding-right: .625rem
}
.pr-8 {
  padding-right: 2rem
}
.pt-0 {
  padding-top: 0
}
.pt-1 {
  padding-top: .25rem
}
.pt-3 {
  padding-top: .75rem
}
.pt-4 {
  padding-top: 1rem
}
.pt-6 {
  padding-top: 1.5rem
}
.text-left {
  text-align: left
}
.text-center {
  text-align: center
}
.align-middle {
  vertical-align: middle
}
.font-mono {
  font-family: var(--font-mono)
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem
}
.text-\[0\.8rem\] {
  font-size: .8rem
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem
}
.text-sm {
  font-size: .875rem;
  line-height: 1.25rem
}
.text-xs {
  font-size: .75rem;
  line-height: 1rem
}
.font-bold {
  font-weight: 700
}
.font-medium {
  font-weight: 500
}
.font-normal {
  font-weight: 400
}
.font-semibold {
  font-weight: 600
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)
}
.leading-none {
  line-height: 1
}
.tracking-tight {
  letter-spacing: -.025em
}
.tracking-widest {
  letter-spacing: .1em
}
.text-accent-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--accent-foreground)/var(--tw-text-opacity,
   1))
}
.text-card-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--card-foreground)/var(--tw-text-opacity,
   1))
}
.text-current {
  color: currentColor
}
.text-destructive {
  --tw-text-opacity: 1;
  color: hsl(var(--destructive)/var(--tw-text-opacity,
   1))
}
.text-destructive-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--destructive-foreground)/var(--tw-text-opacity,
   1))
}
.text-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--foreground)/var(--tw-text-opacity,
   1))
}
.text-foreground\/50 {
  color: hsl(var(--foreground)/.5)
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99/var(--tw-text-opacity,
   1))
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39/var(--tw-text-opacity,
   1))
}
.text-muted-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--muted-foreground)/var(--tw-text-opacity,
   1))
}
.text-popover-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--popover-foreground)/var(--tw-text-opacity,
   1))
}
.text-primary {
  --tw-text-opacity: 1;
  color: hsl(var(--primary)/var(--tw-text-opacity,
   1))
}
.text-primary-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--primary-foreground)/var(--tw-text-opacity,
   1))
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68/var(--tw-text-opacity,
   1))
}
.text-secondary-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--secondary-foreground)/var(--tw-text-opacity,
   1))
}
.text-sidebar-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sidebar-foreground)/var(--tw-text-opacity,
   1))
}
.text-sidebar-foreground\/70 {
  color: hsl(var(--sidebar-foreground)/.7)
}
.opacity-0 {
  opacity: 0
}
.opacity-50 {
  opacity: .5
}
.opacity-60 {
  opacity: .6
}
.opacity-70 {
  opacity: .7
}
.opacity-90 {
  opacity: .9
}
.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\] {
  --tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0/.1),
   0 4px 6px -4px rgb(0 0 0/.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color),
   0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0/.1),
   0 2px 4px -2px rgb(0 0 0/.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
   0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0/.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0/.1),
   0 8px 10px -6px rgb(0 0 0/.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color),
   0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow,
   0 0 #0000),
  var(--tw-ring-shadow,
   0 0 #0000),
  var(--tw-shadow)
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px
}
.outline {
  outline-style: solid
}
.outline-2 {
  outline-width: 2px
}
.outline-offset-2 {
  outline-offset: 2px
}
.outline-transparent {
  outline-color: transparent
}
.ring-0 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px+var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow),
  var(--tw-ring-shadow),
  var(--tw-shadow,
   0 0 #0000)
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px+var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow),
  var(--tw-ring-shadow),
  var(--tw-shadow,
   0 0 #0000)
}
.ring-ring {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--ring)/var(--tw-ring-opacity,
   1))
}
.ring-sidebar-ring {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--sidebar-ring)/var(--tw-ring-opacity,
   1))
}
.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background)/1)
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)
}
.transition {
  transition-property: color,
  background-color,
  border-color,
  text-decoration-color,
  fill,
  stroke,
  opacity,
  box-shadow,
  transform,
  filter,
  backdrop-filter;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-\[left\,
right\,
width\] {
  transition-property: left,
  right,
  width;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-\[margin\,
opacity\] {
  transition-property: margin,
  opacity;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-\[width\,
height\,
padding\] {
  transition-property: width,
  height,
  padding;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-\[width\] {
  transition-property: width;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-colors {
  transition-property: color,
  background-color,
  border-color,
  text-decoration-color,
  fill,
  stroke;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1);
  transition-duration: .15s
}
.duration-1000 {
  transition-duration: 1s
}
.duration-200 {
  transition-duration: .2s
}
.ease-in-out {
  transition-timing-function: cubic-bezier(.4,
  0,
  .2,
  1)
}
.ease-linear {
  transition-timing-function: linear
}
@keyframes enter {
  0% {
    opacity: var(--tw-enter-opacity,
     1);
    transform: translate3d(var(--tw-enter-translate-x,
     0),
    var(--tw-enter-translate-y,
     0),
    0) scale3d(var(--tw-enter-scale,
     1),
    var(--tw-enter-scale,
     1),
    var(--tw-enter-scale,
     1)) rotate(var(--tw-enter-rotate,
     0))
  }

}
@keyframes exit {
  to {
    opacity: var(--tw-exit-opacity,
     1);
    transform: translate3d(var(--tw-exit-translate-x,
     0),
    var(--tw-exit-translate-y,
     0),
    0) scale3d(var(--tw-exit-scale,
     1),
    var(--tw-exit-scale,
     1),
    var(--tw-exit-scale,
     1)) rotate(var(--tw-exit-rotate,
     0))
  }

}
.animate-in {
  animation-name: enter;
  animation-duration: .15s;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial
}
.fade-in-0 {
  --tw-enter-opacity: 0
}
.fade-in-80 {
  --tw-enter-opacity: .8
}
.zoom-in-95 {
  --tw-enter-scale: .95
}
.duration-1000 {
  animation-duration: 1s
}
.duration-200 {
  animation-duration: .2s
}
.ease-in-out {
  animation-timing-function: cubic-bezier(.4,
  0,
  .2,
  1)
}
.ease-linear {
  animation-timing-function: linear
}
.\[border-color\:var\(--badge-outline\)\] {
  border-color: var(--badge-outline)
}
.\[border-color\:var\(--button-outline\)\] {
  border-color: var(--button-outline)
}
:root,
[data-theme=light] {
  --color-bg: #f4f3ef;
  --color-surface: #f8f7f4;
  --color-surface-2: #fafaf8;
  --color-surface-offset: #eeede9;
  --color-surface-offset-2: #e8e6e1;
  --color-surface-dynamic: #dfddd8;
  --color-divider: #d6d4ce;
  --color-border: #cbc9c3;
  --color-text: #1a1917;
  --color-text-muted: #6b6966;
  --color-text-faint: #b0aea9;
  --color-text-inverse: #f8f7f4;
  --color-primary: #4f46e5;
  --color-primary-hover: #4338ca;
  --color-primary-active: #3730a3;
  --color-primary-highlight: #e0e7ff;
  --color-success: #16a34a;
  --color-success-highlight: #dcfce7;
  --color-error: #dc2626;
  --color-error-highlight: #fee2e2;
  --color-orange: #ea580c;
  --color-orange-highlight: #ffedd5;
  --color-blue: #2563eb;
  --color-blue-highlight: #dbeafe;
  --color-hint-target: #4f46e5;
  --color-hint-target-bg: #eef2ff;
  --color-hint-highlight-bg: #fefce8;
  --color-hint-elim-bg: #fff1f2;
  --font-display: "Cabinet Grotesk",
  "General Sans",
   sans-serif;
  --font-body: "General Sans",
   system-ui,
   sans-serif;
  --text-xs: clamp(.75rem,
   .7rem+.25vw,
   .875rem);
  --text-sm: clamp(.8125rem,
   .75rem+.3vw,
   .9375rem);
  --text-base: clamp(.9375rem,
   .875rem+.25vw,
   1.0625rem);
  --text-lg: clamp(1.0625rem,
   .95rem+.6vw,
   1.375rem);
  --text-xl: clamp(1.375rem,
   1.1rem+1.2vw,
   2rem);
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --radius-sm: .375rem;
  --radius-md: .625rem;
  --radius-lg: 1rem;
  --radius-xl: 1.25rem;
  --shadow-sm: 0 1px 3px rgba(0,
  0,
  0,
  .07),
   0 1px 2px rgba(0,
  0,
  0,
  .05);
  --shadow-md: 0 4px 12px rgba(0,
  0,
  0,
  .08),
   0 2px 4px rgba(0,
  0,
  0,
  .05);
  --shadow-lg: 0 12px 32px rgba(0,
  0,
  0,
  .1),
   0 4px 8px rgba(0,
  0,
  0,
  .05);
  --transition: .16s cubic-bezier(.16,
   1,
   .3,
   1);
  --transition-slow: .28s cubic-bezier(.16,
   1,
   .3,
   1);
  --cell-size: clamp(38px,
   6.5vw,
   58px)
}
@media(prefers-color-scheme:dark) {
  :root:not([data-theme=light]) {
    --color-bg: #121110;
    --color-surface: #17161a;
    --color-surface-2: #1c1b1f;
    --color-surface-offset: #1e1d21;
    --color-surface-offset-2: #252328;
    --color-surface-dynamic: #2d2b31;
    --color-divider: #2a2830;
    --color-border: #38363e;
    --color-text: #e8e6ec;
    --color-text-muted: #8b8892;
    --color-text-faint: #504e57;
    --color-text-inverse: #1a1917;
    --color-primary: #818cf8;
    --color-primary-hover: #a5b4fc;
    --color-primary-active: #c7d2fe;
    --color-primary-highlight: #1e1d3a;
    --color-success: #4ade80;
    --color-success-highlight: #052e16;
    --color-error: #f87171;
    --color-error-highlight: #2d0a0a;
    --color-orange: #fb923c;
    --color-orange-highlight: #2c1000;
    --color-blue: #60a5fa;
    --color-blue-highlight: #0d1e3d;
    --color-hint-target: #818cf8;
    --color-hint-target-bg: #1e1d3a;
    --color-hint-highlight-bg: #2a2400;
    --color-hint-elim-bg: #2d0a0a;
    --shadow-sm: 0 1px 3px rgba(0,
    0,
    0,
    .25);
    --shadow-md: 0 4px 12px rgba(0,
    0,
    0,
    .35);
    --shadow-lg: 0 12px 32px rgba(0,
    0,
    0,
    .45)
  }

}
[data-theme=dark] {
  --color-bg: #121110;
  --color-surface: #17161a;
  --color-surface-2: #1c1b1f;
  --color-surface-offset: #1e1d21;
  --color-surface-offset-2: #252328;
  --color-surface-dynamic: #2d2b31;
  --color-divider: #2a2830;
  --color-border: #38363e;
  --color-text: #e8e6ec;
  --color-text-muted: #8b8892;
  --color-text-faint: #504e57;
  --color-text-inverse: #1a1917;
  --color-primary: #818cf8;
  --color-primary-hover: #a5b4fc;
  --color-primary-active: #c7d2fe;
  --color-primary-highlight: #1e1d3a;
  --color-success: #4ade80;
  --color-success-highlight: #052e16;
  --color-error: #f87171;
  --color-error-highlight: #2d0a0a;
  --color-orange: #fb923c;
  --color-orange-highlight: #2c1000;
  --color-blue: #60a5fa;
  --color-blue-highlight: #0d1e3d;
  --color-hint-target: #818cf8;
  --color-hint-target-bg: #1e1d3a;
  --color-hint-highlight-bg: #2a2400;
  --color-hint-elim-bg: #2d0a0a;
  --shadow-sm: 0 1px 3px rgba(0,
  0,
  0,
  .25);
  --shadow-md: 0 4px 12px rgba(0,
  0,
  0,
  .35);
  --shadow-lg: 0 12px 32px rgba(0,
  0,
  0,
  .45)
}
*,
*:before,
*:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}
html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility
}
body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-bg);
  min-height: 100dvh;
  line-height: 1.55
}
button {
  cursor: pointer;
  background: none;
  border: none;
  font: inherit;
  color: inherit;
  transition: all var(--transition)
}
input {
  font: inherit;
  color: inherit
}
.app-root {
  display: flex;
  flex-direction: column;
  min-height: 100dvh
}
.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-3) var(--space-6);
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-divider);
  position: sticky;
  top: 0;
  z-index: 50;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px)
}
.header-left {
  display: flex;
  align-items: center;
  gap: var(--space-3)
}
.logo {
  width: 28px;
  height: 28px;
  color: var(--color-primary);
  flex-shrink: 0
}
.app-title {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--color-text)
}
.header-right {
  display: flex;
  align-items: center;
  gap: var(--space-2)
}
.icon-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-muted);
  border: 1px solid transparent
}
.icon-btn:hover {
  background: var(--color-surface-offset);
  color: var(--color-text);
  border-color: var(--color-border)
}
.app-main {
  flex: 1;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-8);
  padding: var(--space-6);
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
  align-items: start
}
@media(max-width:768px) {
  .app-main {
    grid-template-columns: 1fr;
    gap: var(--space-5);
    padding: var(--space-4)
  }

}
.left-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: center
}
.controls-bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
  justify-content: space-between
}
.difficulty-selector {
  display: flex;
  background: var(--color-surface-offset);
  border-radius: var(--radius-md);
  padding: 3px;
  gap: 2px;
  border: 1px solid var(--color-border)
}
.diff-btn {
  padding: var(--space-1) var(--space-4);
  border-radius: calc(var(--radius-md) - 2px);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text-muted)
}
.diff-btn.active {
  background: var(--color-surface-2);
  color: var(--color-text);
  font-weight: 600;
  box-shadow: var(--shadow-sm)
}
.diff-btn:hover:not(.active) {
  color: var(--color-text)
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 600;
  transition: all var(--transition);
  border: 1px solid transparent
}
.btn:disabled {
  opacity: .6;
  cursor: not-allowed
}
.btn-primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary)
}
.btn-primary:hover:not(:disabled) {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px color-mix(in srgb,
  var(--color-primary) 30%,
  transparent)
}
.btn-primary:active:not(:disabled) {
  transform: translateY(0)
}
.btn-hint {
  background: var(--color-surface);
  border: 1.5px solid var(--color-primary);
  color: var(--color-primary);
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-md);
  font-weight: 600;
  position: relative
}
.btn-hint:hover {
  background: var(--color-primary-highlight);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px color-mix(in srgb,
  var(--color-primary) 20%,
  transparent)
}
.hint-badge {
  background: var(--color-primary);
  color: #fff;
  border-radius: 100px;
  font-size: .65rem;
  font-weight: 700;
  padding: 1px 6px;
  position: absolute;
  top: -6px;
  right: -6px
}
.toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-md);
  font-size: var(--text-xs);
  font-weight: 500;
  color: var(--color-text-muted);
  border: 1px solid var(--color-border);
  background: var(--color-surface)
}
.toggle-btn.active {
  color: var(--color-primary);
  border-color: var(--color-primary);
  background: var(--color-primary-highlight)
}
.toggle-btn:hover:not(.active) {
  background: var(--color-surface-offset);
  color: var(--color-text)
}
.hint-controls {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  flex-wrap: wrap
}
.generate-btn {
  white-space: nowrap
}
.spinner {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,
  255,
  255,
  .3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .6s linear infinite;
  display: inline-block
}
@keyframes spin {
  to {
    transform: rotate(360deg)
  }

}
.sudoku-wrapper {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden
}
.sudoku-grid {
  display: grid;
  grid-template-columns: repeat(9,
  var(--cell-size));
  grid-template-rows: repeat(9,
  var(--cell-size));
  border: 2.5px solid var(--color-text);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--color-surface)
}
.sudoku-cell {
  width: var(--cell-size);
  height: var(--cell-size);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  transition: background var(--transition);
  border: .5px solid var(--color-border);
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none
}
.sudoku-cell:nth-child(3n):not(:nth-child(9n)) {
  border-right: 2px solid var(--color-text)
}
.sudoku-cell:nth-child(n+19):nth-child(-n+27),
.sudoku-cell:nth-child(n+46):nth-child(-n+54) {
  border-bottom: 2px solid var(--color-text)
}
.sudoku-cell.box-even {
  background: var(--color-surface)
}
.sudoku-cell.box-odd {
  background: var(--color-surface-offset)
}
.sudoku-cell.state-given .cell-value {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--color-text);
  font-size: calc(var(--cell-size)*.45)
}
.sudoku-cell.state-filled .cell-value {
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--color-primary);
  font-size: calc(var(--cell-size)*.45)
}
.sudoku-cell.state-error .cell-value {
  color: var(--color-error);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: calc(var(--cell-size)*.45)
}
.sudoku-cell.selected {
  background: var(--color-primary-highlight)!important;
  z-index: 2
}
.sudoku-cell.sel-highlight {
  background: color-mix(in srgb,
  var(--color-primary-highlight) 40%,
  var(--color-surface))!important
}
.sudoku-cell.same-digit {
  background: color-mix(in srgb,
  var(--color-primary-highlight) 70%,
  var(--color-surface))!important
}
.sudoku-cell.hint-target {
  background: var(--color-hint-target-bg)!important;
  box-shadow: inset 0 0 0 2px var(--color-hint-target);
  z-index: 3;
  animation: pulse-target 1.5s ease-in-out infinite
}
@keyframes pulse-target {
  0%,
  to {
    box-shadow: inset 0 0 0 2px var(--color-hint-target)
  }
  50% {
    box-shadow: inset 0 0 0 2px var(--color-hint-target),
    0 0 12px color-mix(in srgb,
    var(--color-hint-target) 35%,
    transparent)
  }

}
.sudoku-cell.hint-highlight {
  background: var(--color-hint-highlight-bg)!important;
  box-shadow: inset 0 0 0 1.5px color-mix(in srgb,
  var(--color-orange) 60%,
  transparent)
}
.sudoku-cell.hint-elim {
  background: var(--color-hint-elim-bg)!important;
  box-shadow: inset 0 0 0 1.5px color-mix(in srgb,
  var(--color-error) 50%,
  transparent)
}
.cell-value {
  line-height: 1;
  transition: color var(--transition)
}
.candidates-grid {
  display: grid;
  grid-template-columns: repeat(3,
  1fr);
  grid-template-rows: repeat(3,
  1fr);
  width: 100%;
  height: 100%;
  padding: 2px;
  gap: 0
}
.candidate {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: max(8px,
  calc(var(--cell-size)*.22));
  color: var(--color-text-muted);
  font-weight: 500;
  line-height: 1;
  transition: color var(--transition)
}
.candidate.elim-candidate {
  color: var(--color-error);
  text-decoration: line-through
}
.candidate.hint-candidate {
  color: var(--color-primary);
  font-weight: 700
}
.grid-placeholder {
  width: calc(var(--cell-size)*9+5px);
  height: calc(var(--cell-size)*9+5px);
  border: 2.5px dashed var(--color-border);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--color-surface)
}
.placeholder-inner {
  text-align: center;
  color: var(--color-text-muted);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-6);
  font-size: var(--text-sm)
}
.complete-overlay {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb,
  var(--color-bg) 92%,
  transparent);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  border-radius: var(--radius-lg);
  animation: fadeIn .4s ease-out
}
@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: scale(.96)
  }
  to {
    opacity: 1;
    transform: scale(1)
  }

}
.complete-content {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-8)
}
.complete-content svg {
  color: var(--color-success)
}
.complete-content h2 {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 800;
  color: var(--color-text)
}
.complete-content p {
  color: var(--color-text-muted);
  font-size: var(--text-sm)
}
.numpad {
  display: grid;
  grid-template-columns: repeat(10,
  1fr);
  gap: var(--space-1);
  width: 100%;
  max-width: calc(var(--cell-size)*9+5px);
  animation: slideUp .2s ease-out
}
@keyframes slideUp {
  0% {
    opacity: 0;
    transform: translateY(8px)
  }
  to {
    opacity: 1;
    transform: translateY(0)
  }

}
.numpad-btn {
  aspect-ratio: 1;
  border-radius: var(--radius-sm);
  font-size: var(--text-sm);
  font-weight: 700;
  font-family: var(--font-display);
  color: var(--color-text);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  transition: all var(--transition)
}
.numpad-btn:hover {
  background: var(--color-primary-highlight);
  border-color: var(--color-primary);
  color: var(--color-primary);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm)
}
.numpad-btn:active {
  transform: translateY(0)
}
.numpad-clear {
  color: var(--color-error);
  font-size: var(--text-xs);
  font-weight: 700
}
.numpad-clear:hover {
  background: var(--color-error-highlight);
  border-color: var(--color-error);
  color: var(--color-error)
}
.right-col {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  max-width: 380px;
  width: 100%
}
@media(max-width:768px) {
  .right-col {
    max-width: 100%
  }

}
.hint-panel {
  background: var(--color-surface);
  border-radius: var(--radius-xl);
  border: 1.5px solid var(--color-border);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  animation: slideDown .3s cubic-bezier(.16,
  1,
  .3,
  1)
}
@keyframes slideDown {
  0% {
    opacity: 0;
    transform: translateY(-12px)
  }
  to {
    opacity: 1;
    transform: translateY(0)
  }

}
.hint-panel.level-basic {
  border-color: color-mix(in srgb,
  var(--color-success) 40%,
  var(--color-border))
}
.hint-panel.level-intermediate {
  border-color: color-mix(in srgb,
  var(--color-blue) 40%,
  var(--color-border))
}
.hint-panel.level-advanced {
  border-color: color-mix(in srgb,
  var(--color-orange) 40%,
  var(--color-border))
}
.hint-panel.level-expert {
  border-color: color-mix(in srgb,
  var(--color-error) 40%,
  var(--color-border))
}
.hint-header {
  padding: var(--space-4) var(--space-5) var(--space-3);
  border-bottom: 1px solid var(--color-divider)
}
.hint-title-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-2)
}
.level-badge {
  color: #fff;
  font-size: var(--text-xs);
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 100px;
  letter-spacing: .03em;
  text-transform: uppercase
}
.hint-technique {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -.02em
}
.hint-description {
  font-size: var(--text-sm);
  color: var(--color-primary);
  font-weight: 600;
  font-family: Courier New,
  monospace
}
.hint-body {
  padding: var(--space-4) var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-3)
}
.hint-explanation {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.65
}
.hint-action {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  background: var(--color-primary-highlight);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-primary)
}
.hint-digit {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--color-primary)
}
.elim-action {
  background: var(--color-error-highlight);
  color: var(--color-error)
}
.hint-legend {
  display: flex;
  gap: var(--space-4);
  padding: var(--space-2) var(--space-5) var(--space-3);
  flex-wrap: wrap
}
.legend-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-text-muted)
}
.legend-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0
}
.target-dot {
  background: var(--color-primary)
}
.cause-dot {
  background: var(--color-orange)
}
.elim-dot {
  background: var(--color-error)
}
.hint-buttons {
  display: flex;
  border-top: 1px solid var(--color-divider)
}
.hint-buttons .dismiss-btn {
  flex: 1;
  width: auto;
  border-top: 0
}
.apply-next-btn {
  flex: 1;
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--color-text-inverse);
  text-align: center;
  transition: all var(--transition);
  background: var(--color-primary);
  border-right: 1px solid var(--color-divider)
}
.apply-next-btn:hover {
  background: var(--color-primary-hover)
}
.dismiss-btn {
  display: block;
  width: 100%;
  padding: var(--space-2) var(--space-4);
  border-top: 1px solid var(--color-divider);
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-text-faint);
  text-align: center;
  transition: all var(--transition);
  background: transparent
}
.dismiss-btn:hover {
  color: var(--color-text-muted);
  background: var(--color-surface-offset)
}
.hint-empty {
  background: var(--color-surface);
  border: 1.5px dashed var(--color-border);
  border-radius: var(--radius-xl);
  padding: var(--space-8) var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  text-align: center
}
.hint-empty-icon {
  color: var(--color-text-faint)
}
.hint-empty-title {
  font-family: var(--font-display);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--color-text)
}
.hint-empty-text {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  max-width: 280px;
  line-height: 1.6
}
.technique-ref {
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm)
}
.ref-title {
  font-size: var(--text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--color-text-faint);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-divider)
}
.technique-list {
  display: flex;
  flex-direction: column
}
.ref-item {
  padding: var(--space-2) var(--space-4);
  display: flex;
  flex-direction: column;
  gap: 2px;
  border-bottom: 1px solid var(--color-divider);
  transition: background var(--transition)
}
.ref-item:last-child {
  border-bottom: none
}
.ref-item.active-ref {
  background: var(--color-surface-offset)
}
.ref-item-header {
  display: flex;
  align-items: center;
  gap: var(--space-2)
}
.ref-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0
}
.ref-name {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text)
}
.ref-desc {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  padding-left: calc(7px+var(--space-2))
}
.hint-history {
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm)
}
.history-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  width: 100%;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text-muted);
  text-align: left
}
.history-toggle:hover {
  color: var(--color-text);
  background: var(--color-surface-offset)
}
.history-list {
  border-top: 1px solid var(--color-divider)
}
.history-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-2) var(--space-4);
  border-bottom: 1px solid var(--color-divider);
  cursor: pointer;
  transition: background var(--transition)
}
.history-item:last-child {
  border-bottom: none
}
.history-item:hover {
  background: var(--color-surface-offset)
}
.history-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-top: 5px;
  flex-shrink: 0
}
.history-technique {
  display: block;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text)
}
.history-desc {
  display: block;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  font-family: Courier New,
  monospace
}
.file\:border-0::file-selector-button {
  border-width: 0px
}
.file\:bg-transparent::file-selector-button {
  background-color: transparent
}
.file\:text-sm::file-selector-button {
  font-size: .875rem;
  line-height: 1.25rem
}
.file\:font-medium::file-selector-button {
  font-weight: 500
}
.file\:text-foreground::file-selector-button {
  --tw-text-opacity: 1;
  color: hsl(var(--foreground)/var(--tw-text-opacity,
   1))
}
.placeholder\:text-muted-foreground::-moz-placeholder {
  --tw-text-opacity: 1;
  color: hsl(var(--muted-foreground)/var(--tw-text-opacity,
   1))
}
.placeholder\:text-muted-foreground::placeholder {
  --tw-text-opacity: 1;
  color: hsl(var(--muted-foreground)/var(--tw-text-opacity,
   1))
}
.after\:pointer-events-none:after {
  content: var(--tw-content);
  pointer-events: none
}
.after\:absolute:after {
  content: var(--tw-content);
  position: absolute
}
.after\:-inset-2:after {
  content: var(--tw-content);
  inset: -.5rem
}
.after\:inset-0:after {
  content: var(--tw-content);
  inset: 0
}
.after\:inset-y-0:after {
  content: var(--tw-content);
  top: 0;
  bottom: 0
}
.after\:left-1\/2:after {
  content: var(--tw-content);
  left: 50%
}
.after\:block:after {
  content: var(--tw-content);
  display: block
}
.after\:w-1:after {
  content: var(--tw-content);
  width: .25rem
}
.after\:w-\[2px\]:after {
  content: var(--tw-content);
  width: 2px
}
.after\:-translate-x-1\/2:after {
  content: var(--tw-content);
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x),
  var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
}
.after\:rounded-full:after {
  content: var(--tw-content);
  border-radius: 9999px
}
.after\:border:after {
  content: var(--tw-content);
  border-width: 1px
}
.after\:border-black\/10:after {
  content: var(--tw-content);
  border-color: #0000001a
}
.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.first\:rounded-l-md:first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:bg-accent:hover{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{--tw-bg-opacity: 1;background-color:hsl(var(--muted) / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary:hover{--tw-bg-opacity: 1;background-color:hsl(var(--primary) / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:hsl(var(--secondary) / var(--tw-bg-opacity, 1))}.hover\:bg-sidebar-accent:hover{--tw-bg-opacity: 1;background-color:hsl(var(--sidebar-accent) / var(--tw-bg-opacity, 1))}.hover\:text-accent-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--accent-foreground) / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--foreground) / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.hover\:text-primary-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--primary-foreground) / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);--tw-bg-opacity: 1;background-color:hsl(var(--sidebar-border) / var(--tw-bg-opacity, 1))}.focus\:bg-accent:focus{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.focus\:bg-primary:focus{--tw-bg-opacity: 1;background-color:hsl(var(--primary) / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{--tw-text-opacity: 1;color:hsl(var(--accent-foreground) / var(--tw-text-opacity, 1))}.focus\:text-primary-foreground:focus{--tw-text-opacity: 1;color:hsl(var(--primary-foreground) / var(--tw-text-opacity, 1))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity: 1;--tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: hsl(var(--ring) / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background) / 1)}.active\:bg-sidebar-accent:active{--tw-bg-opacity: 1;background-color:hsl(var(--sidebar-accent) / var(--tw-bg-opacity, 1))}.active\:text-sidebar-accent-foreground:active{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.active\:shadow-none:active{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{--tw-bg-opacity: 1;background-color:hsl(var(--destructive) / var(--tw-bg-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{--tw-text-opacity: 1;color:hsl(var(--destructive-foreground) / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-opacity: 1;--tw-ring-color: hsl(var(--destructive) / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{--tw-text-opacity: 1;color:hsl(var(--accent-foreground) / var(--tw-text-opacity, 1))}.aria-selected\:text-muted-foreground[aria-selected=true]{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{--tw-bg-opacity: 1;background-color:hsl(var(--sidebar-accent) / var(--tw-bg-opacity, 1))}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.data-\[state\=active\]\:bg-background[data-state=active]{--tw-bg-opacity: 1;background-color:hsl(var(--background) / var(--tw-bg-opacity, 1))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{--tw-bg-opacity: 1;background-color:hsl(var(--primary) / var(--tw-bg-opacity, 1))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{--tw-bg-opacity: 1;background-color:hsl(var(--secondary) / var(--tw-bg-opacity, 1))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{--tw-bg-opacity: 1;background-color:hsl(var(--muted) / var(--tw-bg-opacity, 1))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{--tw-bg-opacity: 1;background-color:hsl(var(--input) / var(--tw-bg-opacity, 1))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{--tw-text-opacity: 1;color:hsl(var(--accent-foreground) / var(--tw-text-opacity, 1))}.data-\[state\=active\]\:text-foreground[data-state=active]{--tw-text-opacity: 1;color:hsl(var(--foreground) / var(--tw-text-opacity, 1))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{--tw-text-opacity: 1;color:hsl(var(--primary-foreground) / var(--tw-text-opacity, 1))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{--tw-text-opacity: 1;color:hsl(var(--accent-foreground) / var(--tw-text-opacity, 1))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{--tw-bg-opacity: 1;background-color:hsl(var(--sidebar-accent) / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+var\(--spacing-4\)\)\]{width:calc(var(--sidebar-width-icon) + var(--spacing-4))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+var\(--spacing-4\)\+2px\)\]{width:calc(var(--sidebar-width-icon) + var(--spacing-4) + 2px)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[var\(--sidebar-width-icon\)\]{width:var(--sidebar-width-icon)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:.5625rem}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{--tw-border-opacity: 1;border-color:hsl(var(--sidebar-border) / var(--tw-border-opacity, 1))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{--tw-bg-opacity: 1;background-color:hsl(var(--sidebar) / var(--tw-bg-opacity, 1))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.dark\:border-destructive:is(.dark *){--tw-border-opacity: 1;border-color:hsl(var(--destructive) / var(--tw-border-opacity, 1))}.dark\:after\:border-white\/10:is(.dark *):after{content:var(--tw-content);border-color:#ffffff1a}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:.5625rem}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){--tw-bg-opacity: 1;background-color:hsl(var(--accent) / var(--tw-bg-opacity, 1))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:h-4>svg{height:1rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:w-4>svg{width:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{--tw-text-opacity: 1;color:hsl(var(--destructive) / var(--tw-text-opacity, 1))}.\[\&\>svg\]\:text-foreground>svg{--tw-text-opacity: 1;color:hsl(var(--foreground) / var(--tw-text-opacity, 1))}.\[\&\>svg\]\:text-muted-foreground>svg{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{--tw-text-opacity: 1;color:hsl(var(--sidebar-accent-foreground) / var(--tw-text-opacity, 1))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground) / 1)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border) / 1)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border) / 1)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted) / 1)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border) / 1)}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{--tw-text-opacity: 1;color:hsl(var(--muted-foreground) / var(--tw-text-opacity, 1))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}
