/*
 * Selected official themes:
 * 06 Plum Stage — floating creative studio.
 * 20 Magic Playground — horizontal kinetic workspace.
 */

.official-theme-switch {
  position: relative;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 9px;
}

.theme-caption {
  color: var(--muted);
  font-size: 11px;
}

.theme-trigger {
  width: 238px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: color-mix(in srgb, var(--card) 90%, transparent);
  color: var(--ink);
  display: grid;
  grid-template-columns: 13px 1fr auto;
  align-items: center;
  gap: 9px;
  text-align: left;
  backdrop-filter: blur(20px);
}

.theme-trigger > span {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  color: inherit;
}

.theme-trigger b { font-size: 12px; }
.theme-trigger small { color: var(--purple); font-size: 9px; letter-spacing: .06em; }
.theme-trigger em { color: var(--muted); font-style: normal; }

.official-theme-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--dot-a), var(--dot-b));
  box-shadow: 0 0 14px color-mix(in srgb, var(--dot-b) 45%, transparent);
}

.theme-trigger:hover,
.official-theme-switch.open .theme-trigger {
  border-color: color-mix(in srgb, var(--purple) 48%, var(--line));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--purple) 11%, transparent);
}

.official-theme-menu {
  position: absolute;
  z-index: 500;
  top: 50px;
  right: 0;
  width: 350px;
  padding: 7px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  box-shadow: 0 22px 65px color-mix(in srgb, var(--ink) 18%, transparent);
  transform-origin: top right;
}

.official-theme-menu:not([hidden]) {
  animation: official-menu-in .18s cubic-bezier(.2,.8,.2,1);
}

@keyframes official-menu-in {
  from { opacity: 0; transform: translateY(-7px) scale(.98); }
}

.official-theme-menu button {
  width: 100%;
  min-height: 62px;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: var(--ink);
  display: grid;
  grid-template-columns: 14px 1fr auto;
  align-items: center;
  gap: 10px;
  text-align: left;
}

.official-theme-menu button:hover,
.official-theme-menu button:focus-visible {
  border-color: color-mix(in srgb, var(--purple) 22%, var(--line));
  background: color-mix(in srgb, var(--purple) 7%, var(--card));
  outline: none;
}

.official-theme-menu button[aria-selected="true"] {
  background: color-mix(in srgb, var(--purple) 11%, var(--card));
  color: var(--purple);
}

.official-theme-menu button span { display: grid; gap: 4px; }
.official-theme-menu button small { color: var(--muted); font-size: 10px; }
.official-theme-menu button em { font-style: normal; font-weight: 800; }
.header-actions { margin-left: 13px; white-space: nowrap; }

/* Shared selected-theme upgrades */
body[data-official-theme] {
  transition: background .26s ease, color .26s ease;
}

body[data-official-theme]::before {
  content: "";
  position: fixed;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(color-mix(in srgb, var(--purple) 5%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--purple) 4%, transparent) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(#000, transparent 72%);
}

body[data-official-theme] .primary,
body[data-official-theme] .dark {
  border: 0;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--theme-a) 25%, transparent);
}

body[data-official-theme] .primary:hover,
body[data-official-theme] .dark:hover {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  filter: saturate(1.08);
  box-shadow: 0 12px 30px color-mix(in srgb, var(--theme-a) 34%, transparent);
}

body[data-official-theme] .brand b {
  border: 0;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  box-shadow: 0 7px 20px color-mix(in srgb, var(--theme-a) 28%, transparent);
}

body[data-official-theme] .page-head {
  position: relative;
  padding-top: 17px;
}

body[data-official-theme] .page-head::before {
  content: "SANHUO / CREATIVE OS";
  position: absolute;
  top: 0;
  left: 0;
  color: var(--theme-a);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .18em;
}

body[data-official-theme] .card,
body[data-official-theme] .quick,
body[data-official-theme] .asset-mini,
body[data-official-theme] .director-choice,
body[data-official-theme] .config-grid article,
body[data-official-theme] .metrics article,
body[data-official-theme] .overview-metrics article {
  border-color: var(--line);
  background: color-mix(in srgb, var(--card) 94%, transparent);
  backdrop-filter: blur(18px);
}

body[data-official-theme] .quick:hover,
body[data-official-theme] .asset-mini:hover,
body[data-official-theme] .director-choice:hover,
body[data-official-theme] .config-grid article:hover {
  border-color: color-mix(in srgb, var(--theme-a) 42%, var(--line));
  box-shadow: 0 18px 42px color-mix(in srgb, var(--theme-a) 13%, transparent);
}

body[data-official-theme] .select-menu,
body[data-official-theme] .filter-popover {
  border-color: color-mix(in srgb, var(--theme-a) 20%, var(--line));
  background: var(--card);
  box-shadow: 0 22px 60px color-mix(in srgb, var(--ink) 15%, transparent);
}

body[data-official-theme] .select-option.selected,
body[data-official-theme] .select-option:hover,
body[data-official-theme] .select-option.focused {
  background: color-mix(in srgb, var(--theme-a) 10%, var(--card));
  color: var(--theme-a);
}

body[data-official-theme] .toast {
  border: 1px solid color-mix(in srgb, var(--theme-a) 28%, var(--line));
  border-radius: 14px;
  background: color-mix(in srgb, var(--card) 92%, transparent);
  color: var(--ink);
  box-shadow: 0 18px 50px color-mix(in srgb, var(--theme-a) 18%, transparent);
  backdrop-filter: blur(20px);
}

body[data-official-theme] .progress i,
body[data-official-theme] .mini-progress::after,
body[data-official-theme] .bars i {
  background: linear-gradient(90deg, var(--theme-a), var(--theme-b));
}

body[data-official-theme] .sidebar.collapsed .workspace {
  padding: 0;
  border-color: transparent;
  background: transparent;
  font-size: 0;
  justify-content: center;
}

body[data-official-theme] .sidebar.collapsed .workspace i {
  font-size: 11px;
}

body[data-official-theme] .sidebar.collapsed nav > p {
  display: none;
}

/* 06 — Plum Stage / floating creative studio */
body[data-official-theme="06"] {
  --theme-a: #9d3bd1;
  --theme-b: #ff6f91;
  --ink: #351d3e;
  --ink-strong: #27142f;
  --muted: #806d82;
  --line: #edd4e3;
  --bg: #fff7fb;
  --nav: #f8eaf3;
  --card: #fff;
  --purple: #9d3bd1;
  --accent: #9d3bd1;
  --accent-soft: #f7e7fb;
  --shadow: 0 20px 52px rgba(116,43,108,.14);
  background:
    radial-gradient(circle at 83% -7%, rgba(255,111,145,.14), transparent 34rem),
    radial-gradient(circle at 28% 110%, rgba(157,59,209,.09), transparent 32rem),
    var(--bg);
}

body[data-official-theme="06"] .sidebar {
  inset: 18px auto 18px 18px;
  width: 218px;
  padding: 14px 12px;
  border: 1px solid rgba(157,59,209,.16);
  border-radius: 25px;
  background: rgba(248,234,243,.91);
  box-shadow: 0 22px 65px rgba(102,41,96,.15);
}

body[data-official-theme="06"] main,
body[data-official-theme="06"] .main {
  margin-left: 254px;
  padding-inline: 44px;
}

body[data-official-theme="06"] .brand {
  margin-bottom: 8px;
  padding: 8px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(157,59,209,.12), rgba(255,111,145,.1));
}

body[data-official-theme="06"] .workspace {
  border-radius: 15px;
  border-color: rgba(157,59,209,.18);
  background: rgba(255,255,255,.75);
}

body[data-official-theme="06"] .workspace i,
body[data-official-theme="06"] .side-foot i,
body[data-official-theme="06"] .header-actions i {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
}

body[data-official-theme="06"] .sidebar .nav {
  border-radius: 13px;
}

body[data-official-theme="06"] .sidebar .nav.active {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  box-shadow: 0 10px 25px rgba(157,59,209,.22);
}

body[data-official-theme="06"] .sidebar .nav.active .nav-icon { color: #fff; }
body[data-official-theme="06"] .side-collapse { border-color: #e7cce1; color: var(--theme-a); }
body[data-official-theme="06"] .sidebar.collapsed { width: 72px; }
body[data-official-theme="06"]:has(.sidebar.collapsed) main { margin-left: 108px; }

body[data-official-theme="06"] header {
  height: 82px;
  border-color: #efdce8;
}

body[data-official-theme="06"] .hero {
  height: 300px;
  padding: 48px 52px;
  border-color: rgba(157,59,209,.15);
  border-radius: 34px;
  background:
    radial-gradient(circle at 79% 35%, rgba(255,111,145,.28), transparent 17rem),
    linear-gradient(125deg, #fff 0%, #fff6fb 48%, #f7e7fb 100%);
  box-shadow: 0 24px 62px rgba(116,43,108,.12);
}

body[data-official-theme="06"] .hero h1 { color: #351d3e; font-size: 42px; }
body[data-official-theme="06"] .hero p { color: #806d82; }
body[data-official-theme="06"] .orb {
  width: 200px;
  height: 200px;
  border: 0;
  border-radius: 42% 58% 64% 36%;
  background: radial-gradient(circle at 32% 25%, #fff 0 4%, #ffc1d1 9%, #cf6de8 38%, #7030aa 76%);
  box-shadow: 0 26px 60px rgba(157,59,209,.3);
  animation: plum-blob 7s ease-in-out infinite alternate;
}

@keyframes plum-blob {
  to { transform: rotate(13deg) scale(1.06); border-radius: 61% 39% 43% 57%; }
}

body[data-official-theme="06"] .quick,
body[data-official-theme="06"] .card,
body[data-official-theme="06"] .asset-mini {
  border-radius: 22px 9px 22px 9px;
}

body[data-official-theme="06"] .quick:nth-child(1) { transform: rotate(-.25deg); }
body[data-official-theme="06"] .quick:nth-child(3) { transform: rotate(.25deg); }
body[data-official-theme="06"] .quick:hover { transform: translateY(-4px) rotate(0); }
body[data-official-theme="06"] .chip.active,
body[data-official-theme="06"] .direction-options button.active,
body[data-official-theme="06"] .ratio-options button.active {
  border-color: var(--theme-a);
  background: #f8e8fc;
  color: var(--theme-a);
}

/* 20 — Magic Playground / energetic left studio */
body[data-official-theme="20"] {
  --theme-a: #7d2ae8;
  --theme-b: #00c4cc;
  --ink: #2c2138;
  --ink-strong: #20162c;
  --muted: #776b84;
  --line: #e2d8ef;
  --bg: #faf7ff;
  --nav: #f0eaff;
  --card: #fff;
  --purple: #7d2ae8;
  --accent: #7d2ae8;
  --accent-soft: #f0e7fc;
  --shadow: 0 24px 62px rgba(82,43,126,.16);
  background:
    radial-gradient(circle at 86% -8%, rgba(0,196,204,.14), transparent 33rem),
    radial-gradient(circle at 20% 0%, rgba(125,42,232,.09), transparent 28rem),
    var(--bg);
}

body[data-official-theme="20"] .sidebar,
body[data-official-theme="20"] .sidebar.collapsed {
  inset: 16px auto 16px 16px;
  width: 232px;
  height: auto;
  padding: 14px 12px;
  border: 1px solid rgba(125,42,232,.16);
  border-radius: 25px;
  background:
    radial-gradient(circle at 20% 0%, rgba(0,196,204,.12), transparent 14rem),
    rgba(240,234,255,.91);
  box-shadow: 0 24px 68px rgba(82,43,126,.14);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

body[data-official-theme="20"] .brand {
  width: auto;
  min-height: 48px;
  margin-bottom: 8px;
  padding: 7px 8px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(125,42,232,.12), rgba(0,196,204,.1));
}

body[data-official-theme="20"] .workspace {
  width: auto;
  margin: 0 0 14px;
  border-radius: 20px;
  background: rgba(255,255,255,.86);
}

body[data-official-theme="20"] .workspace i,
body[data-official-theme="20"] .header-actions i {
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
}

body[data-official-theme="20"] .sidebar nav {
  flex: none;
  margin: 0;
  display: grid;
  gap: 3px;
}

body[data-official-theme="20"] .sidebar nav > p {
  display: block;
  margin: 14px 11px 5px;
}

body[data-official-theme="20"] .sidebar .nav {
  min-width: 0;
  min-height: 42px;
  padding: 0 11px;
  border-radius: 13px;
  flex-direction: row;
  justify-content: flex-start;
  gap: 10px;
  font-size: 14px;
}

body[data-official-theme="20"] .sidebar .nav.active {
  border-color: transparent;
  background: linear-gradient(135deg, var(--theme-a), var(--theme-b));
  color: #fff;
  box-shadow: 0 9px 25px rgba(125,42,232,.25);
}

body[data-official-theme="20"] .sidebar .nav.active .nav-icon { color: #fff; }

body[data-official-theme="20"] main,
body[data-official-theme="20"] .main {
  margin-left: 268px;
  padding: 0 42px 56px;
}

body[data-official-theme="20"] .side-foot { display: block; }
body[data-official-theme="20"] .side-collapse {
  display: grid;
  border-color: #ded0ed;
  color: var(--theme-a);
}
body[data-official-theme="20"] .sidebar.collapsed {
  width: 72px;
  padding-inline: 10px;
}
body[data-official-theme="20"]:has(.sidebar.collapsed) main {
  margin-left: 108px;
}

body[data-official-theme="20"] header { height: 78px; }
body[data-official-theme="20"] .page { max-width: 1540px; padding-top: 28px; }

body[data-official-theme="20"] .hero {
  height: 330px;
  padding: 54px 58px;
  border-color: #e2d8ef;
  border-radius: 38px 12px 38px 12px;
  background:
    radial-gradient(circle at 80% 28%, rgba(0,196,204,.24), transparent 18rem),
    linear-gradient(128deg, #fff 0%, #fbf7ff 54%, #efe9ff 100%);
  box-shadow: 0 26px 70px rgba(82,43,126,.14);
}

body[data-official-theme="20"] .hero h1 { color: #2c2138; font-size: 48px; }
body[data-official-theme="20"] .hero p { color: #776b84; }
body[data-official-theme="20"] .orb {
  width: 230px;
  height: 230px;
  top: 35px;
  right: 100px;
  border: 0;
  border-radius: 38% 62% 56% 44%;
  background: radial-gradient(circle at 34% 28%, #fff 0 4%, #38e2e4 10%, #7650e8 44%, #5b20ad 76%);
  box-shadow: 0 28px 70px rgba(104,46,183,.27);
  animation: magic-move 7s ease-in-out infinite alternate;
}

@keyframes magic-move {
  to { transform: rotate(16deg) scale(1.07); border-radius: 62% 38% 42% 58%; }
}

body[data-official-theme="20"] .quick-grid { grid-template-columns: 1.25fr .88fr .88fr; }
body[data-official-theme="20"] .quick {
  height: 154px;
  border-radius: 24px 8px 24px 8px;
}
body[data-official-theme="20"] .quick:nth-child(1) b { background: #f0e7ff; color: #7d2ae8; }
body[data-official-theme="20"] .quick:nth-child(2) b { background: #e4fbfb; color: #009ca3; }
body[data-official-theme="20"] .quick:nth-child(3) b { background: #fff1de; color: #e17c31; }
body[data-official-theme="20"] .quick:hover { transform: translateY(-5px) rotate(-.25deg); }

body[data-official-theme="20"] .card,
body[data-official-theme="20"] .asset-mini,
body[data-official-theme="20"] .director-choice {
  border-radius: 24px;
}

body[data-official-theme="20"] .assets-grid-revised {
  grid-template-columns: 1.2fr .9fr .9fr;
}

body[data-official-theme="20"] .asset-mini:first-child {
  grid-row: span 2;
}

body[data-official-theme="20"] .asset-mini:first-child .asset-preview-mini { height: 280px; }
body[data-official-theme="20"] .metrics article,
body[data-official-theme="20"] .overview-metrics article { border-top: 3px solid var(--theme-a); }

@media (max-width: 1320px) {
  .theme-caption { display: none; }
}
