@import url('https://fonts.googleapis.com/css2?family=Archivo:wdth,wght@100..125,400..900&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;700;900&display=swap');
*, ::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:  ;
}
/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: var(--font-sans); /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

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

/*
Remove the default font size and weight for headings.
*/

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

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

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

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: var(--font-mono); /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

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

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

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

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

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

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

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;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

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

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

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

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  :root { --background:160 8% 94%;--foreground:200 11% 9%;--card:120 7% 98%;--card-foreground:200 11% 9%;--popover:120 7% 98%;--popover-foreground:200 11% 9%;--primary:334 100% 42%;--primary-foreground:120 7% 98%;--secondary:190 100% 31%;--secondary-foreground:120 7% 98%;--muted:160 5% 90%;--muted-foreground:165 4% 44%;--accent:42 100% 42%;--accent-foreground:200 11% 9%;--destructive:11 75% 40%;--destructive-foreground:120 7% 98%;--border:160 6% 84%;--input:160 6% 84%;--ring:334 100% 42%;--radius:2px;--font-sans:"IBM Plex Sans","Noto Sans SC",sans-serif;--font-mono:"IBM Plex Mono",monospace;--font-serif:"Noto Sans SC",sans-serif;--shadow-2xs:none;--shadow-xs:none;--shadow-sm:none;--shadow:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:none;--shadow-2xl:none; }
  .dark { --background:200 11% 9%;--foreground:120 7% 98%;--card:195 8% 13%;--card-foreground:120 7% 98%;--popover:195 8% 13%;--popover-foreground:120 7% 98%;--primary:334 100% 50%;--primary-foreground:120 7% 98%;--secondary:190 100% 40%;--secondary-foreground:120 7% 98%;--muted:195 7% 20%;--muted-foreground:160 5% 70%;--accent:42 100% 50%;--accent-foreground:200 11% 9%;--destructive:11 75% 55%;--destructive-foreground:120 7% 98%;--border:195 6% 30%;--input:195 6% 30%;--ring:334 100% 50%; }
  *{
  border-color: hsl(var(--border)); box-sizing:border-box;
}
  html { scroll-behavior:smooth; }
  body{
  margin: 0px;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground)); font-family:var(--font-sans);font-variant-numeric:tabular-nums;
}
  button,input,textarea { font:inherit; }
  button { cursor:pointer; }
  input,textarea { caret-color:hsl(var(--primary)); }
  button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible { outline:2px solid hsl(var(--primary));outline-offset:2px; }
  #root { width:100%; }
.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;
}
.visible{
  visibility: visible;
}
.invisible{
  visibility: hidden;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.sticky{
  position: sticky;
}
.inset-0{
  inset: 0px;
}
.inset-x-0{
  left: 0px;
  right: 0px;
}
.inset-x-1{
  left: 0.25rem;
  right: 0.25rem;
}
.inset-y-0{
  top: 0px;
  bottom: 0px;
}
.-bottom-12{
  bottom: -3rem;
}
.-left-12{
  left: -3rem;
}
.-right-12{
  right: -3rem;
}
.-top-12{
  top: -3rem;
}
.bottom-0{
  bottom: 0px;
}
.bottom-1{
  bottom: 0.25rem;
}
.left-0{
  left: 0px;
}
.left-1{
  left: 0.25rem;
}
.left-1\/2{
  left: 50%;
}
.left-2{
  left: 0.5rem;
}
.left-\[50\%\]{
  left: 50%;
}
.right-0{
  right: 0px;
}
.right-1{
  right: 0.25rem;
}
.right-2{
  right: 0.5rem;
}
.right-4{
  right: 1rem;
}
.top-0{
  top: 0px;
}
.top-1{
  top: 0.25rem;
}
.top-1\/2{
  top: 50%;
}
.top-2{
  top: 0.5rem;
}
.top-4{
  top: 1rem;
}
.top-\[1px\]{
  top: 1px;
}
.top-\[50\%\]{
  top: 50%;
}
.top-\[60\%\]{
  top: 60%;
}
.top-full{
  top: 100%;
}
.isolate{
  isolation: isolate;
}
.z-10{
  z-index: 10;
}
.z-50{
  z-index: 50;
}
.z-\[1\]{
  z-index: 1;
}
.col-start-2{
  grid-column-start: 2;
}
.m-auto{
  margin: auto;
}
.-mx-1{
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}
.mx-1{
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.my-1{
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}
.-ml-4{
  margin-left: -1rem;
}
.-mt-4{
  margin-top: -1rem;
}
.mb-1\.5{
  margin-bottom: 0.375rem;
}
.mb-2{
  margin-bottom: 0.5rem;
}
.mb-3{
  margin-bottom: 0.75rem;
}
.mb-4{
  margin-bottom: 1rem;
}
.mb-6{
  margin-bottom: 1.5rem;
}
.mb-8{
  margin-bottom: 2rem;
}
.ml-1{
  margin-left: 0.25rem;
}
.ml-auto{
  margin-left: auto;
}
.mr-1{
  margin-right: 0.25rem;
}
.mr-2{
  margin-right: 0.5rem;
}
.mt-0{
  margin-top: 0px;
}
.mt-0\.5{
  margin-top: 0.125rem;
}
.mt-1{
  margin-top: 0.25rem;
}
.mt-1\.5{
  margin-top: 0.375rem;
}
.mt-10{
  margin-top: 2.5rem;
}
.mt-16{
  margin-top: 4rem;
}
.mt-2{
  margin-top: 0.5rem;
}
.mt-3{
  margin-top: 0.75rem;
}
.mt-4{
  margin-top: 1rem;
}
.mt-5{
  margin-top: 1.25rem;
}
.mt-6{
  margin-top: 1.5rem;
}
.mt-8{
  margin-top: 2rem;
}
.mt-auto{
  margin-top: auto;
}
.line-clamp-1{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.line-clamp-3{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.block{
  display: block;
}
.inline-block{
  display: inline-block;
}
.inline{
  display: inline;
}
.flex{
  display: flex;
}
.inline-flex{
  display: inline-flex;
}
.table{
  display: table;
}
.table-row{
  display: table-row;
}
.grid{
  display: grid;
}
.inline-grid{
  display: inline-grid;
}
.hidden{
  display: none;
}
.aspect-\[3\/4\]{
  aspect-ratio: 3/4;
}
.aspect-\[4\/3\]{
  aspect-ratio: 4/3;
}
.aspect-square{
  aspect-ratio: 1 / 1;
}
.size-10{
  width: 2.5rem;
  height: 2.5rem;
}
.size-12{
  width: 3rem;
  height: 3rem;
}
.size-14{
  width: 3.5rem;
  height: 3.5rem;
}
.size-2{
  width: 0.5rem;
  height: 0.5rem;
}
.size-2\.5{
  width: 0.625rem;
  height: 0.625rem;
}
.size-24{
  width: 6rem;
  height: 6rem;
}
.size-3{
  width: 0.75rem;
  height: 0.75rem;
}
.size-3\.5{
  width: 0.875rem;
  height: 0.875rem;
}
.size-4{
  width: 1rem;
  height: 1rem;
}
.size-5{
  width: 1.25rem;
  height: 1.25rem;
}
.size-6{
  width: 1.5rem;
  height: 1.5rem;
}
.size-7{
  width: 1.75rem;
  height: 1.75rem;
}
.size-8{
  width: 2rem;
  height: 2rem;
}
.size-9{
  width: 2.25rem;
  height: 2.25rem;
}
.size-full{
  width: 100%;
  height: 100%;
}
.h-1\.5{
  height: 0.375rem;
}
.h-10{
  height: 2.5rem;
}
.h-11{
  height: 2.75rem;
}
.h-12{
  height: 3rem;
}
.h-16{
  height: 4rem;
}
.h-2{
  height: 0.5rem;
}
.h-2\.5{
  height: 0.625rem;
}
.h-24{
  height: 6rem;
}
.h-28{
  height: 7rem;
}
.h-3\.5{
  height: 0.875rem;
}
.h-4{
  height: 1rem;
}
.h-40{
  height: 10rem;
}
.h-56{
  height: 14rem;
}
.h-7{
  height: 1.75rem;
}
.h-8{
  height: 2rem;
}
.h-9{
  height: 2.25rem;
}
.h-96{
  height: 24rem;
}
.h-\[1\.15rem\]{
  height: 1.15rem;
}
.h-\[60px\]{
  height: 60px;
}
.h-\[var\(--cell-size\)\]{
  height: var(--cell-size);
}
.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;
}
.max-h-40{
  max-height: 10rem;
}
.max-h-\[--radix-select-content-available-height\]{
  max-height: var(--radix-select-content-available-height);
}
.max-h-\[300px\]{
  max-height: 300px;
}
.max-h-\[52vh\]{
  max-height: 52vh;
}
.max-h-\[54vh\]{
  max-height: 54vh;
}
.max-h-\[58vh\]{
  max-height: 58vh;
}
.max-h-\[var\(--radix-context-menu-content-available-height\)\]{
  max-height: var(--radix-context-menu-content-available-height);
}
.max-h-full{
  max-height: 100%;
}
.min-h-16{
  min-height: 4rem;
}
.min-h-4{
  min-height: 1rem;
}
.min-h-\[160px\]{
  min-height: 160px;
}
.min-h-\[50vh\]{
  min-height: 50vh;
}
.min-h-\[60vh\]{
  min-height: 60vh;
}
.min-h-\[calc\(100vh-60px\)\]{
  min-height: calc(100vh - 60px);
}
.min-h-screen{
  min-height: 100vh;
}
.w-10{
  width: 2.5rem;
}
.w-12{
  width: 3rem;
}
.w-2{
  width: 0.5rem;
}
.w-2\.5{
  width: 0.625rem;
}
.w-24{
  width: 6rem;
}
.w-28{
  width: 7rem;
}
.w-3{
  width: 0.75rem;
}
.w-3\.5{
  width: 0.875rem;
}
.w-3\/4{
  width: 75%;
}
.w-4{
  width: 1rem;
}
.w-48{
  width: 12rem;
}
.w-52{
  width: 13rem;
}
.w-56{
  width: 14rem;
}
.w-60{
  width: 15rem;
}
.w-64{
  width: 16rem;
}
.w-72{
  width: 18rem;
}
.w-8{
  width: 2rem;
}
.w-9{
  width: 2.25rem;
}
.w-\[158px\]{
  width: 158px;
}
.w-\[280px\]{
  width: 280px;
}
.w-\[var\(--cell-size\)\]{
  width: var(--cell-size);
}
.w-auto{
  width: auto;
}
.w-fit{
  width: -moz-fit-content;
  width: fit-content;
}
.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-\[12rem\]{
  min-width: 12rem;
}
.min-w-\[8rem\]{
  min-width: 8rem;
}
.min-w-\[var\(--cell-size\)\]{
  min-width: var(--cell-size);
}
.min-w-\[var\(--radix-select-trigger-width\)\]{
  min-width: var(--radix-select-trigger-width);
}
.max-w-2xl{
  max-width: 42rem;
}
.max-w-3xl{
  max-width: 48rem;
}
.max-w-\[1100px\]{
  max-width: 1100px;
}
.max-w-\[1440px\]{
  max-width: 1440px;
}
.max-w-\[420px\]{
  max-width: 420px;
}
.max-w-\[440px\]{
  max-width: 440px;
}
.max-w-\[960px\]{
  max-width: 960px;
}
.max-w-\[calc\(100\%-2rem\)\]{
  max-width: calc(100% - 2rem);
}
.max-w-full{
  max-width: 100%;
}
.max-w-lg{
  max-width: 32rem;
}
.max-w-max{
  max-width: -moz-max-content;
  max-width: max-content;
}
.max-w-md{
  max-width: 28rem;
}
.max-w-sm{
  max-width: 24rem;
}
.max-w-xl{
  max-width: 36rem;
}
.flex-1{
  flex: 1 1 0%;
}
.flex-\[2\]{
  flex: 2;
}
.shrink{
  flex-shrink: 1;
}
.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-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);
}
.-translate-x-1\/2{
  --tw-translate-x: -50%;
  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));
}
.-translate-y-1\/2{
  --tw-translate-y: -50%;
  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));
}
.translate-x-\[-50\%\]{
  --tw-translate-x: -50%;
  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));
}
.translate-y-0\.5{
  --tw-translate-y: 0.125rem;
  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));
}
.translate-y-\[-50\%\]{
  --tw-translate-y: -50%;
  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));
}
.translate-y-\[calc\(-50\%_-_2px\)\]{
  --tw-translate-y: calc(-50% - 2px);
  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));
}
.rotate-45{
  --tw-rotate: 45deg;
  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));
}
.rotate-90{
  --tw-rotate: 90deg;
  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));
}
.transform{
  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));
}
@keyframes caret-blink{
  0%,70%,100%{
    opacity: 1;
  }
  20%,50%{
    opacity: 0;
  }
}
.animate-caret-blink{
  animation: caret-blink 1.25s ease-out infinite;
}
@keyframes pulse{
  50%{
    opacity: .5;
  }
}
.animate-pulse{
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin{
  to{
    transform: rotate(360deg);
  }
}
.animate-spin{
  animation: spin 1s linear infinite;
}
.cursor-default{
  cursor: default;
}
.cursor-not-allowed{
  cursor: not-allowed;
}
.cursor-pointer{
  cursor: pointer;
}
.touch-none{
  touch-action: none;
}
.select-none{
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize{
  resize: both;
}
.scroll-py-1{
  scroll-padding-top: 0.25rem;
  scroll-padding-bottom: 0.25rem;
}
.list-none{
  list-style-type: none;
}
.grid-cols-1{
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-4{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grid-cols-\[0_1fr\]{
  grid-template-columns: 0 1fr;
}
.flex-row{
  flex-direction: row;
}
.flex-col{
  flex-direction: column;
}
.flex-col-reverse{
  flex-direction: column-reverse;
}
.flex-wrap{
  flex-wrap: wrap;
}
.place-items-center{
  place-items: center;
}
.items-start{
  align-items: flex-start;
}
.items-end{
  align-items: flex-end;
}
.items-center{
  align-items: center;
}
.items-baseline{
  align-items: baseline;
}
.items-stretch{
  align-items: stretch;
}
.justify-start{
  justify-content: flex-start;
}
.justify-center{
  justify-content: center;
}
.justify-between{
  justify-content: space-between;
}
.justify-items-start{
  justify-items: start;
}
.gap-0\.5{
  gap: 0.125rem;
}
.gap-1{
  gap: 0.25rem;
}
.gap-1\.5{
  gap: 0.375rem;
}
.gap-2{
  gap: 0.5rem;
}
.gap-2\.5{
  gap: 0.625rem;
}
.gap-3{
  gap: 0.75rem;
}
.gap-4{
  gap: 1rem;
}
.gap-5{
  gap: 1.25rem;
}
.gap-6{
  gap: 1.5rem;
}
.gap-x-3{
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-y-0\.5{
  row-gap: 0.125rem;
}
.gap-y-1{
  row-gap: 0.25rem;
}
.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));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.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));
}
.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));
}
.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));
}
.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));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-border > :not([hidden]) ~ :not([hidden]){
  border-color: hsl(var(--border));
}
.self-start{
  align-self: flex-start;
}
.self-center{
  align-self: center;
}
.overflow-auto{
  overflow: auto;
}
.overflow-hidden{
  overflow: hidden;
}
.overflow-x-auto{
  overflow-x: auto;
}
.overflow-y-auto{
  overflow-y: auto;
}
.overflow-x-hidden{
  overflow-x: hidden;
}
.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-nowrap{
  white-space: nowrap;
}
.whitespace-pre-wrap{
  white-space: pre-wrap;
}
.text-balance{
  text-wrap: balance;
}
.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: var(--radius);
}
.rounded-md{
  border-radius: calc(var(--radius) - 2px);
}
.rounded-none{
  border-radius: 0px;
}
.rounded-sm{
  border-radius: calc(var(--radius) - 4px);
}
.rounded-l-md{
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}
.rounded-r-md{
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}
.rounded-tl-sm{
  border-top-left-radius: calc(var(--radius) - 4px);
}
.border{
  border-width: 1px;
}
.border-2{
  border-width: 2px;
}
.border-x{
  border-left-width: 1px;
  border-right-width: 1px;
}
.border-y{
  border-top-width: 1px;
  border-bottom-width: 1px;
}
.border-b{
  border-bottom-width: 1px;
}
.border-b-2{
  border-bottom-width: 2px;
}
.border-l{
  border-left-width: 1px;
}
.border-r{
  border-right-width: 1px;
}
.border-t{
  border-top-width: 1px;
}
.border-t-2{
  border-top-width: 2px;
}
.border-dashed{
  border-style: dashed;
}
.border-accent{
  border-color: hsl(var(--accent));
}
.border-border{
  border-color: hsl(var(--border));
}
.border-destructive{
  border-color: hsl(var(--destructive));
}
.border-destructive\/40{
  border-color: hsl(var(--destructive) / 0.4);
}
.border-destructive\/50{
  border-color: hsl(var(--destructive) / 0.5);
}
.border-foreground{
  border-color: hsl(var(--foreground));
}
.border-foreground\/30{
  border-color: hsl(var(--foreground) / 0.3);
}
.border-input{
  border-color: hsl(var(--input));
}
.border-primary{
  border-color: hsl(var(--primary));
}
.border-primary\/40{
  border-color: hsl(var(--primary) / 0.4);
}
.border-secondary{
  border-color: hsl(var(--secondary));
}
.border-transparent{
  border-color: transparent;
}
.border-l-transparent{
  border-left-color: transparent;
}
.border-t-transparent{
  border-top-color: transparent;
}
.bg-accent{
  background-color: hsl(var(--accent));
}
.bg-accent\/10{
  background-color: hsl(var(--accent) / 0.1);
}
.bg-background{
  background-color: hsl(var(--background));
}
.bg-background\/80{
  background-color: hsl(var(--background) / 0.8);
}
.bg-background\/90{
  background-color: hsl(var(--background) / 0.9);
}
.bg-black\/50{
  background-color: rgb(0 0 0 / 0.5);
}
.bg-border{
  background-color: hsl(var(--border));
}
.bg-card{
  background-color: hsl(var(--card));
}
.bg-destructive{
  background-color: hsl(var(--destructive));
}
.bg-destructive\/5{
  background-color: hsl(var(--destructive) / 0.05);
}
.bg-destructive\/90{
  background-color: hsl(var(--destructive) / 0.9);
}
.bg-foreground{
  background-color: hsl(var(--foreground));
}
.bg-foreground\/5{
  background-color: hsl(var(--foreground) / 0.05);
}
.bg-foreground\/80{
  background-color: hsl(var(--foreground) / 0.8);
}
.bg-foreground\/85{
  background-color: hsl(var(--foreground) / 0.85);
}
.bg-foreground\/\[0\.03\]{
  background-color: hsl(var(--foreground) / 0.03);
}
.bg-foreground\/\[0\.04\]{
  background-color: hsl(var(--foreground) / 0.04);
}
.bg-muted{
  background-color: hsl(var(--muted));
}
.bg-muted\/20{
  background-color: hsl(var(--muted) / 0.2);
}
.bg-muted\/30{
  background-color: hsl(var(--muted) / 0.3);
}
.bg-muted\/40{
  background-color: hsl(var(--muted) / 0.4);
}
.bg-muted\/50{
  background-color: hsl(var(--muted) / 0.5);
}
.bg-popover{
  background-color: hsl(var(--popover));
}
.bg-primary{
  background-color: hsl(var(--primary));
}
.bg-primary\/20{
  background-color: hsl(var(--primary) / 0.2);
}
.bg-primary\/5{
  background-color: hsl(var(--primary) / 0.05);
}
.bg-secondary{
  background-color: hsl(var(--secondary));
}
.bg-transparent{
  background-color: transparent;
}
.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.fill-current{
  fill: currentColor;
}
.fill-foreground{
  fill: hsl(var(--foreground));
}
.object-contain{
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover{
  -o-object-fit: cover;
     object-fit: cover;
}
.object-left{
  -o-object-position: left;
     object-position: left;
}
.p-0{
  padding: 0px;
}
.p-1{
  padding: 0.25rem;
}
.p-10{
  padding: 2.5rem;
}
.p-16{
  padding: 4rem;
}
.p-2{
  padding: 0.5rem;
}
.p-3{
  padding: 0.75rem;
}
.p-4{
  padding: 1rem;
}
.p-5{
  padding: 1.25rem;
}
.p-6{
  padding: 1.5rem;
}
.p-8{
  padding: 2rem;
}
.p-px{
  padding: 1px;
}
.px-1{
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5{
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5{
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8{
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-\[var\(--cell-size\)\]{
  padding-left: var(--cell-size);
  padding-right: var(--cell-size);
}
.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10{
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-16{
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5{
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-24{
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5{
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6{
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8{
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-px{
  padding-top: 1px;
  padding-bottom: 1px;
}
.pb-2{
  padding-bottom: 0.5rem;
}
.pb-24{
  padding-bottom: 6rem;
}
.pb-4{
  padding-bottom: 1rem;
}
.pb-5{
  padding-bottom: 1.25rem;
}
.pl-2{
  padding-left: 0.5rem;
}
.pl-2\.5{
  padding-left: 0.625rem;
}
.pl-4{
  padding-left: 1rem;
}
.pl-8{
  padding-left: 2rem;
}
.pr-1{
  padding-right: 0.25rem;
}
.pr-2{
  padding-right: 0.5rem;
}
.pr-2\.5{
  padding-right: 0.625rem;
}
.pt-0{
  padding-top: 0px;
}
.pt-14{
  padding-top: 3.5rem;
}
.pt-2\.5{
  padding-top: 0.625rem;
}
.pt-3{
  padding-top: 0.75rem;
}
.pt-4{
  padding-top: 1rem;
}
.text-left{
  text-align: left;
}
.text-center{
  text-align: center;
}
.text-right{
  text-align: right;
}
.align-middle{
  vertical-align: middle;
}
.align-\[-2px\]{
  vertical-align: -2px;
}
.font-mono{
  font-family: var(--font-mono);
}
.font-serif{
  font-family: var(--font-serif);
}
.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-\[0\.8rem\]{
  font-size: 0.8rem;
}
.text-\[10px\]{
  font-size: 10px;
}
.text-\[11px\]{
  font-size: 11px;
}
.text-\[12px\]{
  font-size: 12px;
}
.text-\[9px\]{
  font-size: 9px;
}
.text-\[clamp\(36px\2c 5vw\2c 64px\)\]{
  font-size: clamp(36px, 5vw, 64px);
}
.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-black{
  font-weight: 900;
}
.font-bold{
  font-weight: 700;
}
.font-medium{
  font-weight: 500;
}
.font-normal{
  font-weight: 400;
}
.font-semibold{
  font-weight: 600;
}
.uppercase{
  text-transform: uppercase;
}
.leading-none{
  line-height: 1;
}
.leading-relaxed{
  line-height: 1.625;
}
.leading-snug{
  line-height: 1.375;
}
.leading-tight{
  line-height: 1.25;
}
.tracking-\[\.06em\]{
  letter-spacing: .06em;
}
.tracking-\[\.08em\]{
  letter-spacing: .08em;
}
.tracking-\[\.12em\]{
  letter-spacing: .12em;
}
.tracking-\[\.14em\]{
  letter-spacing: .14em;
}
.tracking-\[\.16em\]{
  letter-spacing: .16em;
}
.tracking-\[\.1em\]{
  letter-spacing: .1em;
}
.tracking-\[\.4em\]{
  letter-spacing: .4em;
}
.tracking-tight{
  letter-spacing: -0.025em;
}
.tracking-wide{
  letter-spacing: 0.025em;
}
.tracking-widest{
  letter-spacing: 0.1em;
}
.text-accent{
  color: hsl(var(--accent));
}
.text-accent-foreground{
  color: hsl(var(--accent-foreground));
}
.text-background{
  color: hsl(var(--background));
}
.text-blue-500{
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.text-card-foreground{
  color: hsl(var(--card-foreground));
}
.text-current{
  color: currentColor;
}
.text-destructive{
  color: hsl(var(--destructive));
}
.text-destructive-foreground{
  color: hsl(var(--destructive-foreground));
}
.text-foreground{
  color: hsl(var(--foreground));
}
.text-foreground\/70{
  color: hsl(var(--foreground) / 0.7);
}
.text-foreground\/80{
  color: hsl(var(--foreground) / 0.8);
}
.text-gray-700{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.text-muted-foreground{
  color: hsl(var(--muted-foreground));
}
.text-muted-foreground\/80{
  color: hsl(var(--muted-foreground) / 0.8);
}
.text-popover-foreground{
  color: hsl(var(--popover-foreground));
}
.text-primary{
  color: hsl(var(--primary));
}
.text-primary-foreground{
  color: hsl(var(--primary-foreground));
}
.text-secondary{
  color: hsl(var(--secondary));
}
.text-secondary-foreground{
  color: hsl(var(--secondary-foreground));
}
.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.underline{
  text-decoration-line: underline;
}
.underline-offset-4{
  text-underline-offset: 4px;
}
.opacity-0{
  opacity: 0;
}
.opacity-50{
  opacity: 0.5;
}
.opacity-60{
  opacity: 0.6;
}
.opacity-70{
  opacity: 0.7;
}
.opacity-80{
  opacity: 0.8;
}
.mix-blend-difference{
  mix-blend-mode: difference;
}
.shadow{
  --tw-shadow: var(--shadow);
  --tw-shadow-colored: var(--shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg{
  --tw-shadow: var(--shadow-lg);
  --tw-shadow-colored: var(--shadow-lg);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md{
  --tw-shadow: var(--shadow-md);
  --tw-shadow-colored: var(--shadow-md);
  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: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xs{
  --tw-shadow: var(--shadow-xs);
  --tw-shadow-colored: var(--shadow-xs);
  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;
}
.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-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);
}
.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-foreground{
  --tw-ring-color: hsl(var(--foreground));
}
.ring-primary{
  --tw-ring-color: hsl(var(--primary));
}
.ring-ring\/50{
  --tw-ring-color: hsl(var(--ring) / 0.5);
}
.ring-offset-background{
  --tw-ring-offset-color: hsl(var(--background));
}
.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);
}
.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);
}
.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(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[color\2c box-shadow\]{
  transition-property: color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.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;
}
.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-1000{
  transition-duration: 1000ms;
}
.duration-200{
  transition-duration: 200ms;
}
.duration-300{
  transition-duration: 300ms;
}
.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes enter{
  from{
    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: 150ms;
  --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;
}
.zoom-in-95{
  --tw-enter-scale: .95;
}
.duration-1000{
  animation-duration: 1000ms;
}
.duration-200{
  animation-duration: 200ms;
}
.duration-300{
  animation-duration: 300ms;
}
.ease-in-out{
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.running{
  animation-play-state: running;
}
.\[--cell-size\:calc\(var\(--spacing\)\*8\)\]{
  --cell-size: calc(var(--spacing) * 8);
}
.\[transform-origin\:var\(--radix-tooltip-content-transform-origin\)\]{
  transform-origin: var(--radix-tooltip-content-transform-origin);
}

.create-home { position:relative;max-width:1440px;margin:0 auto;padding:72px 40px 96px;overflow:hidden;background-image:linear-gradient(to right,hsl(var(--border)/.36) 1px,transparent 1px);background-size:4% 100%; }
.hero-copy { position:relative;z-index:2;max-width:1180px; }
.eyebrow,.section-kicker span { font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.14em;color:hsl(var(--muted-foreground)); }
.hero-copy h1 { margin:15px 0 25px;font-family:"Archivo","Noto Sans SC",sans-serif;font-size:clamp(52px,7vw,104px);font-stretch:expanded;font-weight:900;letter-spacing:-.055em;line-height:.96; }
.hero-copy h1 em { color:hsl(var(--primary));font-style:normal; }
.hero-meta { display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:40px; }
.hero-meta p { max-width:500px;margin:0;color:hsl(var(--muted-foreground));font-size:15px;line-height:1.7; }
.hero-meta span { border-bottom:2px solid hsl(var(--primary));padding-bottom:5px;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;white-space:nowrap; }
.hero-meta b { font-family:"Archivo",sans-serif;font-size:19px;font-weight:900; }
.platen-stage { --lx:50%;--ly:85%;position:relative;z-index:3; }
.platen-glow { position:absolute;inset:-2px;z-index:0;pointer-events:none;transform:perspective(1400px) rotateX(4deg);transform-origin:50% 100%;box-shadow:0 0 46px 24px hsl(185 100% 99%/.9);transition:transform .4s cubic-bezier(.16,1,.3,1); }
.platen-glow::before { content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--lx) var(--ly),hsl(185 100% 99%/.8),transparent 42%); }
.platen { position:relative;z-index:1;padding:34px;background:hsl(var(--card));border:2px solid hsl(var(--foreground)); }
.rail-switch { position:relative;z-index:2;display:inline-flex;margin-bottom:22px;border:2px solid hsl(var(--foreground)); }
.rail-switch button { border:0;border-right:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:11px 24px;font-weight:700;font-size:13px;color:hsl(var(--muted-foreground)); }
.rail-switch button:last-child { border-right:0; }
.rail-switch button.active { background:hsl(var(--foreground));color:hsl(var(--background)); }
.platen input:focus,.platen textarea:focus { outline:2px solid hsl(var(--primary));outline-offset:1px;border-color:hsl(var(--foreground)); }
.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
.creation-workspace { display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:24px;align-items:start;min-height:640px; }
.creation-controls,.creation-preview { min-width:0; }
.creation-preview-head { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px; }
.candidate-preview-grid { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px; }
.candidate-slot { min-width:0;display:flex;flex-direction:column;border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
.candidate-slot-empty,.candidate-slot-pending { border-style:dashed;border-color:hsl(var(--border)); }
.candidate-slot-head { display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid hsl(var(--border));padding:8px 12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:hsl(var(--muted-foreground)); }
.candidate-slot-body { min-width:0;display:grid;place-items:center;min-height:200px;background:hsl(var(--muted)); }
.candidate-slot-body>:first-child { min-width:0;max-width:100%;width:100%; }
.candidate-slot-placeholder { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center;color:hsl(var(--muted-foreground)); }
.candidate-slot-placeholder span { max-width:100%;font-size:11px;line-height:1.5;word-break:break-word; }
.candidate-slot-failed .candidate-slot-placeholder { color:hsl(var(--destructive)); }
.rail { min-width:0;padding:26px;background:hsl(var(--card));border:1px solid hsl(var(--border));transition:border-color .2s; }
.rail:hover { border-color:hsl(var(--foreground)); }
.rail::before { content:"";display:block;width:100%;height:3px;margin-bottom:20px;transform:scaleX(.3);transform-origin:left;transition:transform .3s cubic-bezier(.16,1,.3,1); }
.rail:hover::before { transform:scaleX(1); }
.rail-text::before { background:hsl(var(--primary)); }.rail-image::before { background:hsl(var(--secondary)); }
.rail-label { display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:hsl(var(--muted-foreground)); }
.rail h2 { margin:16px 0 14px;font-size:23px;font-weight:900;letter-spacing:-.03em; }
.rail textarea,.rail-note { width:100%;border:1px solid hsl(var(--border));background:hsl(var(--background)/.6);padding:14px;color:hsl(var(--foreground));resize:none; }
.rail textarea { min-height:122px;line-height:1.6; }
.rail-note { height:42px;margin-top:12px;font-size:12px; }
.chip-row { display:flex;gap:7px;margin-top:12px;overflow-x:auto; }
.chip-row button { flex:none;border:1px solid hsl(var(--border));border-radius:999px;background:transparent;padding:6px 10px;font-size:11px;white-space:nowrap; }
.chip-row button.active { background:hsl(var(--foreground));color:hsl(var(--background));border-color:hsl(var(--foreground)); }
.rail-actions { display:flex;gap:9px;margin-top:16px; }
.primary-action,.secondary-action { display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;border:2px solid hsl(var(--foreground));padding:0 16px;font-weight:700; }
.primary-action { background:hsl(var(--primary));color:hsl(var(--primary-foreground)); }.rail-image .primary-action { background:hsl(var(--secondary));color:hsl(var(--secondary-foreground)); }
.secondary-action { background:transparent;color:hsl(var(--foreground)); }
.drop-zone { display:flex;width:100%;min-height:122px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed hsl(var(--secondary));background:hsl(var(--background)/.55);color:hsl(var(--foreground)); }
.drop-zone small { color:hsl(var(--muted-foreground));font-family:var(--font-mono);font-size:10px; }
.model-picker { margin-top:16px;border:0;padding:0; }
.model-picker legend { margin-bottom:8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:hsl(var(--muted-foreground)); }
.model-picker:disabled .model-grid label { opacity:.55; }
.model-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.model-grid label { position:relative;display:flex;min-width:0;cursor:pointer;flex-direction:column;gap:3px;border:1px solid hsl(var(--border));background:hsl(var(--background)/.55);padding:10px 12px; }
.model-grid label.is-active { border-color:hsl(var(--foreground));background:hsl(var(--secondary)/.14);box-shadow:inset 3px 0 0 hsl(var(--secondary)); }
.model-grid input { position:absolute;width:1px;height:1px;opacity:0; }
.model-grid input:focus-visible + strong { outline:2px solid hsl(var(--primary));outline-offset:3px; }
.model-grid strong { font-size:13px;font-weight:800;letter-spacing:-.01em; }
.model-grid span { font-size:11px;line-height:1.5;color:hsl(var(--muted-foreground)); }
.model-grid em { font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;font-style:normal;color:hsl(var(--muted-foreground)); }
.candidate-model { display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:hsl(var(--muted-foreground)); }
.candidate-model select { min-width:0;flex:1;border:1px solid hsl(var(--border));background:hsl(var(--background));padding:4px 6px;font-family:inherit;font-size:10px;color:hsl(var(--foreground)); }
.candidate-model select:disabled { opacity:.5; }
@media (max-width:900px) { .model-grid { grid-template-columns:minmax(0,1fr); } }
.proof-section { margin-top:100px; }
.section-kicker { display:flex;align-items:end;justify-content:space-between;border-bottom:2px solid hsl(var(--foreground));padding-bottom:12px; }
.section-kicker strong { font-size:24px;letter-spacing:-.03em; }
.proof-strip { display:flex;gap:20px;overflow-x:auto;padding:24px 0 14px;scroll-snap-type:x mandatory; }
.proof-card { min-width:260px;scroll-snap-align:start; }.proof-card p { font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.proof-art { position:relative;display:flex;height:330px;align-items:center;justify-content:center;overflow:hidden;border:1px solid hsl(var(--foreground));background:hsl(var(--muted)); }
.portal-page { max-width:1440px;min-height:calc(100vh - 60px);margin:0 auto;padding:72px 40px 100px;background-image:linear-gradient(to right,hsl(var(--border)/.35) 1px,transparent 1px);background-size:4% 100%; }
.portal-heading { display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:48px; }.portal-heading h1 { max-width:900px;margin:12px 0 0;font-family:"Archivo","Noto Sans SC",sans-serif;font-size:clamp(42px,5vw,72px);font-weight:900;letter-spacing:-.05em;line-height:1; }
.portal-card-grid,.metric-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px; }.portal-card-grid article,.metric-grid article { min-height:220px;border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:28px; }.portal-card-grid h2 { margin:38px 0 6px;font-size:24px; }.portal-card-grid p { color:hsl(var(--muted-foreground)); }.portal-card-grid button { margin-top:25px;border:0;background:transparent;padding:0;font-weight:700;color:hsl(var(--primary)); }
.skeleton-table,.admin-table { margin-top:36px;border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }.skeleton-table header,.admin-table header { display:flex;height:58px;align-items:center;justify-content:space-between;border-bottom:1px solid hsl(var(--border));padding:0 20px; }.skeleton-table header span { color:hsl(var(--muted-foreground));font-family:var(--font-mono);font-size:10px; }.skeleton-table>div { display:grid;grid-template-columns:54px 2fr 1fr 1fr;gap:18px;height:58px;align-items:center;border-bottom:1px solid hsl(var(--border));padding:0 20px; }.skeleton-table i,.skeleton-table div span { height:12px;background:hsl(var(--muted)); }.skeleton-table i { width:38px;height:38px; }
.metric-grid { grid-template-columns:repeat(4,1fr); }.metric-grid article { min-height:150px; }.metric-grid span { font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }.metric-grid b { display:block;margin-top:20px;border-bottom:2px solid hsl(var(--primary));font-family:"Archivo",sans-serif;font-size:52px;line-height:1; }
.admin-table header button { border:2px solid hsl(var(--foreground));background:hsl(var(--primary));color:white;padding:8px 14px;font-weight:700; }.table-row { display:grid;grid-template-columns:1.5fr 1fr 1fr .8fr 1fr;min-height:52px;align-items:center;border-bottom:1px solid hsl(var(--border));padding:0 20px;font-size:13px; }.table-head { min-height:38px;background:hsl(var(--muted));font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }.table-row i { display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%; }.magenta-dot { background:hsl(var(--primary)); }.cyan-dot { background:hsl(var(--secondary)); }

@media (max-width:900px) { .create-home,.portal-page { padding:48px 20px 90px; }.hero-meta { align-items:start;flex-direction:column;gap:18px; }.platen { padding:18px; }.rail-switch { width:100%; }.rail-switch button { flex:1; }.creation-workspace { grid-template-columns:1fr;min-height:560px; }.candidate-preview-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.portal-card-grid,.metric-grid { grid-template-columns:1fr 1fr; }.table-row { grid-template-columns:1.5fr 1fr 1fr; }.table-row span:nth-child(4),.table-row span:nth-child(5) { display:none; } }
@media (max-width:600px) { .hero-copy h1 { font-size:47px; }.rail { padding:18px; }.rail-actions { flex-direction:column; }.creation-workspace { min-height:480px; }.creation-preview-head { align-items:flex-start;flex-direction:column;gap:8px; }.candidate-preview-grid { grid-template-columns:1fr; }.proof-section { margin-top:64px; }.proof-card { min-width:220px; }.portal-card-grid,.metric-grid { grid-template-columns:1fr; }.portal-heading { align-items:start;flex-direction:column; }.portal-heading h1 { font-size:42px; }.table-row { grid-template-columns:1.4fr 1fr; }.table-row span:nth-child(3) { display:none; } }
/* ---- Admin backend (管理后台) ---- */
.admin-shell { max-width:1440px;min-height:calc(100vh - 60px);margin:0 auto; }
.admin-subnav { display:flex;gap:0;border-bottom:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:0 40px; }
.admin-subnav-link { display:inline-flex;align-items:center;gap:8px;border-bottom:2px solid transparent;margin-bottom:-2px;padding:16px 20px;font-size:13px;font-weight:700;color:hsl(var(--muted-foreground)); }
.admin-subnav-link.is-active { border-color:hsl(var(--primary));color:hsl(var(--foreground)); }
.admin-page { padding:40px 40px 100px; }
.admin-page-head { display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px;flex-wrap:wrap; }
.admin-page-head h1 { margin:10px 0 0;font-family:"Archivo","Noto Sans SC",sans-serif;font-size:clamp(30px,3.4vw,48px);font-weight:900;letter-spacing:-.04em;line-height:1; }
.admin-daterange { display:flex;align-items:end;gap:12px; }
.admin-daterange label { display:flex;flex-direction:column;gap:4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:hsl(var(--muted-foreground)); }
.admin-daterange input { border:1px solid hsl(var(--border));background:hsl(var(--background));padding:7px 10px;color:hsl(var(--foreground)); }
.admin-metric-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px; }
.admin-metric-grid article { border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:22px; }
.admin-metric-grid span { font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }
.admin-metric-grid b { display:block;margin-top:14px;border-bottom:2px solid hsl(var(--primary));font-family:"Archivo",sans-serif;font-size:42px;line-height:1.1; }
.admin-two-col { display:grid;grid-template-columns:1fr 1fr;gap:20px; }
.admin-panel { border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
.admin-panel header { display:flex;height:48px;align-items:center;border-bottom:1px solid hsl(var(--border));padding:0 18px;font-weight:800; }
.admin-panel-body { padding:18px; }
.admin-subhead { margin:14px 0 8px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:hsl(var(--muted-foreground)); }
.admin-subhead:first-child { margin-top:0; }
.admin-bar-row { display:grid;grid-template-columns:120px 1fr 60px;align-items:center;gap:12px;margin-bottom:12px;font-size:13px; }
.admin-bar-track { height:10px;background:hsl(var(--muted)); }
.admin-bar-track i { display:block;height:100%;background:hsl(var(--secondary)); }
.admin-bar-row b,.admin-fail-row b { text-align:right;font-family:var(--font-mono); }
.admin-fail-row { display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed hsl(var(--border));font-size:13px; }
.admin-empty { padding:28px;text-align:center;color:hsl(var(--muted-foreground));font-size:13px; }
.admin-filters { display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px; }
.admin-seg { display:inline-flex;border:1px solid hsl(var(--border)); }
.admin-seg button { border:0;border-right:1px solid hsl(var(--border));background:hsl(var(--card));padding:8px 14px;font-size:12px;color:hsl(var(--muted-foreground)); }
.admin-seg button:last-child { border-right:0; }
.admin-seg button.is-active { background:hsl(var(--foreground));color:hsl(var(--background)); }
.admin-list { border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
.admin-row { display:grid;align-items:center;gap:16px;min-height:54px;border-bottom:1px solid hsl(var(--border));padding:0 20px;font-size:13px; }
.admin-row:last-child { border-bottom:0; }
.admin-row-head { min-height:40px;background:hsl(var(--muted));font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:hsl(var(--muted-foreground)); }
.admin-row-style { grid-template-columns:1.4fr 1fr .8fr .8fr .9fr .8fr; }
.admin-row-job { grid-template-columns:.7fr .6fr 1fr .8fr 2fr 1fr; }
.admin-row i { display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;vertical-align:middle; }
.admin-row-actions { display:flex;gap:8px; }
.admin-row-actions button { display:grid;place-items:center;width:32px;height:32px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground)); }
.admin-row-actions button:hover { border-color:hsl(var(--foreground)); }
.admin-tag-on { color:hsl(var(--secondary));font-weight:700; }
.admin-tag-off { color:hsl(var(--muted-foreground)); }
.admin-mono { font-family:var(--font-mono);font-size:12px; }
.admin-job-running { color:hsl(var(--accent));font-weight:700; }
.admin-job-completed { color:hsl(var(--secondary));font-weight:700; }
.admin-job-failed { color:hsl(var(--destructive));font-weight:700; }
.admin-job-step { color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.admin-fail-strip { display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;border-left:3px solid hsl(var(--destructive));background:hsl(var(--card));padding:12px 16px;font-size:12px; }
.admin-fail-strip span { font-weight:700; }
.admin-fail-strip em { border:1px solid hsl(var(--destructive));padding:3px 8px;font-style:normal;color:hsl(var(--destructive)); }
.admin-model-strip { margin-bottom:20px;border:1px solid hsl(var(--border));background:hsl(var(--card));padding:14px 16px; }
.admin-model-strip > p { display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;font-size:12px;font-weight:700; }
.admin-model-strip > p em { font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;font-style:normal;font-weight:400;color:hsl(var(--muted-foreground)); }
.admin-model-strip > div { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px; }
.admin-model-strip > p.admin-model-strip-total { margin-top:12px;border-top:1px solid hsl(var(--border));padding-top:10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em; }
.admin-model-strip article { display:flex;min-width:0;flex-direction:column;gap:2px;border-left:3px solid hsl(var(--secondary));background:hsl(var(--background)/.5);padding:8px 12px; }
.admin-model-strip strong { font-size:13px;font-weight:800; }
.admin-model-strip b { font-family:var(--font-mono);font-size:20px;line-height:1.1;letter-spacing:-.03em; }
.admin-model-strip b.is-weak { color:hsl(var(--destructive)); }
.admin-model-strip span { font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.admin-btn-primary,.admin-btn-ghost,.admin-btn-danger { display:inline-flex;align-items:center;gap:8px;height:40px;border:2px solid hsl(var(--foreground));padding:0 16px;font-weight:700; }
.admin-btn-primary { background:hsl(var(--primary));color:hsl(var(--primary-foreground)); }
.admin-btn-danger { background:hsl(var(--destructive));color:hsl(var(--destructive-foreground)); }
.admin-btn-ghost { background:transparent;color:hsl(var(--foreground)); }
.admin-btn-primary:disabled,.admin-btn-danger:disabled { opacity:.5;cursor:not-allowed; }
.admin-pager { display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }
.admin-pager-controls { display:flex;align-items:center;gap:10px; }
.admin-pager-controls button { display:grid;place-items:center;width:34px;height:34px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--foreground)); }
.admin-pager-controls button:disabled { opacity:.4;cursor:not-allowed; }
.admin-pager-index { min-width:56px;text-align:center; }
.admin-dialog { max-height:86vh;overflow-y:auto;border:2px solid hsl(var(--foreground)); }
.admin-form { display:flex;flex-direction:column;gap:16px; }
.admin-form label { display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600; }
.admin-form input,.admin-form textarea,.admin-form select { border:1px solid hsl(var(--border));background:hsl(var(--background));padding:10px 12px;color:hsl(var(--foreground));font-weight:400;resize:vertical; }
.admin-form small { font-weight:400;font-size:11px;line-height:1.5;color:hsl(var(--muted-foreground)); }
.admin-form-error { margin-top:-8px;font-size:12px;line-height:1.5;color:hsl(var(--destructive)); }
.admin-track-toggle { display:inline-flex;border:1px solid hsl(var(--border));width:-moz-max-content;width:max-content; }
.admin-track-toggle button { border:0;border-right:1px solid hsl(var(--border));background:hsl(var(--card));padding:8px 16px;font-size:12px; }
.admin-track-toggle button:last-child { border-right:0; }
.admin-track-toggle button.is-active { background:hsl(var(--foreground));color:hsl(var(--background)); }
.admin-review-subject { border-left:3px solid hsl(var(--primary));padding-left:10px;font-weight:700; }
.admin-review-effect { border:1px dashed hsl(var(--border));background:hsl(var(--muted));padding:10px 12px;font-size:12px;line-height:1.6;color:hsl(var(--muted-foreground)); }
.admin-mod-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:18px; }
.admin-mod-card { display:flex;flex-direction:column;border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
.admin-mod-thumb { position:relative;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-family:var(--font-mono);font-size:11px; }
.admin-mod-thumb img { width:100%;height:100%;-o-object-fit:cover;object-fit:cover; }
.admin-mod-badge { position:absolute;top:10px;left:10px;padding:3px 8px;font-family:var(--font-mono);font-size:10px;font-style:normal;color:white; }
.admin-mod-pending { background:hsl(var(--accent));color:hsl(var(--accent-foreground)); }
.admin-mod-approved { background:hsl(var(--secondary)); }
.admin-mod-rejected { background:hsl(var(--destructive)); }
.admin-mod-meta { flex:1;padding:16px; }
.admin-mod-meta b { font-size:15px; }
.admin-mod-meta p { margin:6px 0 0;font-size:12px;color:hsl(var(--muted-foreground)); }
.admin-mod-sub { font-family:var(--font-mono);font-size:10px; }
.admin-mod-note { border-top:1px dashed hsl(var(--border));margin-top:10px;padding-top:8px;color:hsl(var(--foreground)); }
.admin-mod-actions { display:flex;gap:10px;border-top:1px solid hsl(var(--border));padding:14px 16px; }
.admin-mod-actions button { flex:1;justify-content:center;height:38px; }
.admin-hint { flex:1;min-width:240px;align-self:center;font-size:12px;line-height:1.6;color:hsl(var(--muted-foreground)); }
.admin-search { display:flex;align-items:center;gap:10px;border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:0 0 0 12px;color:hsl(var(--muted-foreground)); }
.admin-search input { width:260px;border:0;background:transparent;padding:10px 0;color:hsl(var(--foreground));font-size:13px; }
.admin-search input:focus-visible { outline:0; }
.admin-search button { height:40px;border-left:2px solid hsl(var(--foreground)); }
.admin-search .admin-btn-ghost { border:0;border-left:1px solid hsl(var(--border)); }
.admin-quota-breakdown { display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }
.admin-quota-breakdown b { font-family:"Archivo","Noto Sans SC",sans-serif;font-size:15px;color:hsl(var(--foreground)); }
.admin-quota-breakdown .is-used b { color:hsl(var(--muted-foreground)); }
.admin-quota-breakdown .is-remaining { padding-left:14px;border-left:1px solid hsl(var(--border));color:hsl(var(--foreground));font-weight:700; }
.admin-quota-breakdown .is-remaining b { color:hsl(var(--primary));font-size:19px; }
.admin-quota-breakdown.is-compact { border:1px dashed hsl(var(--border));background:hsl(var(--muted));padding:10px 12px;gap:12px; }
.admin-quota-breakdown.is-compact b { font-size:13px; }
.admin-quota-breakdown.is-compact .is-remaining b { font-size:15px; }
.admin-account-list { display:flex;flex-direction:column;gap:12px; }
.admin-account-row { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) max-content;align-items:center;gap:18px;border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:16px 18px; }
.admin-account-meta { display:flex;min-width:0;flex-direction:column;gap:8px; }
.admin-ent-strip { display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }
.admin-ent-title { padding-right:10px;border-right:1px solid hsl(var(--border)); }
.admin-ent-strip span b { margin-left:4px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:hsl(var(--muted-foreground)); }
.admin-ent-strip span.is-on b { color:hsl(var(--primary)); }
.admin-ent-strip em { margin-left:6px;border:1px solid hsl(var(--border));padding:1px 5px;font-size:10px;font-style:normal; }
.admin-ent-strip.is-compact { border:1px dashed hsl(var(--border));background:hsl(var(--muted));padding:10px 12px; }
.admin-seg { display:flex;gap:0; }
.admin-seg button { height:38px;flex:1;border:2px solid hsl(var(--foreground));font-weight:700; }
.admin-seg button + button { border-left-width:0; }
.admin-seg button.is-on { background:hsl(var(--foreground));color:hsl(var(--background)); }
.admin-check-list { display:flex;flex-direction:column;gap:8px; }
.admin-check-list label { display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid hsl(var(--border));padding:10px 12px;font-size:13px;font-weight:700; }
.admin-check-list label.is-disabled { opacity:.55; }
.admin-check-list input { width:16px;height:16px;flex:none;padding:0;accent-color:hsl(var(--primary)); }
.admin-check-list em { margin-left:auto;font-family:var(--font-mono);font-size:10px;font-style:normal;font-weight:400;color:hsl(var(--muted-foreground)); }
.admin-account-who { display:flex;min-width:0;flex-direction:column;gap:4px; }
.admin-account-who b { display:flex;align-items:center;gap:8px;font-size:15px; }
.admin-account-who span { font-family:var(--font-mono);font-size:11px;color:hsl(var(--muted-foreground)); }
.admin-account-tag { border:1px solid hsl(var(--primary));padding:1px 6px;font-family:var(--font-mono);font-size:10px;font-style:normal;color:hsl(var(--primary)); }
.admin-account-actions { display:flex;gap:10px; }
.admin-account-actions button { height:36px;padding:0 12px;font-size:12px; }
.admin-account-log { grid-column:1 / -1;border-top:1px dashed hsl(var(--border));padding-top:12px; }
.admin-grant-log { display:flex;flex-direction:column;gap:10px; }
.admin-grant-log li { display:grid;grid-template-columns:88px minmax(0,1fr);align-items:baseline;gap:12px;border-left:3px solid hsl(var(--border));padding-left:12px; }
.admin-grant-log b { font-family:"Archivo","Noto Sans SC",sans-serif;font-size:16px;color:hsl(var(--primary)); }
.admin-grant-log b.is-negative { color:hsl(var(--destructive)); }
.admin-grant-meta { font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.admin-grant-log p { grid-column:2;margin:2px 0 0;font-size:12px;line-height:1.6; }
.admin-gate { display:flex;min-height:calc(100vh - 60px);flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px;text-align:center; }
.admin-gate h2 { font-family:"Archivo","Noto Sans SC",sans-serif;font-size:32px;font-weight:900; }
.admin-gate p { max-width:420px;color:hsl(var(--muted-foreground)); }
.admin-gate-back { border:2px solid hsl(var(--foreground));padding:10px 18px;font-weight:700;color:hsl(var(--foreground)); }
.admin-gate-actions { display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px; }
.admin-gate-retry { display:inline-flex;align-items:center;gap:6px;border:2px solid hsl(var(--primary));background:hsl(var(--primary));padding:10px 18px;font-weight:700;color:hsl(var(--primary-foreground)); }
.admin-gate-retry:hover { border-color:hsl(var(--foreground));background:hsl(var(--foreground));color:hsl(var(--background)); }
.admin-gate-spinner { width:34px;height:34px;border:3px solid hsl(var(--muted));border-top-color:hsl(var(--primary));border-radius:50%;animation:admin-spin .8s linear infinite; }
@keyframes admin-spin { to { transform:rotate(360deg); } }
@media (max-width:900px) { .admin-subnav,.admin-page { padding-left:20px;padding-right:20px; }.admin-metric-grid { grid-template-columns:1fr 1fr; }.admin-two-col { grid-template-columns:1fr; }.admin-mod-grid { grid-template-columns:1fr 1fr; }.admin-row-style { grid-template-columns:1.4fr 1fr .8fr .8fr; }.admin-row-style span:nth-child(5),.admin-row-style span:nth-child(6) { display:none; }.admin-row-job { grid-template-columns:.8fr 1fr .8fr 2fr; }.admin-row-job span:nth-child(2),.admin-row-job span:nth-child(6) { display:none; }.admin-account-row { grid-template-columns:minmax(0,1fr) max-content; }.admin-quota-breakdown { grid-column:1 / -1; } }
@media (max-width:600px) { .admin-subnav { overflow-x:auto; }.admin-metric-grid,.admin-mod-grid { grid-template-columns:1fr; }.admin-page-head { flex-direction:column;align-items:start; }.admin-row-style { grid-template-columns:1.4fr .8fr .8fr; }.admin-row-style span:nth-child(3) { display:none; }.admin-row-job { grid-template-columns:1fr .8fr 1.6fr; }.admin-row-job span:nth-child(3) { display:none; }.admin-account-row { grid-template-columns:1fr; }.admin-search input { width:100%; }.admin-search { flex:1; } }

/* ---- Unified workbench (统一工作台) ---- */
.wb-page { display:grid;grid-template-columns:380px minmax(0,1fr);max-width:1440px;min-height:calc(100vh - 60px);margin:0 auto; }
.wb-side { position:sticky;top:60px;display:flex;align-self:start;flex-direction:column;height:calc(100vh - 60px);min-width:0;background:hsl(var(--card)); }
.wb-side-body { flex:1;min-height:0;overflow-y:auto;padding:8px 24px 10px; }
/* 常驻区的高度红线：不得超过左栏的 42%，而且必须用百分比 —— 左栏是 100vh-60px，
   写 42vh 实际占到 45%，这个坑踩过两次。现在里面只剩带成本的那个动作，远达不到上限，
   但天花板留着：这一块一旦变大，被挤出屏幕的就是唯一必填的那个框。 */
.wb-side-foot { position:relative;display:flex;flex:0 1 auto;flex-direction:column;min-height:0;max-height:42%;background:hsl(var(--card));padding:14px 24px 18px; }
.wb-side-foot > .wb-generate,.wb-side-foot > .wb-quota-block { flex:none; }
/* 分隔线只在上面真的装不下时出现，并且用不占布局高度的伪元素画：
   真占了 2px 就会「加上线更溢出、去掉线又不溢出」地抗。 */
.wb-side.is-overflowing .wb-side-foot::before { content:"";position:absolute;top:0;right:0;left:0;height:2px;background:hsl(var(--foreground)); }
.wb-main { min-width:0;border-left:2px solid hsl(var(--foreground));padding:30px 36px 100px;background-image:linear-gradient(to right,hsl(var(--border)/.3) 1px,transparent 1px);background-size:5% 100%; }
.wb-step { border-bottom:1px dashed hsl(var(--border));margin-bottom:7px;padding-bottom:7px; }
.wb-step:last-child { border-bottom:0;margin-bottom:0;padding-bottom:0; }
.wb-step-head { display:flex;align-items:center;gap:9px; }
.wb-step-head h2 { margin:0;min-width:0;font-size:14.5px;font-weight:800;letter-spacing:-.02em; }
/* 标题右边的当前状态。它替掉了标题下面那整段说明：不展开也知道这块现在是什么状态。 */
.wb-step-state { margin-left:auto;flex:none;max-width:56%;overflow:hidden;border:1px solid hsl(var(--border));padding:2px 6px;font-family:var(--font-mono);font-size:9.5px;font-style:normal;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground)); }
.wb-step-state.is-need { border-color:hsl(var(--primary));color:hsl(var(--primary)); }
.wb-step-body { display:flex;flex-direction:column;gap:11px;margin-top:9px; }
.wb-fields { display:flex;flex-direction:column;gap:14px; }
.wb-field { display:flex;min-width:0;flex-direction:column;gap:6px; }
.wb-field > span { display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;font-weight:700; }
.wb-field > span em { font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;font-style:normal;font-weight:400;color:hsl(var(--muted-foreground)); }
.wb-field > input,.wb-field > textarea { width:100%;border:1px solid hsl(var(--border));background:hsl(var(--background)/.6);padding:9px 11px;color:hsl(var(--foreground));font-size:13px;line-height:1.6;resize:vertical; }
.wb-field > input:focus,.wb-field > textarea:focus { border-color:hsl(var(--foreground)); }
.wb-seg { display:flex;border:2px solid hsl(var(--foreground)); }
.wb-seg button { display:inline-flex;flex:1;align-items:center;justify-content:center;gap:5px;border:0;background:hsl(var(--card));padding:9px 10px;font-size:12.5px;font-weight:700;color:hsl(var(--muted-foreground)); }
.wb-seg button:not(:last-child) { border-right:2px solid hsl(var(--foreground)); }
.wb-seg button.is-active { background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-seg button:disabled { cursor:default; }
.wb-note { margin:8px 0 0;font-size:11px;line-height:1.6;color:hsl(var(--muted-foreground)); }
.wb-note-warn { border-left:2px solid hsl(var(--destructive));padding-left:8px;color:hsl(var(--destructive)); }
/* 八张画幅卡排成三列：它们同时回答「多大」和「做给哪里用」两件事，所以卡上多一行用途小字。 */
.wb-spec-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
.wb-spec-grid button { display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:0;border:1px solid hsl(var(--border));background:hsl(var(--background)/.55);padding:3px 7px;text-align:left; }
.wb-spec-grid button i { font-family:var(--font-mono);font-size:8.5px;font-style:normal;letter-spacing:.04em;line-height:1.5;color:hsl(var(--muted-foreground)); }
.wb-spec-grid button strong { font-size:11.5px;font-weight:800;letter-spacing:-.02em;line-height:1.25; }
.wb-spec-grid button em { font-family:var(--font-mono);font-size:8.5px;letter-spacing:.04em;line-height:1.5;font-style:normal;color:hsl(var(--muted-foreground)); }
.wb-spec-grid button.is-active { border-color:hsl(var(--foreground));background:hsl(var(--primary)/.1);box-shadow:inset 3px 0 0 hsl(var(--primary)); }
.wb-spec-grid button:disabled { opacity:.5;cursor:not-allowed; }
/* 张数三档共用画幅卡的视觉语言，只是没有那行用途小字，所以排成三等分。 */
.wb-count-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
.wb-count-grid button { display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:0;border:1px solid hsl(var(--border));background:hsl(var(--background)/.55);padding:4px 7px;text-align:left; }
.wb-count-grid button strong { font-size:12.5px;font-weight:800;letter-spacing:-.02em;line-height:1.3; }
.wb-count-grid button em { font-family:var(--font-mono);font-size:8.5px;letter-spacing:.04em;line-height:1.5;font-style:normal;color:hsl(var(--muted-foreground)); }
.wb-count-grid button.is-active { border-color:hsl(var(--foreground));background:hsl(var(--primary)/.1);box-shadow:inset 3px 0 0 hsl(var(--primary)); }
.wb-count-grid button:disabled { opacity:.5;cursor:not-allowed; }
.wb-chips { display:flex;flex-wrap:wrap;gap:6px; }
.wb-chips button { border:1px solid hsl(var(--border));border-radius:999px;background:transparent;padding:5px 10px;font-size:11px;color:hsl(var(--foreground)); }
.wb-chips button.is-active { border-color:hsl(var(--foreground));background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-chips button:disabled { opacity:.5;cursor:not-allowed; }
.wb-more { border:1px dashed hsl(var(--border)); }
.wb-more.is-open { border-style:solid;border-color:hsl(var(--foreground)); }
.wb-more-head { display:flex;width:100%;align-items:center;gap:8px;border:0;background:transparent;padding:9px 11px;font-size:12px;font-weight:700;color:hsl(var(--foreground)); }
.wb-more-head em { flex:1;min-width:0;overflow:hidden;text-align:left;font-family:var(--font-mono);font-size:9.5px;font-style:normal;font-weight:400;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground)); }
.wb-more-head > svg:last-child { flex:none;margin-left:auto;transition:transform .2s ease-out; }
.wb-more.is-open .wb-more-head > svg:last-child { transform:rotate(180deg); }
.wb-more-body { display:flex;flex-direction:column;gap:10px;border-top:1px dashed hsl(var(--border));padding:13px 11px; }
.wb-more-body[hidden] { display:none; }
.wb-more-body .wb-note { margin:0; }
.wb-deliver { display:flex;flex-direction:column; }
.wb-deliver-step { display:flex;align-items:center;gap:10px;margin:24px 0;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;color:hsl(var(--muted-foreground)); }
.wb-deliver-step::before,.wb-deliver-step::after { content:"";height:2px;background:hsl(var(--border)); }
.wb-deliver-step::before { flex:none;width:26px; }
.wb-deliver-step::after { flex:1; }
.wb-ref { display:flex;align-items:center;gap:10px;border:1px dashed hsl(var(--border));background:hsl(var(--background)/.5);padding:8px 10px; }
.wb-ref img { width:40px;height:40px;flex:none;border:1px solid hsl(var(--border));-o-object-fit:cover;object-fit:cover; }
.wb-ref span { flex:1;font-size:11px;line-height:1.5;color:hsl(var(--muted-foreground)); }
.wb-ref button { display:grid;flex:none;place-items:center;width:26px;height:26px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground)); }
.wb-ref button:hover { border-color:hsl(var(--destructive));color:hsl(var(--destructive)); }
.wb-drop { display:flex;width:100%;min-height:132px;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;border:2px dashed hsl(var(--secondary));background:hsl(var(--background)/.55);padding:12px;color:hsl(var(--foreground)); }
.wb-drop img { max-height:220px;max-width:100%;-o-object-fit:contain;object-fit:contain; }
.wb-drop strong { font-size:13px;font-weight:800; }
.wb-drop small { font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.wb-drop:disabled { opacity:.6;cursor:not-allowed; }
/* 横向的拖入区：竖着排要一百三十多像素，而左栏要在一屏里装完四块。 */
.wb-drop-row { min-height:0;flex-direction:row;align-items:center;justify-content:flex-start;gap:11px;padding:9px 12px;text-align:left; }
.wb-drop-row > svg { flex:none; }
.wb-drop-row > span { display:flex;min-width:0;flex-direction:column;gap:1px; }
.wb-drop-row strong { font-size:12.5px; }
.wb-drop-row small { font-size:9.5px;line-height:1.5; }
/* 照片起稿的原图得看得清，不能为了凑到一屏把预览压成一条。 */
.wb-drop-photo { min-height:104px;padding:10px; }
.wb-drop-photo img { max-height:136px; }
/* 必含素材收成这一行：收起时只说当前状态，完整的编辑器在窗口里。 */
.wb-assets-row { display:flex;width:100%;align-items:center;gap:9px;border:1px dashed hsl(var(--border));background:hsl(var(--background)/.5);padding:8px 11px;text-align:left;color:hsl(var(--foreground)); }
.wb-assets-row:hover:not(:disabled) { border-color:hsl(var(--foreground)); }
.wb-assets-row:disabled { opacity:.6;cursor:not-allowed; }
.wb-assets-row > svg { flex:none; }
.wb-assets-row strong { flex:none;font-size:12.5px;font-weight:800; }
.wb-assets-row small { margin-left:auto;min-width:0;overflow:hidden;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;color:hsl(var(--muted-foreground)); }
.wb-assets-thumbs { display:flex;flex:none;gap:3px; }
.wb-assets-thumbs img { width:26px;height:26px;border:1px solid hsl(var(--border));-o-object-fit:cover;object-fit:cover; }
.wb-assets-thumbs i { display:grid;place-items:center;width:26px;height:26px;border:1px solid hsl(var(--border));font-family:var(--font-mono);font-size:9.5px;font-style:normal;color:hsl(var(--muted-foreground)); }
.wb-btn-primary,.wb-btn-ghost { display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;border:2px solid hsl(var(--foreground));padding:0 14px;font-size:13px;font-weight:700; }
.wb-btn-primary { background:hsl(var(--primary));color:hsl(var(--primary-foreground)); }
.wb-btn-ghost { background:transparent;color:hsl(var(--foreground)); }
.wb-btn-primary:disabled,.wb-btn-ghost:disabled { opacity:.5;cursor:not-allowed; }
.wb-generate .wb-btn-primary { width:100%;height:46px;font-size:14px; }
.wb-cost { margin:10px 0 0;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:hsl(var(--muted-foreground)); }
.wb-cost b { font-size:13px;color:hsl(var(--foreground)); }
.wb-quota-block { border-left:3px solid hsl(var(--accent));background:hsl(var(--muted));padding:14px; }
.wb-quota-block > p:first-child { margin:0;font-size:12.5px;font-weight:700;line-height:1.6; }
.wb-quota-block .wb-btn-primary { width:100%;margin-top:12px; }
/* 第一步就这一个框：输入区、字数、两个动作、建议稿、历史全包在同一个硬边框里，
   看起来就是一块而不是四个控件。 */
.wb-brief { display:flex;flex-direction:column;border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
/* 高度写死、不让手拉：拉高了就把下面三块顶出一屏。长文案在框内部自己滚。
   必须给 height 而不是 min-height：rows 算出来的固有高度会盖过 min-height（实测 rows=6 时是 155px）。 */
.wb-brief > textarea { width:100%;height:118px;border:0;background:transparent;padding:11px 13px;color:hsl(var(--foreground));font-size:13px;line-height:1.7;outline:none;overflow-y:auto;resize:none; }
.wb-brief > textarea::-moz-placeholder { font-size:12px;line-height:1.7;color:hsl(var(--muted-foreground)/.8); }
.wb-brief > textarea::placeholder { font-size:12px;line-height:1.7;color:hsl(var(--muted-foreground)/.8); }
.wb-brief > textarea:disabled { opacity:.6; }
.wb-brief-meta { display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px dashed hsl(var(--border));padding:6px 12px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em;color:hsl(var(--muted-foreground)); }
.wb-brief-meta > span:first-child { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.wb-brief-acts { display:flex;border-top:2px solid hsl(var(--foreground)); }
.wb-brief-acts > button { display:inline-flex;flex:1;align-items:center;justify-content:center;gap:6px;background:hsl(var(--card));padding:9px 8px;font-size:12px;font-weight:700;color:hsl(var(--foreground)); }
.wb-brief-acts > button:first-child { border-right:2px solid hsl(var(--foreground)); }
.wb-brief-acts > button:disabled { opacity:.45;cursor:not-allowed; }
.wb-brief-acts > button.is-open { background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-brief-suggest { border-top:2px solid hsl(var(--primary));background:hsl(var(--primary)/.06); }
.wb-brief-suggest > header { display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid hsl(var(--primary)/.3);padding:6px 12px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;color:hsl(var(--primary)); }
.wb-brief-suggest > header button { display:inline-flex;align-items:center;gap:3px;color:hsl(var(--primary)); }
.wb-brief-suggest > div { display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:11px 12px; }
.wb-brief-suggest > div > p { margin:0;font-size:12.5px;line-height:1.8;white-space:pre-wrap; }
.wb-brief-holes { width:100%;border:1px solid hsl(var(--destructive)/.4);background:hsl(var(--destructive)/.05);padding:7px 9px; }
.wb-brief-holes > p { margin:0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;color:hsl(var(--destructive)); }
.wb-brief-holes ul { display:flex;flex-wrap:wrap;gap:6px;margin:5px 0 0;padding:0;list-style:none; }
.wb-brief-holes li { border:1px solid hsl(var(--destructive)/.4);padding:1px 5px;font-size:11px;color:hsl(var(--destructive)); }
.wb-brief-history { display:flex;flex-direction:column;gap:9px;border-top:1px dashed hsl(var(--border));padding:11px 12px; }
.wb-brief-suggest .wb-note { margin:0; }
/* 起稿方式不再是一道选择题，只是素材那一步底下的一行小字。 */
.wb-switch-line { display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0;border:1px dashed hsl(var(--border));padding:8px 10px;font-size:11.5px;line-height:1.7;color:hsl(var(--muted-foreground)); }
.wb-switch-line > svg { flex:none; }
/* 可跳过的那一步不占一整块：入口跟在句尾，不把第一屏撑开。 */
.wb-inline-link { display:inline-flex;align-items:center;gap:4px;margin-left:4px;border-bottom:1px solid hsl(var(--foreground));font-size:11.5px;font-weight:700;color:hsl(var(--foreground));vertical-align:baseline; }
.wb-inline-link:disabled { opacity:.5;cursor:not-allowed; }
.wb-load-error { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border:1px solid hsl(var(--destructive)/.5);background:hsl(var(--destructive)/.06);margin-bottom:14px;padding:10px 14px; }
.wb-load-error p { flex:1;min-width:240px;margin:0;font-size:11.5px;line-height:1.6;color:hsl(var(--foreground)); }
.wb-load-error .wb-btn-ghost { flex:none;height:32px;font-size:12px; }
.wb-stage-empty .wb-btn-ghost { flex:none; }
.wb-round-head { display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px; }
.wb-block-title { margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:hsl(var(--muted-foreground)); }
.wb-round-head h2 { margin:7px 0 0;font-family:"Archivo","Noto Sans SC",sans-serif;font-size:clamp(26px,2.6vw,38px);font-weight:900;letter-spacing:-.04em;line-height:1.02; }
.wb-rounds { display:flex;align-items:center;gap:8px;border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:6px 10px; }
.wb-rounds > button { display:grid;flex:none;place-items:center;width:28px;height:28px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground)); }
.wb-rounds > button:disabled { opacity:.35;cursor:not-allowed; }
.wb-rounds-list { display:flex;max-width:200px;gap:4px;overflow-x:auto; }
.wb-rounds-list button { flex:none;min-width:28px;height:28px;border:1px solid hsl(var(--border));background:hsl(var(--background));font-family:var(--font-mono);font-size:11px;color:hsl(var(--foreground)); }
.wb-rounds-list button.is-active { border-color:hsl(var(--foreground));background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-rounds p { display:flex;flex-direction:column;margin:0 0 0 4px;font-family:var(--font-mono);font-size:10px;line-height:1.4;white-space:nowrap;color:hsl(var(--muted-foreground)); }
.wb-rounds p em { font-style:normal;font-weight:700;color:hsl(var(--foreground)); }
.wb-progress { display:flex;align-items:center;gap:12px;margin-bottom:14px; }
.wb-progress-track { flex:1;height:8px;border:1px solid hsl(var(--border));background:hsl(var(--muted)); }
.wb-progress-track i { display:block;height:100%;background:hsl(var(--primary));transition:width .4s cubic-bezier(.16,1,.3,1); }
.wb-progress span { font-family:var(--font-mono);font-size:10.5px;white-space:nowrap;color:hsl(var(--muted-foreground)); }
.wb-cand-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px; }
/* 这一轮只出 1 张或 2 张时不留空格子：留着会让人以为另外几版还在生成。
   格子跟着张数变宽，但压一个上限，一张图不该铺满整条主区。 */
.wb-cand-grid.is-count-1 { grid-template-columns:minmax(0,340px); }
.wb-cand-grid.is-count-2 { grid-template-columns:repeat(2,minmax(0,340px)); }
.wb-cand { display:flex;min-width:0;flex-direction:column;border:2px solid hsl(var(--foreground));background:hsl(var(--card)); }
.wb-cand.is-primary { border-color:hsl(var(--primary)); }
.wb-cand.is-selected { outline:2px solid hsl(var(--primary));outline-offset:2px; }
.wb-cand-art { position:relative;display:grid;width:100%;aspect-ratio:3/4;place-items:center;overflow:hidden;border:0;border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted));padding:0; }
.wb-cand-art img { width:100%;height:100%;-o-object-fit:contain;object-fit:contain; }
.wb-cand-art:disabled { cursor:default; }
.wb-cand-state { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;text-align:center;font-size:11px;line-height:1.5;color:hsl(var(--muted-foreground)); }
.wb-cand-state.is-failed { color:hsl(var(--destructive)); }
.wb-cand-no { position:absolute;top:0;left:0;background:hsl(var(--foreground));padding:3px 7px;font-family:var(--font-mono);font-size:10px;font-style:normal;letter-spacing:.08em;color:hsl(var(--background)); }
.wb-cand-flag { position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:3px;background:hsl(var(--primary));padding:3px 7px;font-family:var(--font-mono);font-size:9px;font-weight:400;letter-spacing:.06em;color:hsl(var(--primary-foreground)); }
.wb-cand-meta { padding:10px 12px; }
.wb-cand-meta strong { display:block;overflow:hidden;font-size:12.5px;font-weight:800;text-overflow:ellipsis;white-space:nowrap; }
.wb-cand-meta p { display:-webkit-box;overflow:hidden;margin:4px 0 0;font-size:11px;line-height:1.5;color:hsl(var(--muted-foreground));-webkit-box-orient:vertical;-webkit-line-clamp:2; }
.wb-cand-actions { display:grid;grid-template-columns:1fr 1fr;border-top:1px solid hsl(var(--border));margin-top:auto; }
.wb-cand-actions button { display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;padding:9px 6px;font-size:11px;color:hsl(var(--foreground)); }
.wb-cand-actions button:first-child { grid-column:1/-1;border-bottom:1px solid hsl(var(--border));font-weight:700; }
.wb-cand-actions button:last-child { border-left:1px solid hsl(var(--border)); }
.wb-cand-actions button:hover:not(:disabled) { background:hsl(var(--muted)); }
.wb-cand-actions button:disabled { opacity:.45;cursor:not-allowed; }
.wb-cand-actions .is-primary-action { color:hsl(var(--primary)); }
.wb-stage { margin-top:26px;border:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:22px; }
.wb-stage-head { display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;border-bottom:1px solid hsl(var(--border));margin-bottom:16px;padding-bottom:14px; }
.wb-stage-head h2 { margin:6px 0 0;font-size:20px;font-weight:900;letter-spacing:-.03em; }
.wb-tag { display:inline-flex;align-items:center;gap:5px;border:1px solid hsl(var(--border));padding:4px 9px;font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.wb-tag.is-on { border-color:hsl(var(--primary));color:hsl(var(--primary)); }
.wb-stage-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;border:1px dashed hsl(var(--border));background:hsl(var(--card));padding:32px;text-align:center; }
.wb-stage-empty p { max-width:520px;margin:0;font-size:13px;line-height:1.75;color:hsl(var(--muted-foreground)); }
.wb-main > div + .wb-stage-empty { margin-top:26px; }
/* 主稿区四块全部摊开，这条只是目录：粘在全局顶栏下方，滚到哪一块就高亮哪一块。 */
/* 分段条 + 右侧总览。圆角没搬过来：这一套视觉身份是硬边框直角，只搬布局与密度。 */
.wb-anchors { position:sticky;top:60px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;border-bottom:2px solid hsl(var(--foreground));background:hsl(var(--card));padding:9px 0; }
.wb-anchor-pills { display:flex;flex-wrap:wrap;border:2px solid hsl(var(--foreground)); }
.wb-anchor-pills > button { display:flex;align-items:baseline;gap:6px;background:hsl(var(--card));padding:7px 14px;font-size:12.5px;font-weight:700;color:hsl(var(--muted-foreground)); }
.wb-anchor-pills > button:not(:last-child) { border-right:2px solid hsl(var(--foreground)); }
.wb-anchor-pills > button em { font-family:var(--font-mono);font-size:9.5px;font-style:normal;letter-spacing:.05em;color:hsl(var(--muted-foreground)); }
.wb-anchor-pills > button.is-active { background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-anchor-pills > button.is-active em { color:hsl(var(--background)/.7); }
.wb-anchor-pills > button:hover:not(.is-active) { color:hsl(var(--foreground)); }
.wb-anchor-status { font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:hsl(var(--muted-foreground)); }
.wb-stage-hint { margin:0;border:1px dashed hsl(var(--border));background:hsl(var(--background)/.5);padding:13px 15px;font-size:12px;line-height:1.85;color:hsl(var(--muted-foreground)); }
.wb-stage-blocks { display:flex;flex-direction:column;gap:34px;padding-top:22px; }
/* 锚点跳过去时要让区块标题落在粘住的目录条下面，不能被它压住。 */
.wb-stage-block { scroll-margin-top:112px; }
/* 四块堆在一起后，每块靠「标签 + 一条横线」分开 —— 和交付区里那条分隔用的是同一套写法。 */
.wb-block-head { display:flex;align-items:center;gap:10px;margin:0 0 14px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.14em;color:hsl(var(--foreground)); }
.wb-block-head::after { content:"";flex:1;height:2px;background:hsl(var(--border)); }
.wb-stage-flags { display:flex;flex-wrap:wrap;align-items:center;gap:8px; }
.wb-pub-badge { display:inline-flex;align-items:center;gap:5px;border:1px solid hsl(var(--border));padding:4px 9px;font-family:var(--font-mono);font-size:10px;color:hsl(var(--muted-foreground)); }
.wb-pub-badge.is-ok { border-color:hsl(var(--foreground));background:hsl(var(--foreground));color:hsl(var(--background)); }
.wb-pub-badge.is-partial { border-color:hsl(var(--foreground));color:hsl(var(--foreground)); }
.wb-pub-badge.is-alert { border-color:hsl(var(--destructive));color:hsl(var(--destructive)); }
/* 六项检查压成三列：三加三两行就全看完，不必滚。列窄了标签会换行，所以格内竖排。
   列数必须写死三，不能用 auto-fit：主列在 1440 下有近 990px，auto-fit 会自己排成
   四列，六项变成四加二 —— 行数没省，第二行还缺一块，比三加三难看。 */
.wb-check-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px; }
/* 三块：到位了没 / 自动未通过 / 人工待确认。后两件事的代价完全不同，不能挤成一句。 */
.wb-check-bar { border:1px solid hsl(var(--border));background:hsl(var(--muted)/.4);padding:9px 11px; }
.wb-check-bar-cells { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px; }
.wb-check-cell { display:flex;min-width:0;flex-direction:column;gap:3px;border-left:3px solid hsl(var(--border));padding-left:9px; }
.wb-check-cell strong { display:flex;align-items:center;gap:5px;font-size:12px;font-weight:800; }
.wb-check-cell em { font-family:var(--font-mono);font-size:9.5px;font-style:normal;letter-spacing:.04em;line-height:1.5;color:hsl(var(--muted-foreground)); }
.wb-check-cell.is-clear { border-left-color:hsl(var(--foreground)); }
.wb-check-cell.is-bad { border-left-color:hsl(var(--destructive)); }
.wb-check-cell.is-bad strong { color:hsl(var(--destructive)); }
.wb-check-cell.is-todo { border-left-color:hsl(var(--accent)); }
.wb-check-bar-stats { display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;border-top:1px dashed hsl(var(--border));padding-top:7px;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:hsl(var(--muted-foreground)); }
/* 现场物料横排：四张就是一行四张，每张自带规格与自己的按钮。 */
.wb-derived-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px; }
/* 只在真的排不下的窗口才退列。中间不动：侧栏在 1100 以下已经堆到上方，
   主列反而变成全宽，写中间断点只会把本来放得下的列数白白打掉。 */
@media (max-width:700px) { .wb-check-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.wb-derived-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.wb-check-bar-cells { grid-template-columns:minmax(0,1fr); } }
@media (max-width:480px) { .wb-check-grid,.wb-derived-grid { grid-template-columns:minmax(0,1fr); } }
.wb-rework { display:flex;flex-direction:column;gap:18px; }
.wb-rework-bar { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;border:1px dashed hsl(var(--border));background:hsl(var(--muted));padding:10px 14px; }
.wb-rework-bar span { font-size:11.5px;color:hsl(var(--muted-foreground)); }
.wb-intro { max-width:1040px; }
.wb-intro h1 { margin:14px 0 20px;font-family:"Archivo","Noto Sans SC",sans-serif;font-size:clamp(32px,3.8vw,58px);font-weight:900;letter-spacing:-.05em;line-height:1; }
.wb-intro h1 em { color:hsl(var(--primary));font-style:normal; }
.wb-intro-lead { max-width:600px;margin:0 0 30px;font-size:14.5px;line-height:1.75;color:hsl(var(--muted-foreground)); }
.wb-slot-preview { margin-bottom:14px; }
.wb-slot-ghost { display:grid;aspect-ratio:3/4;place-items:center;border:2px dashed hsl(var(--border));background:hsl(var(--card)/.45); }
.wb-slot-ghost b { font-family:"Archivo",sans-serif;font-size:clamp(22px,2.4vw,34px);font-weight:900;letter-spacing:-.04em;color:hsl(var(--border)); }
.wb-slot-note { margin:0 0 28px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;color:hsl(var(--muted-foreground)); }
.wb-intro .proof-section { margin-top:56px; }
@media (max-width:1240px) { .wb-cand-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.wb-cand-grid.is-count-1 { grid-template-columns:minmax(0,340px); } }
/* 桌面宽度但视口短（笔记本常见的 768/800 高）时再挤一档，尽量不让它开始滚。 */
@media (min-width:1101px) and (max-height:860px) {
  .wb-side-body { padding:6px 24px 6px; }
  .wb-step { margin-bottom:4px;padding-bottom:4px; }
  .wb-step-body { gap:8px;margin-top:6px; }
  .wb-brief > textarea { height:90px; }
  .wb-brief-meta { padding:4px 12px; }
  .wb-drop-row { padding:6px 11px; }
  .wb-drop-photo { min-height:88px; }
  .wb-assets-row { padding:5px 10px; }
  .wb-spec-grid button { padding:2px 6px; }
  .wb-side-foot { padding:11px 24px 13px; }
}
@media (max-width:1100px) { .wb-page { grid-template-columns:minmax(0,1fr); }.wb-side { position:static;height:auto;border-bottom:2px solid hsl(var(--foreground)); }.wb-side-body { overflow:visible;padding:24px 20px 20px; }
  /* 窄屏下左栏排在上方、可能很长，常驻区改成贴着视口底部跟着走，否则按钮会掉到屏幕外；
     同时取消内部滑动，避免页面滑动与内部滑动套在一起。这个断点里它盖在内容上面，
     所以分隔线不看溢出、一直画。 */
  .wb-side-foot { position:sticky;bottom:0;z-index:30;max-height:none;padding:16px 20px 20px; }.wb-side-foot::before { content:"";position:absolute;top:0;right:0;left:0;height:2px;background:hsl(var(--foreground)); }.wb-main { border-left:0;padding:26px 20px 110px; } }
@media (max-width:767px) { .wb-side-foot { bottom:64px; } }
@media (max-width:640px) { .wb-cand-grid { grid-template-columns:1fr; }.wb-slot-preview { grid-template-columns:repeat(2,minmax(0,1fr)); }.wb-stage { padding:16px; }.wb-round-head { align-items:flex-start;flex-direction:column;gap:12px; }.wb-rounds-list { max-width:130px; } }

@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important; } }

.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: 0.875rem;
  line-height: 1.25rem;
}

.file\:font-medium::file-selector-button{
  font-weight: 500;
}

.file\:text-foreground::file-selector-button{
  color: hsl(var(--foreground));
}

.placeholder\:text-muted-foreground::-moz-placeholder{
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-muted-foreground::placeholder{
  color: hsl(var(--muted-foreground));
}

.after\:absolute::after{
  content: var(--tw-content);
  position: absolute;
}

.after\:inset-y-0::after{
  content: var(--tw-content);
  top: 0px;
  bottom: 0px;
}

.after\:left-1\/2::after{
  content: var(--tw-content);
  left: 50%;
}

.after\:w-1::after{
  content: var(--tw-content);
  width: 0.25rem;
}

.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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.first\:rounded-l-md:first-child{
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.first\:border-l:first-child{
  border-left-width: 1px;
}

.last\:rounded-r-md:last-child{
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.last\:border-b-0:last-child{
  border-bottom-width: 0px;
}

.hover\:border-foreground:hover{
  border-color: hsl(var(--foreground));
}

.hover\:border-primary:hover{
  border-color: hsl(var(--primary));
}

.hover\:bg-accent:hover{
  background-color: hsl(var(--accent));
}

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

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

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

.hover\:bg-muted:hover{
  background-color: hsl(var(--muted));
}

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

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

.hover\:bg-primary:hover{
  background-color: hsl(var(--primary));
}

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

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

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

.hover\:text-accent-foreground:hover{
  color: hsl(var(--accent-foreground));
}

.hover\:text-blue-700:hover{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.hover\:text-destructive:hover{
  color: hsl(var(--destructive));
}

.hover\:text-foreground:hover{
  color: hsl(var(--foreground));
}

.hover\:text-muted-foreground:hover{
  color: hsl(var(--muted-foreground));
}

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

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

.hover\:ring-4:hover{
  --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(4px + 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\:border-foreground:focus{
  border-color: hsl(var(--foreground));
}

.focus\:bg-accent:focus{
  background-color: hsl(var(--accent));
}

.focus\:text-accent-foreground:focus{
  color: hsl(var(--accent-foreground));
}

.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-color: hsl(var(--ring));
}

.focus\:ring-offset-2:focus{
  --tw-ring-offset-width: 2px;
}

.focus-visible\:border-ring:focus-visible{
  border-color: hsl(var(--ring));
}

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

.focus-visible\:outline-1:focus-visible{
  outline-width: 1px;
}

.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-4: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(4px + 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-\[3px\]: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(3px + 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-color: hsl(var(--ring));
}

.focus-visible\:ring-ring\/50:focus-visible{
  --tw-ring-color: hsl(var(--ring) / 0.5);
}

.focus-visible\:ring-offset-1:focus-visible{
  --tw-ring-offset-width: 1px;
}

.focus-visible\:ring-offset-2:focus-visible{
  --tw-ring-offset-width: 2px;
}

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

.disabled\:cursor-not-allowed:disabled{
  cursor: not-allowed;
}

.disabled\:opacity-100:disabled{
  opacity: 1;
}

.disabled\:opacity-30:disabled{
  opacity: 0.3;
}

.disabled\:opacity-40:disabled{
  opacity: 0.4;
}

.disabled\:opacity-45:disabled{
  opacity: 0.45;
}

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

.disabled\:opacity-60:disabled{
  opacity: 0.6;
}

.group:hover .group-hover\:grid{
  display: grid;
}

.peer:disabled ~ .peer-disabled\:cursor-not-allowed{
  cursor: not-allowed;
}

.peer:disabled ~ .peer-disabled\:opacity-70{
  opacity: 0.7;
}

.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){
  grid-template-columns: calc(var(--spacing) * 4) 1fr;
}

.has-\[\>svg\]\:gap-x-3:has(>svg){
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}

.has-\[\:focus\]\:border-ring:has(:focus){
  border-color: hsl(var(--ring));
}

.has-\[\:disabled\]\:opacity-50:has(:disabled){
  opacity: 0.5;
}

.has-\[\:focus\]\:ring-\[3px\]:has(: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(3px + 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);
}

.has-\[\:focus\]\:ring-ring\/50:has(:focus){
  --tw-ring-color: hsl(var(--ring) / 0.5);
}

.aria-disabled\:opacity-50[aria-disabled="true"]{
  opacity: 0.5;
}

.aria-selected\:text-muted-foreground[aria-selected="true"]{
  color: hsl(var(--muted-foreground));
}

.data-\[disabled\=true\]\:pointer-events-none[data-disabled="true"]{
  pointer-events: none;
}

.data-\[disabled\]\:pointer-events-none[data-disabled]{
  pointer-events: none;
}

.data-\[active\=true\]\:z-10[data-active="true"]{
  z-index: 10;
}

.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation="horizontal"]{
  height: 0.375rem;
}

.data-\[orientation\=horizontal\]\:h-full[data-orientation="horizontal"]{
  height: 100%;
}

.data-\[orientation\=horizontal\]\:h-px[data-orientation="horizontal"]{
  height: 1px;
}

.data-\[orientation\=vertical\]\:h-full[data-orientation="vertical"]{
  height: 100%;
}

.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction="vertical"]{
  height: 1px;
}

.data-\[orientation\=vertical\]\:min-h-44[data-orientation="vertical"]{
  min-height: 11rem;
}

.data-\[orientation\=horizontal\]\:w-full[data-orientation="horizontal"]{
  width: 100%;
}

.data-\[orientation\=vertical\]\:w-1\.5[data-orientation="vertical"]{
  width: 0.375rem;
}

.data-\[orientation\=vertical\]\:w-auto[data-orientation="vertical"]{
  width: auto;
}

.data-\[orientation\=vertical\]\:w-full[data-orientation="vertical"]{
  width: 100%;
}

.data-\[orientation\=vertical\]\:w-px[data-orientation="vertical"]{
  width: 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: 0.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));
}

.data-\[side\=left\]\:-translate-x-1[data-side="left"]{
  --tw-translate-x: -0.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));
}

.data-\[side\=right\]\:translate-x-1[data-side="right"]{
  --tw-translate-x: 0.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));
}

.data-\[side\=top\]\:-translate-y-1[data-side="top"]{
  --tw-translate-y: -0.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));
}

.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state="checked"]{
  --tw-translate-x: calc(100% - 2px);
  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));
}

.data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"]{
  --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));
}

@keyframes accordion-up{
  from{
    height: var(--radix-accordion-content-height);
  }
  to{
    height: 0;
  }
}

.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"]{
  animation: accordion-up 0.2s ease-out;
}

@keyframes accordion-down{
  from{
    height: 0;
  }
  to{
    height: var(--radix-accordion-content-height);
  }
}

.data-\[state\=open\]\:animate-accordion-down[data-state="open"]{
  animation: accordion-down 0.2s ease-out;
}

.data-\[orientation\=vertical\]\:flex-col[data-orientation="vertical"]{
  flex-direction: column;
}

.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction="vertical"]{
  flex-direction: column;
}

.data-\[range-end\=true\]\:rounded-md[data-range-end="true"]{
  border-radius: calc(var(--radius) - 2px);
}

.data-\[range-middle\=true\]\:rounded-none[data-range-middle="true"]{
  border-radius: 0px;
}

.data-\[range-start\=true\]\:rounded-md[data-range-start="true"]{
  border-radius: calc(var(--radius) - 2px);
}

.data-\[selected\=true\]\:rounded-none[data-selected="true"]{
  border-radius: 0px;
}

.data-\[range-end\=true\]\:rounded-r-md[data-range-end="true"]{
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.data-\[range-start\=true\]\:rounded-l-md[data-range-start="true"]{
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.data-\[active\=true\]\:border-ring[data-active="true"]{
  border-color: hsl(var(--ring));
}

.data-\[active\=true\]\:bg-accent\/50[data-active="true"]{
  background-color: hsl(var(--accent) / 0.5);
}

.data-\[range-end\=true\]\:bg-primary[data-range-end="true"]{
  background-color: hsl(var(--primary));
}

.data-\[range-middle\=true\]\:bg-accent[data-range-middle="true"]{
  background-color: hsl(var(--accent));
}

.data-\[range-start\=true\]\:bg-primary[data-range-start="true"]{
  background-color: hsl(var(--primary));
}

.data-\[selected-single\=true\]\:bg-primary[data-selected-single="true"]{
  background-color: hsl(var(--primary));
}

.data-\[selected\=true\]\:bg-accent[data-selected="true"]{
  background-color: hsl(var(--accent));
}

.data-\[state\=active\]\:bg-background[data-state="active"]{
  background-color: hsl(var(--background));
}

.data-\[state\=active\]\:bg-foreground[data-state="active"]{
  background-color: hsl(var(--foreground));
}

.data-\[state\=checked\]\:bg-primary[data-state="checked"]{
  background-color: hsl(var(--primary));
}

.data-\[state\=on\]\:bg-accent[data-state="on"]{
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:bg-accent[data-state="open"]{
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:bg-accent\/50[data-state="open"]{
  background-color: hsl(var(--accent) / 0.5);
}

.data-\[state\=open\]\:bg-secondary[data-state="open"]{
  background-color: hsl(var(--secondary));
}

.data-\[state\=selected\]\:bg-muted[data-state="selected"]{
  background-color: hsl(var(--muted));
}

.data-\[state\=unchecked\]\:bg-input[data-state="unchecked"]{
  background-color: hsl(var(--input));
}

.data-\[inset\]\:pl-8[data-inset]{
  padding-left: 2rem;
}

.data-\[active\=true\]\:text-accent-foreground[data-active="true"]{
  color: hsl(var(--accent-foreground));
}

.data-\[error\=true\]\:text-destructive[data-error="true"]{
  color: hsl(var(--destructive));
}

.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{
  color: hsl(var(--muted-foreground));
}

.data-\[range-end\=true\]\:text-primary-foreground[data-range-end="true"]{
  color: hsl(var(--primary-foreground));
}

.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle="true"]{
  color: hsl(var(--accent-foreground));
}

.data-\[range-start\=true\]\:text-primary-foreground[data-range-start="true"]{
  color: hsl(var(--primary-foreground));
}

.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single="true"]{
  color: hsl(var(--primary-foreground));
}

.data-\[selected\=true\]\:text-accent-foreground[data-selected="true"]{
  color: hsl(var(--accent-foreground));
}

.data-\[state\=active\]\:text-background[data-state="active"]{
  color: hsl(var(--background));
}

.data-\[state\=active\]\:text-foreground[data-state="active"]{
  color: hsl(var(--foreground));
}

.data-\[state\=checked\]\:text-primary-foreground[data-state="checked"]{
  color: hsl(var(--primary-foreground));
}

.data-\[state\=on\]\:text-accent-foreground[data-state="on"]{
  color: hsl(var(--accent-foreground));
}

.data-\[state\=open\]\:text-accent-foreground[data-state="open"]{
  color: hsl(var(--accent-foreground));
}

.data-\[state\=open\]\:text-muted-foreground[data-state="open"]{
  color: hsl(var(--muted-foreground));
}

.data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"]{
  color: hsl(var(--destructive));
}

.data-\[disabled\=true\]\:opacity-50[data-disabled="true"]{
  opacity: 0.5;
}

.data-\[disabled\]\:opacity-50[data-disabled]{
  opacity: 0.5;
}

.data-\[state\=active\]\:shadow-sm[data-state="active"]{
  --tw-shadow: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[active\=true\]\:ring-\[3px\][data-active="true"]{
  --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(3px + 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);
}

.data-\[active\=true\]\:ring-ring\/50[data-active="true"]{
  --tw-ring-color: hsl(var(--ring) / 0.5);
}

.data-\[state\=closed\]\:duration-300[data-state="closed"]{
  transition-duration: 300ms;
}

.data-\[state\=open\]\:duration-500[data-state="open"]{
  transition-duration: 500ms;
}

.data-\[motion\^\=from-\]\:animate-in[data-motion^="from-"]{
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.data-\[state\=open\]\:animate-in[data-state="open"]{
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.data-\[state\=visible\]\:animate-in[data-state="visible"]{
  animation-name: enter;
  animation-duration: 150ms;
  --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-"]{
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[state\=closed\]\:animate-out[data-state="closed"]{
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.data-\[state\=hidden\]\:animate-out[data-state="hidden"]{
  animation-name: exit;
  animation-duration: 150ms;
  --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-"]{
  --tw-exit-opacity: 0;
}

.data-\[state\=closed\]\:fade-out-0[data-state="closed"]{
  --tw-exit-opacity: 0;
}

.data-\[state\=hidden\]\:fade-out[data-state="hidden"]{
  --tw-exit-opacity: 0;
}

.data-\[state\=open\]\:fade-in-0[data-state="open"]{
  --tw-enter-opacity: 0;
}

.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: -0.5rem;
}

.data-\[side\=left\]\:slide-in-from-right-2[data-side="left"]{
  --tw-enter-translate-x: 0.5rem;
}

.data-\[side\=right\]\:slide-in-from-left-2[data-side="right"]{
  --tw-enter-translate-x: -0.5rem;
}

.data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"]{
  --tw-enter-translate-y: 0.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"]{
  --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\=closed\]\:duration-300[data-state="closed"]{
  animation-duration: 300ms;
}

.data-\[state\=open\]\:duration-500[data-state="open"]{
  animation-duration: 500ms;
}

.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot="alert-description"] > *{
  color: hsl(var(--destructive) / 0.9);
}

.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction="vertical"]::after{
  content: var(--tw-content);
  left: 0px;
}

.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction="vertical"]::after{
  content: var(--tw-content);
  height: 0.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)) skewX(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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[active\=true\]\:hover\:bg-accent:hover[data-active="true"]{
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:hover\:bg-accent:hover[data-state="open"]{
  background-color: hsl(var(--accent));
}

.data-\[active\=true\]\:focus\:bg-accent:focus[data-active="true"]{
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:focus\:bg-accent:focus[data-state="open"]{
  background-color: hsl(var(--accent));
}

.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant="destructive"]{
  background-color: hsl(var(--destructive) / 0.1);
}

.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant="destructive"]{
  color: hsl(var(--destructive));
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:relative{
  position: relative;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{
  top: 100%;
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:z-10{
  z-index: 10;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{
  margin-top: 0.375rem;
}

.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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{
  overflow: hidden;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{
  border-radius: calc(var(--radius) - 2px);
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:border{
  border-width: 1px;
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:border-ring{
  border-color: hsl(var(--ring));
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{
  background-color: hsl(var(--popover));
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{
  color: hsl(var(--popover-foreground));
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:shadow{
  --tw-shadow: var(--shadow);
  --tw-shadow-colored: var(--shadow);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{
  --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(3px + 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);
}

.group\/day[data-focused="true"] .group-data-\[focused\=true\]\/day\:ring-ring\/50{
  --tw-ring-color: hsl(var(--ring) / 0.5);
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{
  transition-duration: 200ms;
  animation-duration: 200ms;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state="open"]{
  animation-name: enter;
  animation-duration: 150ms;
  --tw-enter-opacity: initial;
  --tw-enter-scale: initial;
  --tw-enter-rotate: initial;
  --tw-enter-translate-x: initial;
  --tw-enter-translate-y: initial;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state="closed"]{
  animation-name: exit;
  animation-duration: 150ms;
  --tw-exit-opacity: initial;
  --tw-exit-scale: initial;
  --tw-exit-rotate: initial;
  --tw-exit-translate-x: initial;
  --tw-exit-translate-y: initial;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state="closed"]{
  --tw-exit-opacity: 0;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state="open"]{
  --tw-enter-opacity: 0;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state="closed"]{
  --tw-exit-scale: .95;
}

.group\/navigation-menu[data-viewport="false"] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state="open"]{
  --tw-enter-scale: .95;
}

.dark\:bg-input\/30:is(.dark *){
  background-color: hsl(var(--input) / 0.3);
}

.dark\:hover\:text-accent-foreground:hover:is(.dark *){
  color: hsl(var(--accent-foreground));
}

.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state="checked"]:is(.dark *){
  background-color: hsl(var(--primary-foreground));
}

.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state="unchecked"]:is(.dark *){
  background-color: hsl(var(--foreground));
}

.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state="unchecked"]:is(.dark *){
  background-color: hsl(var(--input) / 0.8);
}

.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant="destructive"]:is(.dark *){
  background-color: hsl(var(--destructive) / 0.2);
}

@media (min-width: 640px){
  .sm\:block{
    display: block;
  }
  .sm\:flex{
    display: flex;
  }
  .sm\:w-auto{
    width: auto;
  }
  .sm\:max-w-lg{
    max-width: 32rem;
  }
  .sm\:max-w-md{
    max-width: 28rem;
  }
  .sm\:max-w-sm{
    max-width: 24rem;
  }
  .sm\:flex-1{
    flex: 1 1 0%;
  }
  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:flex-row{
    flex-direction: row;
  }
  .sm\:justify-end{
    justify-content: flex-end;
  }
  .sm\:gap-2\.5{
    gap: 0.625rem;
  }
  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .sm\:rounded-lg{
    border-radius: var(--radius);
  }
  .sm\:rounded-none{
    border-radius: 0px;
  }
  .sm\:text-left{
    text-align: left;
  }
}

@media (min-width: 768px){
  .md\:absolute{
    position: absolute;
  }
  .md\:flex{
    display: flex;
  }
  .md\:hidden{
    display: none;
  }
  .md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{
    width: var(--radix-navigation-menu-viewport-width);
  }
  .md\:w-auto{
    width: auto;
  }
  .md\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:grid-cols-\[280px_1fr\]{
    grid-template-columns: 280px 1fr;
  }
  .md\:flex-row{
    flex-direction: row;
  }
  .md\:p-10{
    padding: 2.5rem;
  }
  .md\:px-10{
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
  .md\:text-sm{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

@media (min-width: 1024px){
  .lg\:block{
    display: block;
  }
  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){
  padding-right: 0px;
}

.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-md:nth-child(2)[data-selected=true] button{
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.\[\&\>button\]\:rounded-none>button{
  border-radius: 0px;
}

.\[\&\>span\]\:line-clamp-1>span{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.\[\&\>span\]\:text-xs>span{
  font-size: 0.75rem;
  line-height: 1rem;
}

.\[\&\>span\]\:opacity-70>span{
  opacity: 0.7;
}

.\[\&\>svg\]\:size-3\.5>svg{
  width: 0.875rem;
  height: 0.875rem;
}

.\[\&\>svg\]\:size-4>svg{
  width: 1rem;
  height: 1rem;
}

.\[\&\>svg\]\:h-3\.5>svg{
  height: 0.875rem;
}

.\[\&\>svg\]\:w-3\.5>svg{
  width: 0.875rem;
}

.\[\&\>svg\]\:translate-y-0\.5>svg{
  --tw-translate-y: 0.125rem;
  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));
}

.\[\&\>svg\]\:text-current>svg{
  color: currentColor;
}

.\[\&\>svg\]\:text-muted-foreground>svg{
  color: hsl(var(--muted-foreground));
}

.\[\&\>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)) skewX(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)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{
  font-size: 0.75rem;
  line-height: 1rem;
}

.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{
  font-weight: 500;
}

.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{
  color: hsl(var(--muted-foreground));
}

.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden]) ~[cmdk-group]{
  padding-top: 0px;
}

.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{
  padding-left: 0.5rem;
  padding-right: 0.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: 0.5rem;
  padding-right: 0.5rem;
}

.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{
  padding-top: 0.75rem;
  padding-bottom: 0.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\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*='size-']){
  width: 1rem;
  height: 1rem;
}

.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*='text-']){
  color: hsl(var(--muted-foreground));
}

.\[\&_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-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent{
  background-color: transparent;
}

[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{
  background-color: transparent;
}
