*, ::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 / 0.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 / 0.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:  ;
}

button {
  background-color: transparent;
}

.tw-pointer-events-none {
  pointer-events: none;
}

.tw-fixed {
  position: fixed;
}

.tw-absolute {
  position: absolute;
}

.tw-relative {
  position: relative;
}

.tw-sticky {
  position: sticky;
}

.tw-inset-0 {
  inset: 0px;
}

.tw-inset-x-0 {
  left: 0px;
  right: 0px;
}

.tw-inset-y-0 {
  top: 0px;
  bottom: 0px;
}

.tw-bottom-0 {
  bottom: 0px;
}

.tw-bottom-5 {
  bottom: 1.25rem;
}

.tw-left-0 {
  left: 0px;
}

.tw-right-0 {
  right: 0px;
}

.tw-right-2 {
  right: 0.5rem;
}

.tw-right-5 {
  right: 1.25rem;
}

.tw-top-0 {
  top: 0px;
}

.tw-top-2 {
  top: 0.5rem;
}

.tw-top-full {
  top: 100%;
}

.tw-z-10 {
  z-index: 10;
}

.tw-z-20 {
  z-index: 20;
}

.tw-z-50 {
  z-index: 50;
}

.tw-z-\[1000\] {
  z-index: 1000;
}

.tw-z-\[998\] {
  z-index: 998;
}

.tw-z-\[999\] {
  z-index: 999;
}

.tw-m-2 {
  margin: 0.5rem;
}

.tw-mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.tw-mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.tw-mb-1\.5 {
  margin-bottom: 0.375rem;
}

.tw-mb-2 {
  margin-bottom: 0.5rem;
}

.tw-mb-3 {
  margin-bottom: 0.75rem;
}

.tw-mb-4 {
  margin-bottom: 1rem;
}

.tw-ml-1 {
  margin-left: 0.25rem;
}

.tw-mt-0\.5 {
  margin-top: 0.125rem;
}

.tw-mt-1 {
  margin-top: 0.25rem;
}

.tw-mt-1\.5 {
  margin-top: 0.375rem;
}

.tw-mt-2 {
  margin-top: 0.5rem;
}

.tw-mt-3 {
  margin-top: 0.75rem;
}

.tw-mt-4 {
  margin-top: 1rem;
}

.tw-line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tw-block {
  display: block;
}

.tw-flex {
  display: flex;
}

.tw-inline-flex {
  display: inline-flex;
}

.tw-grid {
  display: grid;
}

.tw-hidden {
  display: none;
}

.tw-aspect-square {
  aspect-ratio: 1 / 1;
}

.tw-h-1\.5 {
  height: 0.375rem;
}

.tw-h-10 {
  height: 2.5rem;
}

.tw-h-11 {
  height: 2.75rem;
}

.tw-h-14 {
  height: 3.5rem;
}

.tw-h-2 {
  height: 0.5rem;
}

.tw-h-3 {
  height: 0.75rem;
}

.tw-h-3\.5 {
  height: 0.875rem;
}

.tw-h-4 {
  height: 1rem;
}

.tw-h-5 {
  height: 1.25rem;
}

.tw-h-6 {
  height: 1.5rem;
}

.tw-h-7 {
  height: 1.75rem;
}

.tw-h-8 {
  height: 2rem;
}

.tw-h-9 {
  height: 2.25rem;
}

.tw-h-\[18px\] {
  height: 18px;
}

.tw-h-full {
  height: 100%;
}

.tw-h-px {
  height: 1px;
}

.tw-max-h-\[240px\] {
  max-height: 240px;
}

.tw-max-h-\[300px\] {
  max-height: 300px;
}

.tw-max-h-\[90vh\] {
  max-height: 90vh;
}

.tw-max-h-\[220px\] {
  max-height: 220px;
}

.tw-min-h-\[120px\] {
  min-height: 120px;
}

.tw-min-h-\[140px\] {
  min-height: 140px;
}

.tw-min-h-\[200px\] {
  min-height: 200px;
}

.tw-min-h-\[240px\] {
  min-height: 240px;
}

.tw-min-h-\[68px\] {
  min-height: 68px;
}

.tw-min-h-\[80px\] {
  min-height: 80px;
}

.tw-min-h-\[90px\] {
  min-height: 90px;
}

.tw-min-h-\[180px\] {
  min-height: 180px;
}

.tw-w-1\.5 {
  width: 0.375rem;
}

.tw-w-10 {
  width: 2.5rem;
}

.tw-w-11 {
  width: 2.75rem;
}

.tw-w-14 {
  width: 3.5rem;
}

.tw-w-2 {
  width: 0.5rem;
}

.tw-w-3 {
  width: 0.75rem;
}

.tw-w-3\.5 {
  width: 0.875rem;
}

.tw-w-4 {
  width: 1rem;
}

.tw-w-5 {
  width: 1.25rem;
}

.tw-w-6 {
  width: 1.5rem;
}

.tw-w-7 {
  width: 1.75rem;
}

.tw-w-8 {
  width: 2rem;
}

.tw-w-9 {
  width: 2.25rem;
}

.tw-w-\[18px\] {
  width: 18px;
}

.tw-w-\[400px\] {
  width: 400px;
}

.tw-w-\[min\(400px\,100vw\)\] {
  width: min(400px, 100vw);
}

.tw-w-auto {
  width: auto;
}

.tw-w-full {
  width: 100%;
}

.tw-w-px {
  width: 1px;
}

.tw-min-w-0 {
  min-width: 0px;
}

.tw-max-w-\[1320px\] {
  max-width: 1320px;
}

.tw-max-w-\[320px\] {
  max-width: 320px;
}

.tw-max-w-\[420px\] {
  max-width: 420px;
}

.tw-max-w-\[860px\] {
  max-width: 860px;
}

.tw-max-w-lg {
  max-width: 32rem;
}

.tw-flex-1 {
  flex: 1 1 0%;
}

.tw-shrink-0 {
  flex-shrink: 0;
}

.tw-translate-x-0 {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.tw-translate-x-5 {
  --tw-translate-x: 1.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.tw-translate-x-full {
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.tw-cursor-default {
  cursor: default;
}

.tw-cursor-pointer {
  cursor: pointer;
}

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

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

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

.tw-flex-col {
  flex-direction: column;
}

.tw-flex-wrap {
  flex-wrap: wrap;
}

.tw-items-start {
  align-items: flex-start;
}

.tw-items-center {
  align-items: center;
}

.tw-justify-end {
  justify-content: flex-end;
}

.tw-justify-center {
  justify-content: center;
}

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

.tw-gap-0\.5 {
  gap: 0.125rem;
}

.tw-gap-1 {
  gap: 0.25rem;
}

.tw-gap-1\.5 {
  gap: 0.375rem;
}

.tw-gap-2 {
  gap: 0.5rem;
}

.tw-gap-2\.5 {
  gap: 0.625rem;
}

.tw-gap-3 {
  gap: 0.75rem;
}

.tw-gap-4 {
  gap: 1rem;
}

.tw-space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.tw-space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.tw-space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}

.tw-space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

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

.tw-space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}

.tw-overflow-auto {
  overflow: auto;
}

.tw-overflow-hidden {
  overflow: hidden;
}

.tw-overflow-x-auto {
  overflow-x: auto;
}

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

.tw-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tw-whitespace-nowrap {
  white-space: nowrap;
}

.tw-rounded {
  border-radius: 0.25rem;
}

.tw-rounded-full {
  border-radius: 9999px;
}

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

.tw-rounded-md {
  border-radius: calc(var(--sb-radius) - 2px);
}

.tw-rounded-xl {
  border-radius: 0.75rem;
}

.tw-border {
  border-width: 1px;
}

.tw-border-2 {
  border-width: 2px;
}

.tw-border-b {
  border-bottom-width: 1px;
}

.tw-border-l {
  border-left-width: 1px;
}

.tw-border-r {
  border-right-width: 1px;
}

.tw-border-t {
  border-top-width: 1px;
}

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

.tw-border-border {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sb-border) / var(--tw-border-opacity, 1));
}

.tw-border-destructive\/40 {
  border-color: hsl(var(--sb-destructive) / 0.4);
}

.tw-border-emerald-500\/30 {
  border-color: rgb(16 185 129 / 0.3);
}

.tw-border-input {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sb-input) / var(--tw-border-opacity, 1));
}

.tw-border-primary {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sb-primary) / var(--tw-border-opacity, 1));
}

.tw-border-primary\/30 {
  border-color: hsl(var(--sb-primary) / 0.3);
}

.tw-border-transparent {
  border-color: transparent;
}

.tw-bg-background {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-background) / var(--tw-bg-opacity, 1));
}

.tw-bg-background\/90 {
  background-color: hsl(var(--sb-background) / 0.9);
}

.tw-bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}

.tw-bg-black\/45 {
  background-color: rgb(0 0 0 / 0.45);
}

.tw-bg-black\/50 {
  background-color: rgb(0 0 0 / 0.5);
}

.tw-bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}

.tw-bg-border {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-border) / var(--tw-bg-opacity, 1));
}

.tw-bg-card {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-card) / var(--tw-bg-opacity, 1));
}

.tw-bg-destructive {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-destructive) / var(--tw-bg-opacity, 1));
}

.tw-bg-destructive\/10 {
  background-color: hsl(var(--sb-destructive) / 0.1);
}

.tw-bg-destructive\/5 {
  background-color: hsl(var(--sb-destructive) / 0.05);
}

.tw-bg-emerald-500\/10 {
  background-color: rgb(16 185 129 / 0.1);
}

.tw-bg-foreground {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-foreground) / var(--tw-bg-opacity, 1));
}

.tw-bg-input {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-input) / var(--tw-bg-opacity, 1));
}

.tw-bg-muted {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-muted) / var(--tw-bg-opacity, 1));
}

.tw-bg-muted\/30 {
  background-color: hsl(var(--sb-muted) / 0.3);
}

.tw-bg-muted\/40 {
  background-color: hsl(var(--sb-muted) / 0.4);
}

.tw-bg-muted\/50 {
  background-color: hsl(var(--sb-muted) / 0.5);
}

.tw-bg-primary {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-primary) / var(--tw-bg-opacity, 1));
}

.tw-bg-primary-foreground {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-primary-foreground) / var(--tw-bg-opacity, 1));
}

.tw-bg-primary\/10 {
  background-color: hsl(var(--sb-primary) / 0.1);
}

.tw-bg-secondary {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-secondary) / var(--tw-bg-opacity, 1));
}

.tw-bg-sidebar {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-sidebar) / var(--tw-bg-opacity, 1));
}

.tw-bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.tw-object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}

.tw-object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.tw-p-1 {
  padding: 0.25rem;
}

.tw-p-1\.5 {
  padding: 0.375rem;
}

.tw-p-2 {
  padding: 0.5rem;
}

.tw-p-3 {
  padding: 0.75rem;
}

.tw-p-4 {
  padding: 1rem;
}

.tw-p-5 {
  padding: 1.25rem;
}

.tw-p-6 {
  padding: 1.5rem;
}

.tw-px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.tw-px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.tw-px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.tw-px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.tw-px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}

.tw-px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.tw-px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.tw-px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.tw-py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.tw-py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.tw-py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.tw-py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.tw-py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.tw-py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.tw-py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.tw-py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.tw-pb-1 {
  padding-bottom: 0.25rem;
}

.tw-pb-6 {
  padding-bottom: 1.5rem;
}

.tw-pl-0\.5 {
  padding-left: 0.125rem;
}

.tw-pl-3 {
  padding-left: 0.75rem;
}

.tw-pr-2 {
  padding-right: 0.5rem;
}

.tw-pt-4 {
  padding-top: 1rem;
}

.tw-pt-5 {
  padding-top: 1.25rem;
}

.tw-text-left {
  text-align: left;
}

.tw-text-center {
  text-align: center;
}

.tw-font-sans {
  font-family: "Noto Sans KR", "Noto sans kr 400", Nanumsquare, sans-serif;
}

.tw-text-\[11px\] {
  font-size: 11px;
}

.tw-text-\[13px\] {
  font-size: 13px;
}

.tw-text-\[15px\] {
  font-size: 15px;
}

.tw-text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.tw-text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.tw-text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.tw-text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.tw-font-medium {
  font-weight: 500;
}

.tw-font-normal {
  font-weight: 400;
}

.tw-font-semibold {
  font-weight: 600;
}

.tw-uppercase {
  text-transform: uppercase;
}

.tw-leading-relaxed {
  line-height: 1.625;
}

.tw-tracking-wide {
  letter-spacing: 0.025em;
}

.tw-text-background {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-background) / var(--tw-text-opacity, 1));
}

.tw-text-card-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-card-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-destructive {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-destructive) / var(--tw-text-opacity, 1));
}

.tw-text-destructive-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-destructive-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}

.tw-text-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-foreground\/70 {
  color: hsl(var(--sb-foreground) / 0.7);
}

.tw-text-muted-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-muted-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-muted-foreground\/70 {
  color: hsl(var(--sb-muted-foreground) / 0.7);
}

.tw-text-neutral-800 {
  --tw-text-opacity: 1;
  color: rgb(38 38 38 / var(--tw-text-opacity, 1));
}

.tw-text-primary {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-primary) / var(--tw-text-opacity, 1));
}

.tw-text-primary-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-primary-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-secondary-foreground {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-secondary-foreground) / var(--tw-text-opacity, 1));
}

.tw-text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.tw-opacity-0 {
  opacity: 0;
}

.tw-opacity-70 {
  opacity: 0.7;
}

.tw-shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -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);
}

.tw-shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.tw-shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 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);
}

.tw-shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 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);
}

.tw-shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 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);
}

.tw-ring-1 {
  --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);
}

.tw-ring-border {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--sb-border) / var(--tw-ring-opacity, 1));
}

.tw-backdrop-blur {
  --tw-backdrop-blur: blur(8px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.tw-backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.tw-transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.tw-transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.tw-transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.\[area-highlight\:send\] {
  area-highlight: send;
}

.\[block-preview\:send\] {
  block-preview: send;
}

/* Preflight를 껐으므로(웹플로우 공존) 버튼 네이티브 회색 배경(buttonface)만 최소 리셋.
   웹플로우 버튼은 클래스(.w-button 등)로 배경을 지정하므로 특이도상 영향 없음.
   tw-bg-* 유틸리티(utilities 레이어)가 이 base 규칙을 덮어씀. */

/* 다크 브리지: 아직 프리미티브로 마이그레이션 안 된 Webflow 클래스(제목/입력)를
   다크 모드에서 읽히게 함. 다크는 빌더에서만 활성 → 영향 범위 안전.
   언레이어드로 두어 Webflow 규칙(언레이어드)과 특이도로 경쟁해 이김. */

.dark .chat-h2,
.dark .chat-h2 ._2,
.dark .tab-text {
  color: hsl(var(--sb-foreground));
}

.dark .c-info-text-form,
.dark .w-input,
.dark input.w-input,
.dark textarea.w-input {
  color: hsl(var(--sb-foreground)) !important;
  background-color: hsl(var(--sb-background)) !important;
  border-color: hsl(var(--sb-input)) !important;
}

/* 챗 빌더 shadcn 스타일 디자인 토큰(라이트). HSL 삼중값으로 저장 → tailwind.config.cjs가 hsl()로 감쌈.
   primary는 기존 브랜드 인디고(#6372ff) 유지, 나머지는 shadcn 뉴트럴 팔레트. */

:root {
  /* background = 앱 캔버스(살짝 회색) / card = elevated 표면(흰색) → 카드·사이드바가 캔버스 위로 뜬다 */
  --sb-background: 220 20% 97%;
  --sb-foreground: 240 10% 3.9%;
  --sb-card: 0 0% 100%;
  --sb-card-foreground: 240 10% 3.9%;
  --sb-primary: 234 100% 69%;
  /* #6372ff */
  --sb-primary-foreground: 0 0% 100%;
  --sb-secondary: 240 4.8% 95.9%;
  --sb-secondary-foreground: 240 5.9% 10%;
  --sb-muted: 240 4.8% 95.9%;
  --sb-muted-foreground: 240 3.8% 46.1%;
  --sb-accent: 240 4.8% 95.9%;
  --sb-accent-foreground: 240 5.9% 10%;
  --sb-destructive: 351 100% 66%;
  /* #ff5470 계열(삭제) */
  --sb-destructive-foreground: 0 0% 100%;
  --sb-border: 240 5.9% 90%;
  --sb-input: 240 5.9% 90%;
  --sb-ring: 234 100% 69%;
  /* 사이드바/헤더(크롬) 표면: 라이트 흰색 / 다크 near-black(가장 어두움) */
  --sb-sidebar: 0 0% 100%;
  --sb-radius: 0.625rem;
}

/* 다크 모드 토큰 (.dark 클래스가 <html>에 붙으면 자동 적용) */

.dark {
  --sb-background: 240 10% 5%;
  --sb-foreground: 0 0% 96%;
  --sb-card: 240 6% 9%;
  --sb-card-foreground: 0 0% 96%;
  --sb-primary: 234 100% 71%;
  /* 다크 배경에서 살짝 밝게 */
  --sb-primary-foreground: 0 0% 100%;
  --sb-secondary: 240 4% 15%;
  --sb-secondary-foreground: 0 0% 96%;
  --sb-muted: 240 4% 15%;
  --sb-muted-foreground: 240 5% 64%;
  --sb-accent: 240 4% 17%;
  --sb-accent-foreground: 0 0% 96%;
  --sb-destructive: 351 90% 63%;
  --sb-destructive-foreground: 0 0% 100%;
  --sb-border: 240 4% 18%;
  --sb-input: 240 4% 20%;
  --sb-ring: 234 100% 71%;
  /* 다크: 사이드바/헤더는 가장 어두운 near-black (캔버스 5%보다 더 어둡게) */
  --sb-sidebar: 240 10% 3.5%;
}

.placeholder\:tw-text-muted-foreground::-moz-placeholder {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-muted-foreground) / var(--tw-text-opacity, 1));
}

.placeholder\:tw-text-muted-foreground::placeholder {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-muted-foreground) / var(--tw-text-opacity, 1));
}

.hover\:tw-border-border:hover {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sb-border) / var(--tw-border-opacity, 1));
}

.hover\:tw-border-primary:hover {
  --tw-border-opacity: 1;
  border-color: hsl(var(--sb-primary) / var(--tw-border-opacity, 1));
}

.hover\:tw-bg-accent:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-accent) / var(--tw-bg-opacity, 1));
}

.hover\:tw-bg-black\/60:hover {
  background-color: rgb(0 0 0 / 0.6);
}

.hover\:tw-bg-destructive\/10:hover {
  background-color: hsl(var(--sb-destructive) / 0.1);
}

.hover\:tw-bg-destructive\/90:hover {
  background-color: hsl(var(--sb-destructive) / 0.9);
}

.hover\:tw-bg-muted:hover {
  --tw-bg-opacity: 1;
  background-color: hsl(var(--sb-muted) / var(--tw-bg-opacity, 1));
}

.hover\:tw-bg-primary\/5:hover {
  background-color: hsl(var(--sb-primary) / 0.05);
}

.hover\:tw-bg-primary\/90:hover {
  background-color: hsl(var(--sb-primary) / 0.9);
}

.hover\:tw-bg-secondary\/80:hover {
  background-color: hsl(var(--sb-secondary) / 0.8);
}

.hover\:tw-text-accent-foreground:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-accent-foreground) / var(--tw-text-opacity, 1));
}

.hover\:tw-text-destructive:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-destructive) / var(--tw-text-opacity, 1));
}

.hover\:tw-text-foreground:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-foreground) / var(--tw-text-opacity, 1));
}

.hover\:tw-text-primary:hover {
  --tw-text-opacity: 1;
  color: hsl(var(--sb-primary) / var(--tw-text-opacity, 1));
}

.hover\:tw-underline:hover {
  text-decoration-line: underline;
}

.focus-visible\:tw-outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:tw-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\:tw-ring-ring:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: hsl(var(--sb-ring) / var(--tw-ring-opacity, 1));
}

.disabled\:tw-pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:tw-cursor-default:disabled {
  cursor: default;
}

.disabled\:tw-opacity-50:disabled {
  opacity: 0.5;
}

.tw-group:hover .group-hover\:tw-opacity-100 {
  opacity: 1;
}

.dark\:tw-text-emerald-400:is(.tw-dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .sm\:tw-block {
    display: block;
  }

  .sm\:tw-gap-3 {
    gap: 0.75rem;
  }

  .sm\:tw-text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 768px) {
  .md\:tw-flex {
    display: flex;
  }

  .md\:tw-hidden {
    display: none;
  }
}

@media (min-width: 1024px) {
  .lg\:tw-m-3 {
    margin: 0.75rem;
  }

  .lg\:tw-block {
    display: block;
  }

  .lg\:tw-inline {
    display: inline;
  }

  .lg\:tw-w-\[220px\] {
    width: 220px;
  }

  .lg\:tw-justify-start {
    justify-content: flex-start;
  }

  .lg\:tw-justify-between {
    justify-content: space-between;
  }

  .lg\:tw-px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
}
