﻿.pv-file-upload,
.custum-file-upload {
  position:relative;
  display:grid;
  gap:12px;
  min-height:140px;
  padding:20px;
  border-radius:28px;
  border:2px dashed rgba(74,198,245,.34) !important;
  background:
    radial-gradient(circle at 50% 18%,rgba(36,176,233,.13),transparent 48%),
    linear-gradient(180deg,rgba(255,255,255,.88),rgba(246,250,254,.82)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 16px 36px rgba(10,21,37,.08) !important;
}

[data-theme="dark"] .pv-file-upload,
[data-theme="dark"] .custum-file-upload {
  background:radial-gradient(circle at 50% 18%,rgba(36,176,233,.16),transparent 48%),linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035)),rgba(10,21,37,.72) !important;
}

.pv-progress,
.rt-progress,
.progress-line,
.time-bar,
.hp-track,
.loader-bar {
  --progress:40%;
  position:relative !important;
  height:18px !important;
  border-radius:999px !important;
  background:rgba(10,21,37,.10) !important;
  border:1px solid rgba(184,203,217,.14) !important;
  box-shadow:inset 0 2px 8px rgba(10,21,37,.18),inset 0 1px 0 rgba(255,255,255,.16) !important;
  overflow:hidden !important;
}

.rt-progress i,
.progress-line i,
.time-bar i,
.hp-fill,
.loader-bar i,
.pv-progress__bar {
  display:block;
  height:100% !important;
  border-radius:inherit !important;
  background:var(--pv-brand-gradient-flat) !important;
  box-shadow:0 0 18px rgba(36,176,233,.28),0 0 30px rgba(101,210,107,.16) !important;
  position:relative;
  overflow:hidden;
}

.rt-progress i::after,
.progress-line i::after,
.time-bar i::after,
.hp-fill::after,
.loader-bar i::after,
.pv-progress__bar::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  transform:translateX(-60%);
  animation:pvProgressShine 1.8s ease-in-out infinite;
}

@keyframes pvProgressShine {
  0% { transform:translateX(-60%); opacity:.28; }
  50% { opacity:.9; }
  100% { transform:translateX(90%); opacity:.28; }
}

.queue-visual {
  background:
    radial-gradient(circle at center,rgba(36,176,233,.16),transparent 56%),
    linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035)),
    rgba(10,21,37,.04) !important;
}

.queue-ring {
  width:118px !important;
  height:118px !important;
  border-color:rgba(74,198,245,.18) !important;
  border-top-color:var(--pv-cyan-300) !important;
  border-right-color:var(--pv-green-b) !important;
  box-shadow:0 0 34px rgba(36,176,233,.20);
}

.queue-pulse {
  width:58px !important;
  height:58px !important;
  border-radius:20px !important;
  background:var(--pv-brand-gradient) !important;
  position:relative;
}

.queue-pulse::before {
  content:"";
  position:absolute;
  inset:12px;
  background:var(--pv-ink-950);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M13 2 4 14h7l-1 8 10-12h-7l1-8Z' stroke='black' stroke-width='2.3' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M13 2 4 14h7l-1 8 10-12h-7l1-8Z' stroke='black' stroke-width='2.3' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

.pv-hourglass {
  position:relative;
  width:74px;
  height:94px;
  display:grid;
  place-items:center;
  filter:drop-shadow(0 16px 24px rgba(36,176,233,.18));
}

.pv-hourglass::before {
  content:"";
  width:52px;
  height:74px;
  border:5px solid var(--pv-cyan-300);
  border-top-color:var(--pv-green-b);
  border-bottom-color:var(--pv-green-b);
  border-radius:18px 18px 22px 22px;
  clip-path:polygon(12% 0,88% 0,62% 50%,88% 100%,12% 100%,38% 50%);
  animation:pvHourglassFlip 2s cubic-bezier(.83,0,.17,1) infinite;
}

.pv-hourglass::after {
  content:"";
  position:absolute;
  width:8px;
  height:48px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--pv-mist-50),var(--pv-green-b));
  animation:pvSandDrop 2s ease-in-out infinite;
}

@keyframes pvHourglassFlip {
  0%,24% { transform:rotate(0deg); }
  55%,100% { transform:rotate(180deg); }
}

@keyframes pvSandDrop {
  0% { transform:translateY(-18px) scaleY(.2); opacity:.35; }
  45% { transform:translateY(0) scaleY(1); opacity:1; }
  100% { transform:translateY(18px) scaleY(.2); opacity:.35; }
}

.pv-pencil-loader {
  width:112px;
  height:112px;
  display:grid;
  place-items:center;
}

.ai-loader-overlay {
  background:rgba(246,250,254,.94) !important;
  backdrop-filter:blur(18px) saturate(1.18) !important;
}

[data-theme="dark"] .ai-loader-overlay {
  background:rgba(10,21,37,.92) !important;
}

.ai-loader-overlay .ai-step {
  border-radius:18px !important;
  padding:10px 12px !important;
  background:rgba(36,176,233,.07) !important;
  border:1px solid rgba(74,198,245,.14) !important;
}

.ai-loader-overlay .ai-step.active .icon-box,
.ai-loader-overlay .ai-step.done .icon-box {
  background:var(--pv-brand-gradient) !important;
  color:var(--pv-ink-950) !important;
}

.pv-pencil-loader::before {
  content:"";
  width:76px;
  height:76px;
  border-radius:18px;
  background:var(--pv-brand-gradient);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m12 20 9-5-9-5-9 5 9 5Z' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m12 10 9-5-9-5-9 5 9 5Z' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m3 10 9 5 9-5' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='m12 20 9-5-9-5-9 5 9 5Z' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m12 10 9-5-9-5-9 5 9 5Z' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m3 10 9 5 9-5' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  filter:drop-shadow(0 16px 26px rgba(36,176,233,.24));
  animation:pvPencilBob 1.6s ease-in-out infinite;
}

[data-theme="dark"] .pv-pencil-loader::before {
  background:var(--pv-brand-gradient);
}

@keyframes pvPencilBob {
  0%,100% { transform:translateY(0) rotate(-4deg); }
  50% { transform:translateY(-8px) rotate(4deg); }
}

.pv-book-loader,
.app-loader .loader-card::before {
  content:"";
  width:82px;
  height:62px;
  display:block;
  margin:0 auto 12px;
  border-radius:8px;
  background:var(--pv-cyan-500);
  box-shadow:0 0 0 4px var(--pv-green-b) inset,0 14px 28px rgba(36,176,233,.18);
  transform-origin:left center;
  animation:pvBookFlip 1.8s ease-in-out infinite;
}

.app-loader .loader-quant { display:none !important; }

@keyframes pvBookFlip {
  0%,100% { transform:perspective(320px) rotateY(0deg); background:var(--pv-cyan-500); }
  50% { transform:perspective(320px) rotateY(-22deg); background:var(--pv-green-a); }
}

.action_has {
  position:relative;
  width:54px;
  height:54px;
  border:1px solid rgba(184,203,217,.14);
  border-radius:19px;
  display:grid;
  place-items:center;
  cursor:pointer;
  color:var(--pv-text-soft);
  background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.035)),rgba(10,21,37,.78);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 30px rgba(0,0,0,.18);
}

.action_has.has_liked {
  color:white;
  background:var(--pv-brand-gradient);
}

.action_has.is-popping { animation:pvLikePop .58s var(--pv-ease); }

@keyframes pvLikePop {
  0% { transform:scale(.84) rotate(0); }
  45% { transform:scale(1.16) rotate(-8deg); }
  100% { transform:scale(1) rotate(0); }
}

.check-container {
  position:relative;
  display:flex;
  align-items:center;
  gap:14px;
  padding-left:40px;
  min-height:32px;
  cursor:pointer;
  font-weight:850;
}

.check-container .check,
.check-container input[type="checkbox"] {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
}

.check-toggle,
.check-container::before {
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:26px;
  height:26px;
  border-radius:8px;
  border:3px solid var(--pv-green-b);
  transform:translateY(-50%);
}

.check-svg,
.check-container::after {
  content:"";
  position:absolute;
  left:6px;
  top:50%;
  width:15px;
  height:9px;
  border-left:4px solid var(--pv-cyan-500);
  border-bottom:4px solid var(--pv-cyan-500);
  opacity:0;
  transform:translateY(-66%) rotate(-45deg) scale(.7);
  transition:opacity .2s ease,transform .2s var(--pv-ease);
}

.check:checked + .check-toggle + .check-svg,
.check-container:has(input[type="checkbox"]:checked)::after {
  opacity:1;
  transform:translateY(-66%) rotate(-45deg) scale(1);
}

.qchat-open-btn,
.quest-panel,
.qchat-panel,
.quant-fab .quant-btn {
  border-radius:24px !important;
}

.qchat-open-icon,
.qchat-head-icon,
.quant-question-mark,
.quest-icon {
  width:38px !important;
  height:38px !important;
  border-radius:15px !important;
  background-color:rgba(255,255,255,.72) !important;
  background-image:none !important;
  color:#0877ad !important;
  filter:drop-shadow(0 8px 14px rgba(36,176,233,.18));
}

.qchat-open-icon::before,
.qchat-head-icon::before,
.quant-question-mark::before,
.quest-icon::before {
  content:"";
  width:24px;
  height:24px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v8Z' stroke='black' stroke-width='2.2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v8Z' stroke='black' stroke-width='2.2' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
}

[data-theme="dark"] .qchat-open-icon,
[data-theme="dark"] .qchat-head-icon,
[data-theme="dark"] .quant-question-mark,
[data-theme="dark"] .quest-icon {
  background-color:rgba(15,23,42,.82) !important;
  background-image:none !important;
  color:#82dcff !important;
}

.qchat-open-btn > span:last-child {
  min-width:34px;
  text-align:center;
  background:var(--pv-brand-gradient-flat) !important;
  color:var(--pv-ink-950) !important;
}

.qchat-msg.quant {
  border-radius:20px 20px 20px 7px !important;
  background:linear-gradient(180deg,#fff,#f6fafe) !important;
  border:1px solid rgba(10,21,37,.08);
}

[data-theme="dark"] .qchat-msg.quant {
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035)),rgba(10,21,37,.72) !important;
  border-color:rgba(184,203,217,.14);
}

.ph-footer-wave svg,
.footer-ribbon svg {
  left:-36px !important;
  width:calc(100% + 72px) !important;
  min-width:calc(100% + 72px) !important;
  transform:none !important;
  overflow:visible !important;
}

.site-footer,
.ph-footer {
  border-top:0 !important;
  clip-path:polygon(
    0 42px,
    6% 48px,
    13% 54px,
    21% 50px,
    30% 38px,
    39% 31px,
    49% 37px,
    58% 50px,
    68% 56px,
    78% 48px,
    88% 32px,
    96% 20px,
    100% 24px,
    100% 100%,
    0 100%
  ) !important;
  box-shadow:0 -22px 70px rgba(36,176,233,.12);
}

.pv-hero-board {
  display:grid;
  grid-template-columns:1fr 180px;
  gap:14px;
}

.pv-showcase-main,
.qb-main {
  background:
    radial-gradient(circle at 84% 8%,rgba(74,198,245,.28),transparent 36%),
    radial-gradient(circle at 18% 92%,rgba(101,210,107,.18),transparent 38%),
    linear-gradient(135deg,var(--pv-ink-950),var(--pv-ink-900)) !important;
  border:1px solid rgba(184,203,217,.16);
}

.pv-showcase-main .pv-showcase-visual {
  position:relative;
  min-height:128px;
  margin:18px 0 6px;
  border-radius:24px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.12);
}

.pv-showcase-visual::before {
  content:"";
  position:absolute;
  inset:20px;
  border-radius:22px;
  background:
    linear-gradient(90deg,rgba(74,198,245,.92) 0 62%,transparent 62%),
    linear-gradient(90deg,rgba(101,210,107,.72) 0 42%,transparent 42%);
  background-size:100% 16px,100% 16px;
  background-position:0 24px,0 66px;
  background-repeat:no-repeat;
  box-shadow:0 0 0 1px rgba(255,255,255,.08),0 16px 34px rgba(0,0,0,.20);
  animation:pvShowcaseScan 2.4s ease-in-out infinite;
}

.pv-showcase-visual::after {
  content:"";
  position:absolute;
  right:22px;
  top:22px;
  width:68px;
  height:68px;
  border-radius:22px;
  background:var(--pv-brand-gradient);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M9 11 11 13 15.5 8.5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M6 3h9l3 3v15H6V3Z' stroke='black' stroke-width='2.2' stroke-linejoin='round'/%3E%3Cpath d='M15 3v4h4' stroke='black' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M9 11 11 13 15.5 8.5' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M6 3h9l3 3v15H6V3Z' stroke='black' stroke-width='2.2' stroke-linejoin='round'/%3E%3Cpath d='M15 3v4h4' stroke='black' stroke-width='2.2' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  filter:drop-shadow(0 14px 22px rgba(36,176,233,.22));
}

@keyframes pvShowcaseScan {
  0%,100% { transform:translateY(0); filter:saturate(1); }
  50% { transform:translateY(-4px); filter:saturate(1.15); }
}

.ratings-search {
  max-width:640px;
  margin:0 auto 18px;
}

.ratings-search .pv-search-box {
  width:100%;
}

@media (max-width:980px) {
  .pv-hero-board { grid-template-columns:1fr; }
}

@media (max-width:620px) {
  .btn,
  .shop-btn,
  .auth-login-btn,
  .load-more,
  .apply-filters,
  .reset-filters,
  .qchat-open-btn,
  .qd-claim {
    width:100%;
  }
  .pv-search-box,
  .friend-search,
  .admin-search {
    display:grid !important;
  }
  .friend-search .btn,
  .admin-search .btn,
  .pv-search-button {
    width:100% !important;
  }
  .theme-toggle {
    width:68px !important;
  }
  [data-theme="dark"] .theme-toggle::before {
    transform:translateX(26px);
  }
}

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