/* Original Uiverse author declarations, scoped verbatim.
   UIVERSE_USE("Jerome-W-90/shy-jellyfish-2") */
@scope ([data-uiverse-component="Jerome-W-90/shy-jellyfish-2"]) {
/* From Uiverse.io by Jerome-W-90  - Website: https://codepen.io/havardob/pen/mdPoYmY - Name: havardob - Tags: animation, action, form, image, transition */
.modal {
  width: 90%;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 10px;
  margin-bottom: 10px;
  background-color: #fff;
  border-radius: 0.5rem;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1.5rem 1.5rem 1rem;
}

.logo-circle {
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background-color: #e9e5ff;
  fill: #1cc972;
}

.btn-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.25rem;
  border: none;
  background-color: transparent;
  cursor: pointer;
}

.btn-close:hover,
.btn-close:focus {
  background-color: #e9e5ff;
}

.modal-body {
  padding: 1rem 1.5rem;
}

.modal-title {
  font-weight: 700;
}

.modal-description {
  color: #6a6b76;
}

.upload-area {
  margin-top: 1.25rem;
  background-color: transparent;
  padding: 3rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  border: 1px dashed #6a6b76;
}

.upload-area:hover,
.upload-area:focus {
  cursor: pointer;
  border: 1px solid #6a6b76;
}

.upload-area:hover .upload-area-icon,
.upload-area:focus .upload-area-icon {
  transform: scale(1.3);
  transition-duration: 0.3s;
}

.upload-area-icon {
  display: block;
  width: 2.25rem;
  height: 2.25rem;
  fill: #1cc972;
}

.upload-area-title {
  margin-top: 1rem;
  display: block;
  font-weight: 700;
  color: #0d0f21;
}

.upload-area-description {
  display: block;
  color: #6a6b76;
}

.upload-area-description strong {
  color: #1cc972;
  font-weight: 700;
}

.modal-footer {
  padding: 1rem 1.5rem 1.5rem;
  display: flex;
  justify-content: flex-end;
}

.modal-footer [class*="btn-"] {
  margin-left: 0.75rem;
}

.btn-secondary,
.btn-primary {
  padding: 0.5rem 1rem;
  font-weight: 500;
  border: 2px solid #e5e5e5;
  border-radius: 0.25rem;
  background-color: transparent;
  cursor: pointer;
}

.btn-primary {
  color: #fff;
  background-color: #1cc972;
  border-color: #1cc972;
  cursor: pointer;
}

}
/* Outer NIXBOT behavior and placement only. Original component remains intact. */
.nixbot-master-upload-overlay[hidden]{display:none!important}
.nixbot-master-upload-overlay{position:fixed;inset:0;z-index:2200;background:rgba(10,15,22,.68);display:flex;align-items:center;justify-content:center;padding:16px}
.nixbot-master-upload-overlay .modal{position:relative;max-height:calc(100dvh - 32px);overflow-y:auto}
.nixbot-master-upload-overlay .upload-area:focus-visible{outline:3px solid #00dde3;outline-offset:3px}
.nixbot-master-upload-overlay .nixbot-upload-preview{display:block;max-width:100%;max-height:170px;object-fit:contain;margin:14px auto}
.nixbot-master-upload-overlay .nixbot-upload-error{padding:0 24px;color:#c83a43}
.nixbot-master-upload-overlay .nixbot-upload-error:empty{display:none}
.nixbot-master-upload-overlay .nixbot-upload-meta{text-align:center;margin:10px 12px;color:#59636e}
.nixbot-master-upload-overlay .nixbot-upload-remove{margin:12px}
html[data-theme=dark] .nixbot-master-upload-overlay .modal{background:#151a21;color:#f3f6f9}
html[data-theme=dark] .nixbot-master-upload-overlay .modal-description,html[data-theme=dark] .nixbot-master-upload-overlay .upload-area-title{color:#f3f6f9}
html[data-theme=dark] .nixbot-master-upload-overlay .upload-area-description{color:#cbd3de}
[data-master-cover-file]{position:absolute!important;width:1px!important;height:1px!important;clip-path:inset(50%)!important;overflow:hidden!important;opacity:0!important}
.nixbot-master-cover-trigger{margin-top:8px}

/* Original Uiverse source, declarations preserved unmodified.
   UIVERSE_USE("3bdel3ziz-T/short-warthog-21") */
@scope ([data-uiverse-component="3bdel3ziz-T/short-warthog-21"]) {
.container {
  --transition: 350ms;
  --folder-W: 120px;
  --folder-H: 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: 10px;
  background: linear-gradient(135deg, #6dd5ed, #2193b0);
  border-radius: 15px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
  height: calc(var(--folder-H) * 1.7);
  position: relative;
}

.folder {
  position: absolute;
  top: -20px;
  left: calc(50% - 60px);
  animation: float 2.5s infinite ease-in-out;
  transition: transform var(--transition) ease;
}

.folder:hover {
  transform: scale(1.05);
}

.folder .front-side,
.folder .back-side {
  position: absolute;
  transition: transform var(--transition);
  transform-origin: bottom center;
}

.folder .back-side::before,
.folder .back-side::after {
  content: "";
  display: block;
  background-color: white;
  opacity: 0.5;
  z-index: 0;
  width: var(--folder-W);
  height: var(--folder-H);
  position: absolute;
  transform-origin: bottom center;
  border-radius: 15px;
  transition: transform 350ms;
  z-index: 0;
}

.container:hover .back-side::before {
  transform: rotateX(-5deg) skewX(5deg);
}
.container:hover .back-side::after {
  transform: rotateX(-15deg) skewX(12deg);
}

.folder .front-side {
  z-index: 1;
}

.container:hover .front-side {
  transform: rotateX(-40deg) skewX(15deg);
}

.folder .tip {
  background: linear-gradient(135deg, #ff9a56, #ff6f56);
  width: 80px;
  height: 20px;
  border-radius: 12px 12px 0 0;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  position: absolute;
  top: -10px;
  z-index: 2;
}

.folder .cover {
  background: linear-gradient(135deg, #ffe563, #ffc663);
  width: var(--folder-W);
  height: var(--folder-H);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
  border-radius: 10px;
}

.custom-file-upload {
  font-size: 1.1em;
  color: #ffffff;
  text-align: center;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: 10px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: background var(--transition) ease;
  display: inline-block;
  width: 100%;
  padding: 10px 35px;
  position: relative;
}

.custom-file-upload:hover {
  background: rgba(255, 255, 255, 0.4);
}

.custom-file-upload input[type="file"] {
  display: none;
}

@keyframes float {
  0% {
    transform: translateY(0px);
  }

  50% {
    transform: translateY(-20px);
  }

  100% {
    transform: translateY(0px);
  }
}

}
/* Only host sizing/focus, not original folder animation or gradient. */
.nixbot-master-upload-trigger{width:210px;max-width:100%;margin:20px 0 30px}
.nixbot-master-upload-trigger .container{max-width:100%;width:100%;box-sizing:border-box}
.nixbot-master-upload-trigger .custom-file-upload{box-sizing:border-box;white-space:nowrap;cursor:pointer}
.nixbot-master-upload-trigger .custom-file-upload:focus-visible{outline:3px solid #00dde3;outline-offset:4px}
.nixbot-master-upload-trigger .container:hover .folder{transform:scale(1.05)}
@media(prefers-reduced-motion:reduce){.nixbot-master-upload-trigger .folder{animation:none}}


/* Bootstrap's generic .modal { display:none; position:fixed } hid the
 * exact Uiverse source dialog even while the NIXBOT overlay was open.
 * Correct ONLY the integration wrapper, never the author's inner markup. */
.nixbot-master-upload-overlay:not([hidden]){display:flex!important;z-index:25000}
.nixbot-master-upload-overlay:not([hidden])>.modal{display:block!important;position:relative!important;inset:auto!important;opacity:1!important;transform:none!important;visibility:visible!important;margin:0!important;width:min(100%,540px)!important;max-width:100%;z-index:1}
.nixbot-master-upload-overlay .modal-body,.nixbot-master-upload-overlay .modal-footer{display:block}
.nixbot-master-upload-overlay .modal-footer{display:flex;gap:12px;justify-content:flex-end;align-items:center}
.nixbot-master-upload-overlay .nixbot-upload-preview[hidden]{display:none!important}

/* Restore Jerome-W-90/shy-jellyfish-2 verbatim component presentation.
 * Printful Bootstrap's .modal, .modal-header, .modal-body, .modal-footer and
 * .btn-primary rules otherwise alter the original. Only wrapper isolation here. */
.nixbot-master-upload-overlay:not([hidden]){display:flex!important;align-items:center!important;justify-content:center!important;padding:clamp(12px,3vw,28px)!important;overflow-y:auto}
.nixbot-master-upload-overlay>.modal{box-sizing:border-box!important;display:block!important;position:relative!important;width:min(500px,100%)!important;max-width:500px!important;max-height:calc(100dvh - 32px)!important;overflow-y:auto!important;overflow-x:hidden!important;margin:0 auto!important;padding:0!important;background-color:#fff!important;color:#0d0f21!important;border:0!important;border-radius:.5rem!important;box-shadow:0 5px 15px rgba(0,0,0,.2)!important}
.nixbot-master-upload-overlay .modal-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;padding:1.5rem 1.5rem 1rem!important;border:0!important;background:none!important;min-height:auto!important}
.nixbot-master-upload-overlay .modal-logo{display:block!important}
.nixbot-master-upload-overlay .logo-circle{width:3.5rem!important;height:3.5rem!important;border-radius:50%!important;background-color:#e9e5ff!important;fill:#1cc972!important;display:flex!important;align-items:center!important;justify-content:center!important}
.nixbot-master-upload-overlay .modal-body{padding:1rem 1.5rem!important;border:0!important;background:none!important}
.nixbot-master-upload-overlay .modal-title{display:block!important;font-weight:700!important;font-size:1rem!important;line-height:1.45!important;margin:0!important;color:#0d0f21!important}
.nixbot-master-upload-overlay .modal-description{margin:0!important;color:#6a6b76!important}
.nixbot-master-upload-overlay .upload-area{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-height:180px!important;width:100%!important;margin-top:1.25rem!important;padding:clamp(20px,5vw,48px)!important;background:transparent!important;border:1px dashed #6a6b76!important;border-radius:0!important;color:#0d0f21!important;box-shadow:none!important}
.nixbot-master-upload-overlay .modal-footer{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;gap:12px!important;padding:1rem 1.5rem 1.5rem!important;border:0!important;background:transparent!important}
.nixbot-master-upload-overlay .modal-footer [class*="btn-"]{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:38px!important;margin:0!important;padding:.5rem 1rem!important;border:2px solid #e5e5e5!important;border-radius:.25rem!important;background:transparent!important;color:#0d0f21!important;box-shadow:none!important;font-size:14px!important;font-weight:500!important}
.nixbot-master-upload-overlay .modal-footer .btn-primary{background:#1cc972!important;border-color:#1cc972!important;color:#fff!important}
.nixbot-master-upload-overlay .btn-close{display:grid!important;place-items:center!important;width:2.25rem!important;height:2.25rem!important;min-height:2.25rem!important;opacity:1!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.nixbot-master-upload-overlay .btn-close:hover{background:#e9e5ff!important}
html[data-theme=dark] .nixbot-master-upload-overlay>.modal{background:#151a21!important;color:#f3f6f9!important}
html[data-theme=dark] .nixbot-master-upload-overlay .modal-title,html[data-theme=dark] .nixbot-master-upload-overlay .upload-area-title{color:#f3f6f9!important}
html[data-theme=dark] .nixbot-master-upload-overlay .modal-description,html[data-theme=dark] .nixbot-master-upload-overlay .upload-area-description{color:#cbd3de!important}
html[data-theme=dark] .nixbot-master-upload-overlay .modal-footer .btn-secondary{color:#f3f6f9!important}
@media(max-width:480px){.nixbot-master-upload-overlay>.modal{width:100%!important;max-height:calc(100dvh - 24px)!important}.nixbot-master-upload-overlay .modal-header{padding:18px 18px 10px!important}.nixbot-master-upload-overlay .modal-body{padding:12px 18px!important}.nixbot-master-upload-overlay .modal-footer{padding:14px 18px 18px!important}.nixbot-master-upload-overlay .upload-area{min-height:148px!important}}

/* Exact Uiverse author markup: Itskrish01/chatty-lionfish-23
   https://github.com/uiverse-io/galaxy/blob/main/Buttons/Itskrish01_chatty-lionfish-23.html
   MIT. These are the equivalent Tailwind utility values from its author HTML,
   scoped here because NIXBOT/Printful intentionally does not load global Tailwind.
   DO NOT alter the literal original DOM, animation timing or the two-layer effect. */
.nixbot-upload-chatty{display:flex;align-items:center;justify-content:center;max-width:100%;width:100%;box-sizing:border-box;margin:18px 0 10px}
.nixbot-upload-chatty .nixbot-upload-chatty-button{border:0;background:transparent!important;box-shadow:none!important;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 36px!important;max-width:100%;color:inherit}
.nixbot-upload-chatty .nixbot-upload-chatty-button:focus-visible{outline:3px solid var(--nixbot-member-primary,#00dde3);outline-offset:3px;border-radius:8px}
.nixbot-upload-chatty [class~="relative"]{position:relative}
.nixbot-upload-chatty [class~="w-full"]{width:100%}
.nixbot-upload-chatty [class~="group"]{display:block;max-width:100%;width:160px;min-height:128px}
.nixbot-upload-chatty [class~="z-40"]{z-index:40}
.nixbot-upload-chatty [class~="cursor-pointer"]{cursor:pointer}
.nixbot-upload-chatty [class~="transition-all"]{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}
.nixbot-upload-chatty [class~="duration-500"]{transition-duration:500ms}
.nixbot-upload-chatty [class~="duration-300"]{transition-duration:300ms}
.nixbot-upload-chatty [class~="bg-neutral-900"]{background-color:rgb(23 23 23)}
.nixbot-upload-chatty [class~="flex"]{display:flex}
.nixbot-upload-chatty [class~="items-center"]{align-items:center}
.nixbot-upload-chatty [class~="justify-center"]{justify-content:center}
.nixbot-upload-chatty [class~="h-32"]{height:8rem}
.nixbot-upload-chatty [class~="w-32"]{width:8rem}
.nixbot-upload-chatty [class~="mx-auto"]{margin-left:auto;margin-right:auto}
.nixbot-upload-chatty [class~="rounded-xl"]{border-radius:.75rem}
.nixbot-upload-chatty [class~="absolute"]{position:absolute}
.nixbot-upload-chatty [class~="border"]{border-width:1px}
.nixbot-upload-chatty [class~="opacity-0"]{opacity:0}
.nixbot-upload-chatty [class~="border-dashed"]{border-style:dashed}
.nixbot-upload-chatty [class~="border-sky-400"]{border-color:rgb(56 189 248)}
.nixbot-upload-chatty [class~="inset-0"]{inset:0}
.nixbot-upload-chatty [class~="z-30"]{z-index:30}
.nixbot-upload-chatty [class~="bg-transparent"]{background-color:transparent}
.nixbot-upload-chatty [class~="h-6"]{height:1.5rem}
.nixbot-upload-chatty [class~="w-6"]{width:1.5rem}
.nixbot-upload-chatty [class~="text-white/60"]{color:rgb(255 255 255 / .6)}
.nixbot-upload-chatty [class~="group-hover:translate-x-8"]{--nx-uiverse-translate-x:0px}
.nixbot-upload-chatty [class~="group-hover:-translate-y-8"]{--nx-uiverse-translate-y:0px}
.nixbot-upload-chatty [class~="group-hover:translate-x-8"]{transform:translate(var(--nx-uiverse-translate-x),var(--nx-uiverse-translate-y))}
.nixbot-upload-chatty .group:hover [class~="group-hover:translate-x-8"],
.nixbot-upload-chatty .nixbot-upload-chatty-button:focus-visible [class~="group-hover:translate-x-8"]{--nx-uiverse-translate-x:2rem;--nx-uiverse-translate-y:-2rem;box-shadow:0 25px 50px -12px rgb(0 0 0 / .25)}
.nixbot-upload-chatty .group:hover [class~="group-hover:opacity-80"],
.nixbot-upload-chatty .nixbot-upload-chatty-button:focus-visible [class~="group-hover:opacity-80"]{opacity:.8}
.nixbot-upload-chatty-caption{display:block;font-weight:600;font-size:13px;text-align:center}
@media (prefers-reduced-motion:reduce){.nixbot-upload-chatty [class~="transition-all"]{transition-duration:0ms!important}}
@media(max-width:440px){.nixbot-upload-chatty .nixbot-upload-chatty-button{padding:22px 12px!important}}
