/*
  Polaris Index — Ideia A / Naval Tropical
  Camada exclusivamente visual carregada depois de css/style.css.
  A estrutura, o JavaScript, os dados, a galeria e as rotas permanecem intactos.
*/

:root{
  --navy:#0B3D56;
  --navy-2:#0D5069;
  --navy-3:#062D42;
  --teal:#0C7880;
  --teal-light:#2CB5B0;
  --gold:#C99B4A;
  --gold-soft:#E3C58F;
  --gold-line:#D5B879;
  --paper:#FFF8EC;
  --paper-2:#FAEFD9;
  --paper-3:#F0DFC1;
  --coral:#FF7B55;
  --coral-hover:#F16643;
  --ink:#173F4B;
  --muted-naval:#806E56;
  --display-font:'Pixelify Sans', monospace;
  --body-font:'Oxanium', sans-serif;

  --bg:#FBF1DF;
  --bg-grad:#F0DFC2;
  --surface:#FFF9EE;
  --surface-2:#F8EBD4;
  --surface-3:#EEDABD;
  --primary:var(--navy-2);
  --primary-2:var(--teal-light);
  --primary-soft:#D1E8E3;
  --accent:var(--navy-2);
  --accent-soft:var(--gold-line);
  --coral:#FF7B55;
  --coral-hover:#F16643;
  --sun:var(--gold);
  --deep:var(--navy);
  --text:var(--ink);
  --muted:var(--muted-naval);
  --border:#D8BD8D;
  --chip-bg:var(--navy);
  --chip-text:#FFF4DF;
  --on-accent:#FFF5E4;
  --shadow:0 6px 18px rgba(70,48,22,.09);
}

body.dark{
  --bg:#071823;
  --bg-grad:#07131D;
  --surface:#102A38;
  --surface-2:#0B2230;
  --surface-3:#173746;
  --ink:#F8EEDB;
  --primary:#2FBAB3;
  --primary-2:#64D8CD;
  --primary-soft:#102F35;
  --accent:#D6A858;
  --accent-soft:#796139;
  --coral:#FF7B55;
  --coral-hover:#FF6942;
  --sun:#D6A858;
  --deep:#082F45;
  --text:#F6EBD5;
  --muted:#C6B799;
  --border:#5B4930;
  --chip-bg:#0A425D;
  --chip-text:#FFF2D8;
  --on-accent:#061923;
  --shadow:0 8px 24px rgba(0,0,0,.26);
}

/* Typography */
body,
input,
textarea,
select,
.panel p,
.hero p,
.profile-hero p,
.meta,
.page-sub,
.fact-list,
.block-quote,
.lightbox-desc{
  font-family:var(--body-font);
}

button,
h1,h2,h3,
.brand h1,
.nav-label,
.nav-link,
.hero-badge,
.btn,
.page-title,
.kpi .n,
.kpi .t,
.section-head h3,
.section-head .link,
.feat-caption strong,
.feat-caption span,
.ch-card-body strong,
.ch-card-role,
.tab,
.ch-filter-label,
.ch-filter-btn,
.ch-total-label,
.count-pill,
.infobox h3,
.panel > h3,
.block-heading,
.back-link,
.link-list{
  font-family:var(--display-font);
}

.ti,
.ti::before{
  font-family:'tabler-icons' !important;
}

/* Global parchment + golden water texture */
body{
  background-color:var(--bg);
  background-image:
    linear-gradient(90deg, rgba(251,241,223,.98) 0%, rgba(251,241,223,.94) 58%, rgba(251,241,223,.58) 100%),
    url('../img/tropical-water-fade-gold.png'),
    radial-gradient(circle at 1px 1px, rgba(19,105,116,.10) 1px, transparent 1.25px),
    linear-gradient(160deg,var(--bg) 0%,var(--bg-grad) 100%);
  background-size:100% 100%,720px auto,14px 14px,auto;
  background-position:0 0,right top,0 0,0 0;
  background-repeat:no-repeat,no-repeat,repeat,no-repeat;
  background-attachment:fixed;
}

body.dark{
  background-image:
    linear-gradient(90deg, rgba(7,24,35,.94) 0%, rgba(7,24,35,.86) 58%, rgba(7,24,35,.56) 100%),
    url('../img/tropical-water-fade-gold.png'),
    radial-gradient(circle at 1px 1px, rgba(214,168,88,.09) 1px, transparent 1.25px),
    linear-gradient(160deg,var(--bg) 0%,var(--bg-grad) 100%);
}

/* Sidebar — preserve the approved waves and color palette */
.sidebar{
  overflow:hidden !important;
  scrollbar-width:none;
  background-color:#F6E7CC;
  background-image:
    url('../img/waves-sidebar.png'),
    linear-gradient(180deg,rgba(255,250,239,.95),rgba(241,221,188,.97)),
    radial-gradient(circle at 1px 1px,rgba(201,155,74,.12) 1px,transparent 1.3px);
  background-size:310px auto,100% 100%,12px 12px;
  background-position:left bottom -4px,0 0,0 0;
  background-repeat:no-repeat,no-repeat,repeat;
  border-right:1px solid #D4B77C;
  box-shadow:8px 0 28px rgba(72,49,22,.05);
}

body.dark .sidebar{
  background-color:#0A1C28;
  background-image:
    url('../img/waves-sidebar-dark.png'),
    linear-gradient(180deg,#0D2432,#071823),
    radial-gradient(circle at 1px 1px,rgba(214,168,88,.10) 1px,transparent 1.3px);
  background-size:310px auto,100% 100%,12px 12px;
  background-position:left bottom -4px,0 0,0 0;
  background-repeat:no-repeat,no-repeat,repeat;
  border-right-color:#5B4930;
}

.sidebar::before{content:none !important;display:none !important}

.brand{
  border-bottom:1px solid #D9BE8D;
  padding-bottom:20px;
}

.brand-mark{
  color:#FFF0D5;
  background:linear-gradient(145deg,var(--navy-2),var(--navy));
  border:1px solid var(--gold);
  box-shadow:3px 3px 0 rgba(201,155,74,.22);
}

.brand::after{
  color:var(--coral);
}

.nav-label{
  color:#6F604C;
}

body.dark .nav-label{color:#C5B897}

.nav-link{
  border:1px solid transparent;
  border-radius:8px;
  color:var(--text);
}

.nav-link:hover{
  background:rgba(255,249,238,.62);
  border-color:rgba(201,155,74,.42);
}

body.dark .nav-link:hover{background:rgba(23,55,70,.72)}

.nav-link.active{
  background:linear-gradient(180deg,#FF8762,var(--coral));
  color:#102F3A;
  border-color:#C95E42;
  box-shadow:4px 4px 0 rgba(11,61,86,.20);
}

.nav-link.active .nav-ico{color:var(--navy)}

/* Topbar */
.topbar{
  background:color-mix(in srgb,var(--paper) 91%,transparent);
  border-bottom:1px solid #D8BC88;
  backdrop-filter:blur(12px);
}

body.dark .topbar{background:rgba(7,24,35,.90)}

.searchbar{
  background:var(--surface);
  border:1px solid #806E54;
  border-bottom-width:2px;
  border-radius:8px;
  box-shadow:2px 2px 0 rgba(11,61,86,.10);
}

.icon-btn,.user-chip{
  border-color:#D6BE91;
  background:var(--surface);
  border-radius:8px;
}

.user-chip{
  background:var(--navy);
  color:#FFF0D5;
  border-color:var(--gold);
}

/* Hero — clean naval color treatment, without nautical symbols */
.hero{
  min-height:350px;
  border:1px solid #A87837;
  border-radius:13px;
  box-shadow:0 14px 28px rgba(8,45,66,.20),0 0 0 3px rgba(201,155,74,.16);
  background-color:var(--navy);
}

.hero.has-image{
  border-color:#A87837;
}

.hero.has-image::after{
  background:
    linear-gradient(90deg,rgba(4,42,61,.93) 0%,rgba(4,42,61,.70) 43%,rgba(4,42,61,.20) 76%,rgba(4,42,61,.08) 100%);
}


.hero-copy{max-width:620px}

.hero-badge{
  background:rgba(7,59,82,.90);
  color:#FFF0D6;
  border:1px solid rgba(201,155,74,.72);
  border-radius:6px;
  padding:6px 18px;
  clip-path:none;
  box-shadow:none;
}

.hero h2{
  color:#FFF3DA !important;
  text-shadow:4px 4px 0 #082B3E,0 0 20px rgba(255,245,219,.10);
  letter-spacing:.025em;
}

.hero p{
  color:#F6EBD8 !important;
  font-size:15px;
  line-height:1.62;
}

.btn{
  border-radius:7px;
  border:1px solid rgba(7,35,48,.45);
  box-shadow:4px 4px 0 rgba(6,38,54,.30);
}

.btn-primary{
  background:linear-gradient(180deg,#FF8964,var(--coral));
  color:#102F3A;
}

.btn-ghost{
  background:#FFF3DE;
  color:#163D4B;
  border-color:#B89C6E;
}

/* KPI chart strip */
.kpis{
  position:relative;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  background:var(--surface);
  border:1px solid #B88B4D;
  border-radius:11px;
  box-shadow:0 6px 18px rgba(71,49,22,.09);
  overflow:hidden;
}

.kpis::after{content:none !important;display:none !important}

.kpi{
  position:relative;
  z-index:1;
  min-height:92px;
  padding:18px 22px;
  border-top:0;
  border-right:1px solid rgba(184,139,77,.42);
  display:flex;
  align-items:center;
  gap:14px;
}

.kpi:last-child{border-right:0}

.kpi-ico{
  border:2px solid var(--navy-2);
  color:var(--navy-2);
  background:#FFF7E8;
  box-shadow:inset 0 0 0 3px rgba(201,155,74,.14);
}

.kpi .n{
  color:var(--navy);
  font-size:36px;
  text-shadow:2px 2px 0 rgba(201,155,74,.28);
}

.kpi .t{color:#6F604C}
.kpi .t::after{background:var(--gold)}

body.dark .kpi .n{color:#F6E9CE}
body.dark .kpi .t{color:#C5B897}
body.dark .kpi-ico{background:#102A38;color:#D6A858;border-color:#D6A858}

/* Global panels */
.panel,
.ch-filters,
.infobox,
.list-card,
.item-card,
.search-results > *,
.gallery-item,
.block-image-btn{
  position:relative;
  background:var(--surface);
  border:1px solid #C8A66B;
  border-radius:10px;
  box-shadow:var(--shadow);
}

.panel::after,
.ch-filters::after,
.infobox::after{content:none !important;display:none !important}

.panel > *,
.ch-filters > *,
.infobox > *{position:relative;z-index:4}

.panel::before,
.ch-filters::before,
.infobox::before{content:none !important;display:none !important}

/* Section labels */
.section-head{
  border-bottom:1px solid #CBB181;
  padding-bottom:10px;
}

.section-head h3{
  min-height:34px;
  background:linear-gradient(90deg,var(--navy),var(--navy-2));
  color:#FFF1D7;
  border:1px solid var(--gold);
  border-radius:6px;
  clip-path:none;
  padding:8px 24px;
  letter-spacing:.12em;
  box-shadow:3px 3px 0 rgba(201,155,74,.18);
}

.section-head h3::before{content:none}

.count-pill{
  margin-left:16px;
  background:#123F56;
  color:#FFF1D7;
  border:1px solid rgba(227,197,143,.35);
  clip-path:none;
  border-radius:4px;
  padding:3px 12px;
}

.section-head .link{color:var(--coral)}

/* Cards */
.feat-card,
.ch-card,
.list-card,
.item-card{
  border:1px solid #B98C4D;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 5px 14px rgba(75,51,23,.09);
}

.feat-card::before,.feat-card::after,
.ch-card::before,.ch-card::after,
.item-card::after,.list-card::after,
.gallery-item::after{content:none !important;display:none !important}

.feat-art,
.ch-card-art,
.thumb{
  position:relative;
  background-color:var(--navy);
}

.feat-art::after,
.ch-card-art::after,
.thumb::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(145deg,rgba(44,181,176,.035),rgba(6,45,66,.055));
}

.feat-caption,
.ch-card-body{
  background:#FFF7E9;
  border-top:1px solid #C9A76C;
}

body.dark .feat-caption,
body.dark .ch-card-body{background:#102A38}

.feat-caption strong,
.ch-card-body strong{color:var(--navy)}
body.dark .feat-caption strong,
body.dark .ch-card-body strong{color:#F7EBCF}

.feat-caption span,
.ch-card-role{color:var(--teal)}
.feat-plus{color:var(--coral)}

.feat-card:hover,.ch-card:hover{
  transform:translateY(-3px);
  border-color:var(--gold);
  box-shadow:0 12px 24px rgba(9,56,79,.18);
}

.item-card{
  background:#FFF6E7;
}
body.dark .item-card{background:#102A38}

.item-card:hover,.list-card:hover{
  transform:translateX(2px);
  border-color:var(--gold);
}

/* Page headings */
.page-head{padding-left:18px}
.page-head::before{background:linear-gradient(var(--navy) 0 66%,var(--gold) 66%)}
.page-title{color:var(--navy);letter-spacing:.035em}
body.dark .page-title{color:#F6E9CE}

/* Character listing filters */
.ch-filters-head{border-bottom-color:#CBB181}
.ch-filter-btn{
  background:#FFF4E2;
  border-color:#D2B77F;
  border-radius:7px;
}
body.dark .ch-filter-btn{background:#153342}
.ch-filter-btn.active{
  background:var(--coral);
  border-color:#C65D40;
  color:#102F3A;
  box-shadow:3px 3px 0 rgba(11,61,86,.18);
}
.ch-total-num{color:var(--navy);text-shadow:2px 2px 0 rgba(201,155,74,.25)}
body.dark .ch-total-num{color:#F6E9CE}

/* Character detail */
.profile-hero{
  border:1px solid #B98B48;
  border-radius:10px;
  box-shadow:0 12px 26px rgba(8,45,66,.18);
}

.profile-hero::before{
  background:linear-gradient(90deg,rgba(5,47,67,.92),rgba(5,47,67,.60) 50%,rgba(5,47,67,.16));
}

/* Mantém desativada a antiga borda interna criada pelo pseudo-elemento da base. */
.profile-hero::after{
  content:none !important;
  display:none !important;
}


.tabs{
  background:#F6E7CC;
  border:1px solid #C8A66B;
  border-radius:8px;
  padding:6px;
}
body.dark .tabs{background:#0B2230}

.tab{
  background:#EEDABD;
  color:#725E43;
  border:1px solid transparent;
  border-radius:6px;
}
body.dark .tab{background:#173746;color:#C8B996}

.tab.active{
  background:var(--coral);
  color:#102F3A;
  border-color:#C75E42;
  box-shadow:3px 3px 0 rgba(11,61,86,.18);
}

.profile > .infobox{
  position:static;
  align-self:start;
}

.infobox .portrait{
  border:1px solid var(--gold);
  outline:3px solid rgba(11,61,86,.18);
  outline-offset:3px;
  border-radius:10px;
  background-color:var(--navy);
}

.fact-list li{border-bottom:1px dashed #D7BC8A}
.fact-list li strong{color:#7A674D}
body.dark .fact-list li strong{color:#C8B996}

.link-list li{border-bottom-color:#D7BC8A}
.link-list a{color:var(--teal)}

.block-heading{
  color:var(--navy-2);
  padding-left:22px;
}
.block-heading::before{content:'//';color:var(--coral)}

.block-quote{
  border-left:6px solid var(--gold);
  background:linear-gradient(90deg,rgba(201,155,74,.12),transparent);
}

/* Gallery visual only */
.gallery-item{
  border-color:#C8A66B;
  background:var(--surface);
}
.gallery-item:hover{border-color:var(--gold);box-shadow:0 10px 22px rgba(9,56,79,.18)}
.lightbox-panel{border-color:var(--gold);box-shadow:0 28px 76px rgba(0,0,0,.48)}
.lightbox-header,.lightbox-strip{background:var(--surface-2);border-color:#C8A66B}
.lightbox-name{color:var(--navy-2)}
body.dark .lightbox-name{color:#D6A858}

/* Footer */
.footer{border-top-color:#CBB181;color:#806E56}
body.dark .footer{color:#C5B897}
.footer-warning{display:flex;flex-direction:column;gap:5px;line-height:1.55}
.footer-warning strong{color:var(--navy-2)}
body.dark .footer-warning strong{color:#D6A858}

@media (max-width:1180px){
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:900px){
  .sidebar{background-image:linear-gradient(180deg,#FFF8EC,#F0DFC2)}
  body.dark .sidebar{background-image:linear-gradient(180deg,#0D2432,#071823)}
}

@media (max-width:820px){
  body,body.dark{
    background-size:100% 100%,420px auto,16px 16px,auto;
  }
  .kpi{padding:14px 12px;gap:9px}
}

@media (max-width:620px){
  .kpis{grid-template-columns:1fr}
  .kpi{border-right:0;border-bottom:1px solid rgba(184,139,77,.35)}
  .kpi:last-child{border-bottom:0}
  .section-head h3{padding-left:14px}
}



/* Home — character artwork stays bright and rotates randomly. */
#featured-row .feat-art{
  filter:none;
}
#featured-row .feat-art::after{
  background:linear-gradient(145deg,rgba(44,181,176,.025),rgba(6,45,66,.04));
}

/* Louise only — smooth white twinkles above the interface.
   The GIFs are transparent; light mode uses a soft gold halo while dark mode stays white. */
.character-sparkle-layer{
  position:fixed;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  z-index:900;
}

.character-sparkle{
  position:absolute;
  display:block;
  opacity:.96;
  transform:translate3d(0,0,0) scale(1);
  transform-origin:center;
  filter:
    drop-shadow(0 0 2px rgba(112,70,14,.82))
    drop-shadow(0 0 5px rgba(216,160,48,.84))
    drop-shadow(0 0 9px rgba(250,215,123,.72))
    drop-shadow(0 0 13px rgba(255,249,218,.58));
  animation-name:louiseSparkleDrift;
  animation-timing-function:ease-out;
  animation-fill-mode:forwards;
}

body.dark .character-sparkle{
  filter:
    drop-shadow(0 0 2px rgba(148,94,20,.82))
    drop-shadow(0 0 6px rgba(239,184,70,.76))
    drop-shadow(0 0 11px rgba(255,239,176,.72));
}

@keyframes louiseSparkleDrift{
  0%{opacity:0;transform:translate3d(0,4px,0) scale(.72)}
  16%{opacity:var(--sparkle-opacity,.96);transform:translate3d(0,0,0) scale(1)}
  70%{opacity:var(--sparkle-opacity,.96);transform:translate3d(calc(var(--sparkle-drift-x,0px)*.45),calc(var(--sparkle-drift-y,-7px)*.45),0) scale(1.03)}
  100%{opacity:0;transform:translate3d(var(--sparkle-drift-x,0px),var(--sparkle-drift-y,-7px),0) scale(.92)}
}


/* ==========================================================
   Variante 5 — Ideia A
   Visual inspirado na referência aprovada pelo usuário.
   A estrutura, o HTML e o JavaScript permanecem inalterados.
   Ornamentos complexos usam PNGs reais em img/variant5/.
   ========================================================== */

:root{
  --v5-cream:#F7ECD8;
  --v5-cream-soft:#FFF8EC;
  --v5-paper:#FFF9EF;
  --v5-paper-alt:#F4E4C7;
  --v5-teal:#0A4B5F;
  --v5-teal-deep:#07384B;
  --v5-teal-soft:#6FB7C0;
  --v5-aqua:#9DCBD0;
  --v5-gold:#D2A451;
  --v5-gold-soft:#E7CE9B;
  --v5-coral:#FF7455;
  --v5-coral-dark:#E85E3F;
  --v5-ink:#153D48;
  --v5-muted:#786A56;
  --v5-line:#D8B979;
  --v5-shadow:0 8px 24px rgba(72,48,17,.10);

  --bg:var(--v5-cream);
  --bg-grad:#EFDDBE;
  --surface:var(--v5-paper);
  --surface-2:#F7E9D0;
  --surface-3:#EED8B4;
  --primary:var(--v5-teal);
  --primary-2:#168391;
  --primary-soft:#D4E7E4;
  --accent:var(--v5-teal);
  --accent-soft:var(--v5-gold-soft);
  --coral:var(--v5-coral);
  --coral-hover:var(--v5-coral-dark);
  --sun:var(--v5-gold);
  --deep:var(--v5-teal-deep);
  --text:var(--v5-ink);
  --muted:var(--v5-muted);
  --border:var(--v5-line);
  --chip-bg:var(--v5-teal-deep);
  --chip-text:#FFF1D7;
  --on-accent:#FFF7EA;
  --shadow:var(--v5-shadow);
}

body.dark{
  --bg:#061A24;
  --bg-grad:#08141C;
  --surface:#0D2A36;
  --surface-2:#0A2230;
  --surface-3:#153846;
  --primary:#6FCAD0;
  --primary-2:#94E0DD;
  --primary-soft:#173B40;
  --accent:#D4AA5D;
  --accent-soft:#6E5933;
  --coral:#FF7A5A;
  --coral-hover:#FF6341;
  --sun:#D4AA5D;
  --deep:#082F42;
  --text:#F6EBD7;
  --muted:#C6B89C;
  --border:#5D4A2E;
  --chip-bg:#0A4358;
  --chip-text:#FFF1D9;
  --on-accent:#071A23;
  --shadow:0 10px 28px rgba(0,0,0,.26);
}

body{
  background-color:var(--bg) !important;
  background-image:
    url('../img/variant5/water-right-light.png'),
    url('../img/variant5/paper-grain.png'),
    linear-gradient(155deg,#FBF2E2 0%,#F6E7CD 58%,#EFE0C5 100%) !important;
  background-position:right top,0 0,0 0 !important;
  background-size:680px auto,256px 256px,100% 100% !important;
  background-repeat:no-repeat,repeat,no-repeat !important;
  background-attachment:fixed !important;
}

body.dark{
  background-image:
    url('../img/variant5/water-right-dark.png'),
    url('../img/variant5/paper-grain.png'),
    linear-gradient(155deg,#071B25 0%,#06141D 58%,#091722 100%) !important;
}

/* Sidebar returns to the approved simple layout with subdued wave artwork. */
.sidebar{
  background-color:#F6E8CF !important;
  background-image:
    url('../img/variant5/wave-left-light.png'),
    linear-gradient(180deg,rgba(255,249,238,.98),rgba(244,224,191,.98)) !important;
  background-size:300px auto,100% 100% !important;
  background-position:left bottom -2px,0 0 !important;
  background-repeat:no-repeat,no-repeat !important;
  border-right:1px solid #D5B776 !important;
  box-shadow:8px 0 26px rgba(76,53,20,.045) !important;
  overflow:hidden !important;
}

body.dark .sidebar{
  background-color:#082331 !important;
  background-image:
    url('../img/variant5/wave-left-dark.png'),
    linear-gradient(180deg,#0A2C39,#071A25) !important;
  border-right-color:#58472D !important;
}

.sidebar::before{content:none !important;display:none !important}

.brand{
  border-bottom:1px solid color-mix(in srgb,var(--sun) 42%,var(--border)) !important;
  padding-bottom:20px !important;
}

.brand-mark{
  background:linear-gradient(145deg,#0F6071,#07384B) !important;
  color:#FFF0D3 !important;
  border:1px solid var(--sun) !important;
  border-radius:10px !important;
  box-shadow:3px 3px 0 rgba(210,164,81,.20) !important;
}

.nav-label{
  color:color-mix(in srgb,var(--muted) 84%,var(--primary) 16%) !important;
}

.nav-link{
  color:var(--text) !important;
  border:1px solid transparent !important;
  border-radius:8px !important;
  padding:11px 13px !important;
}

.nav-link:hover{
  background:rgba(255,249,238,.60) !important;
  border-color:rgba(210,164,81,.36) !important;
}

body.dark .nav-link:hover{
  background:rgba(31,76,89,.48) !important;
}

.nav-link.active{
  color:#0D3440 !important;
  background:linear-gradient(180deg,#FF8464,var(--v5-coral)) !important;
  border-color:#D86448 !important;
  box-shadow:4px 4px 0 rgba(10,75,95,.18) !important;
}

/* Topbar */
.topbar{
  background:rgba(255,249,239,.91) !important;
  border-bottom:1px solid rgba(210,164,81,.45) !important;
  backdrop-filter:blur(12px) !important;
}
body.dark .topbar{background:rgba(6,26,36,.91) !important}

.searchbar{
  background:var(--surface) !important;
  border:1px solid #9B8462 !important;
  border-bottom-width:2px !important;
  border-radius:9px !important;
  box-shadow:2px 2px 0 rgba(10,75,95,.08) !important;
}

.icon-btn,.user-chip{
  background:var(--surface) !important;
  border:1px solid #D7BE91 !important;
  border-radius:9px !important;
}

.user-chip{
  background:linear-gradient(145deg,#0E6070,#07384B) !important;
  color:#FFF2D8 !important;
  border-color:var(--sun) !important;
}

/* Main hero */
.hero{
  min-height:350px !important;
  border:1px solid #B78B45 !important;
  border-radius:13px !important;
  background-color:var(--v5-teal-deep) !important;
  box-shadow:0 12px 28px rgba(7,56,75,.18),0 0 0 3px rgba(210,164,81,.10) !important;
}

.hero.has-image::after{
  background:linear-gradient(90deg,rgba(4,49,66,.93) 0%,rgba(4,49,66,.72) 42%,rgba(4,49,66,.18) 78%,rgba(4,49,66,.05) 100%) !important;
}


.hero-badge{
  background:rgba(7,70,86,.88) !important;
  color:#FFF0D4 !important;
  border:1px solid rgba(210,164,81,.82) !important;
  border-radius:6px !important;
  clip-path:none !important;
  padding:6px 18px !important;
  box-shadow:none !important;
}

.hero h2,.profile-hero h2{
  color:#FFF4DC !important;
  text-shadow:4px 4px 0 #082D3D,0 0 16px rgba(255,245,220,.08) !important;
}

.hero p,.profile-hero p{
  color:#F6EAD6 !important;
  line-height:1.6 !important;
}

.btn{
  border-radius:7px !important;
  box-shadow:4px 4px 0 rgba(6,38,54,.24) !important;
}

.btn-primary{
  color:#103744 !important;
  background:linear-gradient(180deg,#FF8766,var(--v5-coral)) !important;
  border-color:#D86448 !important;
}

.btn-ghost{
  color:#173F4A !important;
  background:#FFF3DE !important;
  border-color:#BCA06E !important;
}

/* KPIs */
.kpis{
  background:rgba(255,249,239,.93) !important;
  border:1px solid #C69C5B !important;
  border-radius:11px !important;
  box-shadow:0 6px 18px rgba(72,48,17,.08) !important;
  overflow:hidden !important;
}
body.dark .kpis{background:rgba(13,42,54,.93) !important}

.kpi{
  border-top:0 !important;
  border-right:1px solid rgba(198,156,91,.38) !important;
  min-height:92px !important;
}
.kpi:last-child{border-right:0 !important}

.kpi-ico{
  background:#FFF6E4 !important;
  border:2px solid var(--v5-teal) !important;
  color:var(--v5-teal) !important;
  box-shadow:inset 0 0 0 3px rgba(210,164,81,.10) !important;
}
body.dark .kpi-ico{
  background:#102E3A !important;
  color:#D7AC5E !important;
  border-color:#D7AC5E !important;
}

.kpi .n{color:var(--v5-teal-deep) !important;text-shadow:2px 2px 0 rgba(210,164,81,.20) !important}
body.dark .kpi .n{color:#F8ECD4 !important}
.kpi .t{color:#6F604C !important}
body.dark .kpi .t{color:#C9BA9C !important}
.kpi .t::after{background:var(--v5-coral) !important}

/* Panels and content surfaces */
.panel,
.ch-filters,
.infobox,
.item-card,
.list-card,
.search-results > *,
.gallery-item,
.block-image-btn{
  background:rgba(255,249,239,.95) !important;
  border:1px solid #C8A66A !important;
  border-radius:10px !important;
  box-shadow:var(--v5-shadow) !important;
}
body.dark .panel,
body.dark .ch-filters,
body.dark .infobox,
body.dark .item-card,
body.dark .list-card,
body.dark .search-results > *,
body.dark .gallery-item,
body.dark .block-image-btn{
  background:rgba(13,42,54,.96) !important;
}

.panel::before,.panel::after,
.ch-filters::before,.ch-filters::after,
.infobox::before,.infobox::after{content:none !important;display:none !important}

.section-head{
  border-bottom:1px solid #CBB080 !important;
  padding-bottom:10px !important;
}

.section-head h3{
  min-height:34px !important;
  color:#FFF2D7 !important;
  background:linear-gradient(90deg,#07384B,#0A5567) !important;
  border:1px solid var(--v5-gold) !important;
  border-radius:6px !important;
  clip-path:none !important;
  padding:8px 24px !important;
  letter-spacing:.10em !important;
  box-shadow:3px 3px 0 rgba(210,164,81,.16) !important;
}

.count-pill{
  color:#FFF2D7 !important;
  background:#0C455A !important;
  border:1px solid rgba(231,206,155,.35) !important;
  border-radius:4px !important;
  clip-path:none !important;
  padding:3px 12px !important;
}

.section-head .link{color:var(--v5-coral) !important}

/* Cards */
.feat-card,.ch-card,.list-card,.item-card{
  border:1px solid #B98C4E !important;
  border-radius:8px !important;
  overflow:hidden !important;
  box-shadow:0 5px 14px rgba(75,51,23,.08) !important;
}

.feat-art,.ch-card-art,.thumb{
  background-color:#0B4C61 !important;
  background-image:url('../img/variant5/card-water-pattern.png');
  background-size:cover;
  background-position:center;
}

.feat-art::after,.ch-card-art::after,.thumb::after{
  background:linear-gradient(145deg,rgba(118,193,198,.025),rgba(7,56,75,.035)) !important;
}

.feat-caption,.ch-card-body{
  background:#FFF7E9 !important;
  border-top:1px solid #C9A76C !important;
}
body.dark .feat-caption,body.dark .ch-card-body{background:#102F3B !important}

.feat-caption strong,.ch-card-body strong{color:#0B4356 !important}
body.dark .feat-caption strong,body.dark .ch-card-body strong{color:#F8ECD4 !important}
.feat-caption span,.ch-card-role{color:#087887 !important}
.feat-plus{color:var(--v5-coral) !important}

.feat-card:hover,.ch-card:hover{
  transform:translateY(-3px) !important;
  border-color:var(--v5-gold) !important;
  box-shadow:0 12px 24px rgba(7,56,75,.16) !important;
}

.item-card{
  background:#FFF6E7 !important;
}
body.dark .item-card{background:#102F3B !important}
.item-card:hover,.list-card:hover{border-color:var(--v5-gold) !important}

/* Character index and detail follow the same visual system. */
.page-head::before{background:linear-gradient(var(--v5-teal) 0 66%,var(--v5-gold) 66%) !important}
.page-title{color:var(--v5-teal-deep) !important}
body.dark .page-title{color:#F8ECD4 !important}

.ch-filter-btn{
  background:#FFF3DF !important;
  border-color:#D2B77F !important;
  border-radius:7px !important;
}
body.dark .ch-filter-btn{background:#153846 !important}
.ch-filter-btn.active{
  color:#103744 !important;
  background:var(--v5-coral) !important;
  border-color:#C95F42 !important;
  box-shadow:3px 3px 0 rgba(10,75,95,.16) !important;
}

.profile-hero{
  border:1px solid #B98B48 !important;
  border-radius:10px !important;
  box-shadow:0 12px 26px rgba(7,56,75,.16) !important;
}

.profile-hero::before{
  background:linear-gradient(90deg,rgba(4,49,66,.86),rgba(4,49,66,.52) 50%,rgba(4,49,66,.08)) !important;
}
.profile-hero::after{content:none !important;display:none !important}

.tabs{
  background:#F5E6CA !important;
  border:1px solid #C8A66B !important;
  border-radius:8px !important;
}
body.dark .tabs{background:#0B2431 !important}
.tab{
  background:#ECD6B1 !important;
  color:#725E43 !important;
  border-radius:6px !important;
}
body.dark .tab{background:#173846 !important;color:#C9BA9C !important}
.tab.active{
  color:#103744 !important;
  background:var(--v5-coral) !important;
  border-color:#C95E42 !important;
  box-shadow:3px 3px 0 rgba(10,75,95,.16) !important;
}

.infobox .portrait{
  background-color:#0B4C61 !important;
  border:1px solid var(--v5-gold) !important;
  outline:3px solid rgba(10,75,95,.14) !important;
}

.fact-list li{border-bottom-color:#D7BC8A !important}
.link-list li{border-bottom-color:#D7BC8A !important}
.link-list a{color:#087887 !important}
.block-heading{color:#0A596C !important}
.block-heading::before{color:var(--v5-coral) !important}
.block-quote{
  border-left-color:var(--v5-gold) !important;
  background:linear-gradient(90deg,rgba(210,164,81,.12),transparent) !important;
}

/* Footer */
.footer{border-top-color:#CBB181 !important;color:#806E56 !important}
body.dark .footer{color:#C5B897 !important}

@media (max-width:900px){
  .sidebar{
    background-image:linear-gradient(180deg,#FFF8EC,#F0DFC2) !important;
  }
  body.dark .sidebar{
    background-image:linear-gradient(180deg,#0B2A36,#071A24) !important;
  }
}

@media (max-width:820px){
  body,body.dark{
    background-size:420px auto,256px 256px,100% 100% !important;
  }
}

/* Mantém a aba ativa em coral também no tema escuro. */
body.dark .tab.active{
  background:var(--v5-coral) !important;
  color:#103744 !important;
  border-color:#C95E42 !important;
  box-shadow:3px 3px 0 rgba(0,0,0,.22) !important;
}

/* Louise-only sparkle effect inside character artwork cards. */
.feat-art.has-character-card-sparkles,
.ch-card-art.has-character-card-sparkles{
  position:relative;
  overflow:hidden;
}

.character-card-sparkle-layer{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  overflow:hidden;
}

.character-card-sparkle{
  position:absolute;
  display:block;
  height:auto;
  pointer-events:none;
  filter:
    drop-shadow(0 0 2px rgba(132,82,16,.72))
    drop-shadow(0 0 4px rgba(225,174,68,.72));
  animation:characterCardTwinkle .82s ease-out forwards;
}

body.dark .character-card-sparkle{
  filter:
    drop-shadow(0 0 2px rgba(160,103,24,.72))
    drop-shadow(0 0 5px rgba(255,221,139,.62));
}

@keyframes characterCardTwinkle{
  0%{opacity:0;transform:scale(.60) rotate(-5deg)}
  28%{opacity:var(--sparkle-opacity,.82);transform:scale(1.03) rotate(0deg)}
  66%{opacity:var(--sparkle-opacity,.82);transform:scale(.94) rotate(3deg)}
  100%{opacity:0;transform:scale(.52) rotate(6deg)}
}


/* Private content editor */
.admin-page{max-width:1500px}
.admin-source{
  align-self:flex-start;
  padding:6px 11px;
  border:1px solid #C8A66A;
  border-radius:999px;
  background:#FFF3DF;
  color:#725E43;
  font-size:12px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
body.dark .admin-source{background:#153846;color:#F8ECD4}
.admin-source.cloud{border-color:#579489;color:#0A596C}
body.dark .admin-source.cloud{color:#AEE5DC}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.admin-tabs button,
.admin-editor-toolbar button{
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFF3DF;
  color:#725E43;
  min-height:34px;
  padding:6px 11px;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
body.dark .admin-tabs button,
body.dark .admin-editor-toolbar button{background:#153846;color:#F8ECD4}
.admin-tabs button.active,
.admin-editor-toolbar button.active{
  background:var(--v5-coral);
  border-color:#C95E42;
  color:#103744;
}
.admin-editor-toolbar button:disabled{opacity:.42;cursor:not-allowed}
.admin-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:start}
.admin-list-panel{position:sticky;top:18px}
.admin-link-button{border:0;background:transparent;cursor:pointer;font:inherit}
.admin-list-item{
  display:flex;
  width:100%;
  flex-direction:column;
  gap:4px;
  margin-top:8px;
  padding:11px 12px;
  text-align:left;
  border:1px solid #D7BC8A;
  border-radius:7px;
  background:#FFF8ED;
  color:inherit;
  cursor:pointer;
}
body.dark .admin-list-item{background:#102F3B}
.admin-list-item span{font-size:12px;color:var(--muted)}
.admin-list-item.active{border-color:var(--v5-coral);box-shadow:inset 3px 0 0 var(--v5-coral)}
.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.admin-form-grid label,
.admin-editor-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;letter-spacing:.04em}
.admin-field-wide{grid-column:1/-1}
.admin-form-grid input[type='text'],
.admin-form-grid textarea,
.admin-form-grid select{
  width:100%;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:inherit;
  padding:10px 11px;
  font:inherit;
}
body.dark .admin-form-grid input[type='text'],
body.dark .admin-form-grid textarea,
body.dark .admin-form-grid select{background:#0B2431;color:#F8ECD4}
.admin-cover-preview{display:flex;align-items:center;gap:12px;margin:16px 0}
.admin-cover-preview img{width:180px;height:90px;object-fit:cover;border:1px solid #C8A66A;border-radius:7px}
.admin-cover-preview button{border:0;background:transparent;color:var(--v5-coral);cursor:pointer;font-weight:800}
.admin-editor-label{margin-top:18px}
.admin-editor{margin-top:7px;border:1px solid #C8A66A;border-radius:8px;overflow:hidden;background:#FFFDF8}
body.dark .admin-editor{background:#0B2431}
.admin-editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:9px;border-bottom:1px solid #D7BC8A;background:#F5E6CA}
body.dark .admin-editor-toolbar{background:#102F3B}
.admin-file-input{display:none}
.admin-editor .tiptap{min-height:360px;padding:18px;outline:none;line-height:1.7}
.admin-editor .tiptap p.is-editor-empty:first-child::before{content:attr(data-placeholder);float:left;color:var(--muted);pointer-events:none;height:0}
.admin-editor .tiptap img,
.rich-text-content img{display:block;max-width:100%;height:auto;margin:18px auto;border:1px solid #C8A66A;border-radius:8px;box-shadow:var(--v5-shadow)}
.admin-editor .tiptap blockquote,
.rich-text-content blockquote{border-left:4px solid var(--v5-gold);margin:18px 0;padding:8px 16px;background:linear-gradient(90deg,rgba(210,164,81,.12),transparent)}
.admin-editor .tiptap h2,
.admin-editor .tiptap h3,
.rich-text-content h2,
.rich-text-content h3{color:#0A596C;margin:24px 0 10px}
body.dark .admin-editor .tiptap h2,
body.dark .admin-editor .tiptap h3,
body.dark .rich-text-content h2,
body.dark .rich-text-content h3{color:#F8ECD4}
.admin-editor .tiptap a,
.rich-text-content a{color:#087887;text-decoration:underline}
.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.admin-delete{background:transparent;border:1px solid #B84F45;color:#B84F45}
.admin-message{margin-top:12px;padding:10px 12px;border:1px solid #C8A66A;border-radius:7px;background:rgba(210,164,81,.10)}
.admin-preview{margin-top:18px;padding-top:18px;border-top:1px solid #D7BC8A}
.admin-preview>h2{margin-top:0}

@media (max-width:900px){
  .admin-layout{grid-template-columns:1fr}
  .admin-list-panel{position:static}
}
@media (max-width:620px){
  .admin-form-grid{grid-template-columns:1fr}
  .admin-field-wide{grid-column:auto}
  .admin-editor-toolbar button{padding:6px 8px}
}
.rich-text-image-button{
  display:block;
  width:100%;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-in;
}
.rich-text-image-button img{pointer-events:none}
.admin-form-grid input:disabled{
  opacity:.68;
  cursor:not-allowed;
}

/* Extended private editor controls */
.admin-unsaved{
  margin-bottom:14px;
  padding:8px 11px;
  border-left:4px solid var(--v5-coral);
  background:rgba(255,111,78,.10);
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.admin-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch}
.admin-list-row .admin-list-item{margin-top:8px}
.admin-order-buttons{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.admin-order-buttons button,
.admin-image-heading button,
.admin-image-actions button,
.admin-gallery-item button,
.admin-relation-row button{
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFF3DF;
  color:#725E43;
  padding:6px 9px;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
body.dark .admin-order-buttons button,
body.dark .admin-image-heading button,
body.dark .admin-image-actions button,
body.dark .admin-gallery-item button,
body.dark .admin-relation-row button{background:#153846;color:#F8ECD4}
.admin-order-buttons button:disabled,
.admin-gallery-item button:disabled{opacity:.38;cursor:not-allowed}
.admin-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.admin-character-images{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-image-field,
.admin-gallery-field,
.admin-relations,
.admin-effect-panel{
  margin-top:18px;
  padding:13px;
  border:1px solid #D7BC8A;
  border-radius:8px;
  background:rgba(255,248,237,.55);
}
body.dark .admin-image-field,
body.dark .admin-gallery-field,
body.dark .admin-relations,
body.dark .admin-effect-panel{background:rgba(16,47,59,.70)}
.admin-image-grid .admin-image-field{margin-top:0}
.admin-image-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.admin-image-heading>div:first-child{display:flex;flex-direction:column;gap:3px}
.admin-image-heading strong{font-size:13px}
.admin-image-heading span{font-size:11px;color:var(--muted);line-height:1.4}
.admin-image-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.admin-image-remove{color:#B84F45!important;border-color:#B84F45!important}
.admin-image-preview{margin-top:12px;border:1px solid #C8A66A;border-radius:7px;overflow:hidden;background:#0A596C}
.admin-image-preview img{display:block;width:100%;height:150px;object-fit:cover}
.admin-image-preview.banner img{height:190px}
.admin-image-preview.portrait img{height:210px;object-fit:contain}
.admin-image-preview.effect img{height:90px;object-fit:contain}
.admin-image-empty{margin-top:10px;padding:13px;border:1px dashed #C8A66A;border-radius:7px;color:var(--muted);font-size:12px}
.admin-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}
.admin-gallery-item{padding:8px;border:1px solid #D7BC8A;border-radius:7px;background:var(--panel)}
.admin-gallery-item img{display:block;width:100%;height:105px;object-fit:cover;border-radius:5px}
.admin-gallery-item>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.admin-relation-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.admin-relation-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:center}
.admin-relation-row select,
.admin-relation-row input,
.admin-effect-panel select{
  width:100%;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:inherit;
  padding:9px 10px;
  font:inherit;
}
body.dark .admin-relation-row select,
body.dark .admin-relation-row input,
body.dark .admin-effect-panel select{background:#0B2431;color:#F8ECD4}
.admin-effect-options{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px}
.admin-effect-options label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}
.admin-preview-card{max-width:340px;margin-bottom:18px}
.admin-preview .profile-hero{margin:18px 0}
.admin-preview>.panel{margin-top:12px}
.admin-character-preview-grid{display:grid;grid-template-columns:minmax(220px,320px) minmax(260px,360px);gap:18px;align-items:start}
.admin-static-card{cursor:default}
.admin-form-grid input[type='number']{width:100%;border:1px solid #C8A66A;border-radius:7px;background:#FFFDF8;color:inherit;padding:10px 11px;font:inherit}

@media (max-width:1050px){
  .admin-character-images{grid-template-columns:1fr 1fr}
  .admin-relation-row{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .admin-image-grid,
  .admin-character-images,
  .admin-character-preview-grid{grid-template-columns:1fr}
  .admin-relation-row{grid-template-columns:1fr}
  .admin-image-heading{flex-direction:column}
}

/* Character banners keep one consistent height; the optional description stays short. */
.character-profile-hero{
  height:300px;
  min-height:300px;
  box-sizing:border-box;
}
.character-banner-description{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}


.lightbox.character-gallery-lightbox{
  box-sizing:border-box;
  padding:clamp(10px,2.5vw,24px);
}
.character-gallery-lightbox .lightbox-panel{
  box-sizing:border-box;
  width:min(1100px,calc(100vw - 20px));
  max-width:calc(100vw - 20px);
  max-height:calc(100dvh - 20px);
}
.character-gallery-lightbox .lightbox-header,
.character-gallery-lightbox .lightbox-stage,
.character-gallery-lightbox .lightbox-strip{
  min-width:0;
}
.character-gallery-lightbox .lightbox-titles{
  min-width:0;
}
.character-gallery-lightbox .lightbox-stage{
  overflow:hidden;
}
.character-gallery-lightbox .lightbox-img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:min(64vh,calc(100dvh - 230px));
  object-fit:contain;
}

.admin-gallery-description{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:8px;
}
.admin-gallery-description span{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  line-height:1.35;
}
.admin-gallery-description textarea{
  width:100%;
  min-height:68px;
  resize:vertical;
  box-sizing:border-box;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFFDF8;
  color:inherit;
  padding:8px 9px;
  font:inherit;
  font-size:12px;
  line-height:1.4;
}
body.dark .admin-gallery-description textarea{
  background:#0B2431;
  color:#F8ECD4;
}

@media (max-width:620px){
  .character-gallery-lightbox .lightbox-header{
    flex-direction:column;
  }
  .character-gallery-lightbox .lightbox-actions{
    width:100%;
    justify-content:space-between;
  }
  .character-gallery-lightbox .lightbox-img{
    max-height:min(58vh,calc(100dvh - 260px));
  }
}

/* Global background music controls */
.site-music-wrap{
  display:flex;
  align-items:center;
  min-height:36px;
}
.music-enable-btn{
  min-height:36px;
  padding:7px 13px;
  border:1px solid #C95E42;
  border-radius:9px;
  background:var(--v5-coral);
  color:#103744;
  font:inherit;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 3px 8px rgba(87,50,27,.14);
}
.music-enable-btn:hover{filter:brightness(1.04)}
.music-player{
  display:flex;
  align-items:center;
  gap:5px;
  min-height:36px;
  padding:4px 7px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
}
.music-control-btn{
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFF3DF;
  color:#0A596C;
  font:inherit;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
body.dark .music-control-btn{background:#153846;color:#F8ECD4}
.music-volume{
  width:78px;
  accent-color:var(--v5-coral);
  cursor:pointer;
}
.site-music-wrap audio{display:none}

/* Music settings in the private editor */
.admin-music-panel{max-width:900px}
.admin-music-intro h3{margin:0 0 6px}
.admin-music-intro p{margin:0;color:var(--muted);line-height:1.55}
.admin-audio-preview{
  display:block;
  width:100%;
  margin-top:12px;
}
.admin-music-options{
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(280px,1fr);
  gap:18px;
  margin-top:18px;
}
.admin-check-row,
.admin-volume-setting{
  display:flex;
  gap:9px;
  padding:13px;
  border:1px solid #D7BC8A;
  border-radius:8px;
  background:rgba(255,248,237,.55);
  font-size:12px;
  font-weight:800;
}
body.dark .admin-check-row,
body.dark .admin-volume-setting{background:rgba(16,47,59,.70)}
.admin-check-row{align-items:center}
.admin-volume-setting{flex-direction:column}
.admin-volume-setting input{width:100%;accent-color:var(--v5-coral)}
.admin-volume-setting small{color:var(--muted);font-weight:400;line-height:1.4}

@media (max-width:980px){
  .music-volume{width:58px}
}
@media (max-width:820px){
  .topbar{flex-wrap:wrap}
  .search-shell{max-width:none;min-width:0}
  .searchbar{min-width:0}
  .top-actions{flex-shrink:0}
  .music-enable-btn{padding:7px 9px;font-size:10px}
  .music-volume{width:50px}
}
@media (max-width:620px){
  .site-music-wrap{order:-1}
  .music-enable-btn{max-width:92px;line-height:1.2}
  .music-player{padding:4px}
  .music-volume{width:44px}
  .admin-music-options{grid-template-columns:1fr}
}

/* Compact rich-text editor and reusable media blocks */
.admin-editor{overflow:visible}
.admin-editor-toolbar{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:5px;
  padding:7px 9px;
}
.admin-toolbar-group{
  display:flex;
  align-items:center;
  gap:4px;
  padding-right:5px;
  border-right:1px solid rgba(200,166,106,.65);
}
.admin-toolbar-dropdown{position:relative}
.admin-editor-toolbar button{
  display:grid;
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  place-items:center;
  padding:0;
  line-height:1;
}
.admin-toolbar-popover{
  position:absolute;
  z-index:40;
  top:calc(100% + 7px);
  left:0;
  display:grid;
  min-width:210px;
  gap:7px;
  padding:10px;
  border:1px solid #C8A66A;
  border-radius:9px;
  background:#FFF9EE;
  box-shadow:0 10px 28px rgba(54,37,19,.20);
}
body.dark .admin-toolbar-popover{background:#102F3B;box-shadow:0 12px 30px rgba(0,0,0,.38)}
.admin-toolbar-dropdown:last-of-type .admin-toolbar-popover{right:0;left:auto}
.admin-toolbar-popover>button{
  width:100%;
  min-width:0;
  height:auto;
  min-height:34px;
  justify-content:flex-start;
  padding:7px 9px;
  text-align:left;
}
.admin-toolbar-popover label{
  display:grid;
  gap:4px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.admin-toolbar-popover select,
.admin-toolbar-popover input[type='text']{
  width:100%;
  min-height:34px;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFFDF8;
  color:var(--text);
  padding:6px 8px;
  font:inherit;
}
body.dark .admin-toolbar-popover select,
body.dark .admin-toolbar-popover input[type='text']{background:#0B2431;color:#F8ECD4}
.admin-text-popover{grid-template-columns:1fr 1fr;min-width:330px}
.admin-text-popover .admin-custom-color{grid-column:1/-1}
.admin-text-popover .admin-add-font-button{
  display:flex;
  width:100%;
  min-width:0;
  height:auto;
  min-height:34px;
  justify-content:center;
  padding:7px 9px;
}
.admin-text-popover small{font-weight:600;line-height:1.35}
.admin-custom-color{display:flex;align-items:center;gap:7px}
.admin-custom-color input[type='color']{
  width:42px;
  height:34px;
  padding:2px;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:transparent;
  cursor:pointer;
}
.admin-custom-color button{width:auto;min-width:0;padding:7px 10px}
.admin-toolbar-row-menu{display:flex;min-width:auto}
.admin-toolbar-row-menu button{width:38px;justify-content:center;text-align:center}
.admin-insert-popover{min-width:235px}
.admin-internal-link-select{padding-top:4px;border-top:1px solid rgba(200,166,106,.55)}
.admin-editor .tiptap{
  overflow-wrap:anywhere;
  border-radius:0 0 8px 8px;
}
.admin-editor .tiptap hr,
.rich-text-content hr{
  height:1px;
  margin:28px 0;
  border:0;
  background:#D7BC8A;
}

.admin-rich-image-node,
.admin-image-text-node{
  position:relative;
  margin:20px 0;
  padding:10px;
  border:1px solid transparent;
  border-radius:9px;
}
.admin-rich-image-node:hover,
.admin-rich-image-node:focus-within,
.admin-rich-image-node.is-selected,
.admin-image-text-node:hover,
.admin-image-text-node:focus-within,
.admin-image-text-node.is-selected{
  border-color:#C8A66A;
  background:rgba(210,164,81,.07);
}
.admin-rich-image-node>img{
  display:block;
  height:auto;
  margin:0;
  border:1px solid #C8A66A;
  border-radius:8px;
  box-shadow:var(--v5-shadow);
}
.admin-rich-image-node[data-size='small']>img{width:min(100%,280px)}
.admin-rich-image-node[data-size='medium']>img{width:min(100%,480px)}
.admin-rich-image-node[data-size='large']>img{width:min(100%,760px)}
.admin-rich-image-node[data-size='full']>img{width:100%}
.admin-rich-image-node[data-align='left']>img{margin-right:auto}
.admin-rich-image-node[data-align='center']>img{margin-right:auto;margin-left:auto}
.admin-rich-image-node[data-align='right']>img{margin-left:auto}
.admin-rich-image-node>figcaption,
.admin-image-text-node figcaption,
.rich-text-image figcaption,
.rich-image-text figcaption{
  margin-top:7px;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  text-align:center;
}
.admin-media-node-tools{
  display:grid;
  grid-template-columns:auto minmax(100px,140px) minmax(100px,140px) minmax(150px,1fr) minmax(150px,1fr) auto auto;
  gap:7px;
  align-items:end;
  max-height:0;
  margin-top:0;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease,max-height .16s ease,margin .16s ease;
}
.admin-rich-image-node:hover .admin-media-node-tools,
.admin-rich-image-node:focus-within .admin-media-node-tools,
.admin-rich-image-node.is-selected .admin-media-node-tools,
.admin-image-text-node:hover .admin-media-node-tools,
.admin-image-text-node:focus-within .admin-media-node-tools,
.admin-image-text-node.is-selected .admin-media-node-tools{
  max-height:260px;
  margin-top:10px;
  overflow:visible;
  opacity:1;
  pointer-events:auto;
}
.admin-media-node-tools label{display:grid;gap:3px;color:var(--muted);font-size:10px;font-weight:800}
.admin-media-node-tools select,
.admin-media-node-tools input{
  width:100%;
  min-height:32px;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFFDF8;
  color:var(--text);
  padding:5px 7px;
  font:inherit;
}
body.dark .admin-media-node-tools select,
body.dark .admin-media-node-tools input{background:#0B2431;color:#F8ECD4}
.admin-media-node-tools button{
  min-height:32px;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFF3DF;
  color:#725E43;
  padding:5px 8px;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
body.dark .admin-media-node-tools button{background:#153846;color:#F8ECD4}
.admin-media-node-tools .admin-media-remove{border-color:#B84F45;color:#B84F45;background:transparent}
.admin-media-drag{
  display:grid;
  width:28px;
  height:32px;
  place-items:center;
  border:1px dashed #C8A66A;
  border-radius:6px;
  cursor:grab;
  user-select:none;
}
.admin-media-drag:active{cursor:grabbing}

.admin-image-text-node{padding:10px}
.admin-image-text-layout{
  display:grid;
  grid-template-columns:minmax(0,var(--editor-image-width,240px)) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.admin-image-text-node[data-size='small']{--editor-image-width:180px}
.admin-image-text-node[data-size='medium']{--editor-image-width:260px}
.admin-image-text-node[data-size='large']{--editor-image-width:360px}
.admin-image-text-node[data-side='right'] .admin-image-text-layout{grid-template-columns:minmax(0,1fr) minmax(0,var(--editor-image-width,240px))}
.admin-image-text-node[data-side='right'] figure{order:2}
.admin-image-text-node figure{margin:0}
.admin-image-text-node figure img{
  display:block;
  width:100%;
  height:auto;
  margin:0;
  border:1px solid #C8A66A;
  border-radius:8px;
  box-shadow:var(--v5-shadow);
}
.admin-image-text-content{min-width:0}
.admin-image-text-content>:first-child{margin-top:0}
.admin-image-text-content>:last-child{margin-bottom:0}

.rich-text-image{
  display:block;
  width:min(100%,760px);
  margin:20px auto;
}
.rich-text-image[data-size='small']{width:min(100%,280px)}
.rich-text-image[data-size='medium']{width:min(100%,480px)}
.rich-text-image[data-size='large']{width:min(100%,760px)}
.rich-text-image[data-size='full']{width:100%}
.rich-text-image[data-align='left']{margin-right:auto;margin-left:0}
.rich-text-image[data-align='center']{margin-right:auto;margin-left:auto}
.rich-text-image[data-align='right']{margin-right:0;margin-left:auto}
.rich-text-image-button img,
.rich-text-image img,
.rich-image-text img{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0;
  border:1px solid #C8A66A;
  border-radius:8px;
  box-shadow:var(--v5-shadow);
}
.rich-image-text{
  --rich-split-width:260px;
  display:grid;
  grid-template-columns:minmax(0,var(--rich-split-width)) minmax(0,1fr);
  gap:20px;
  align-items:start;
  margin:22px 0;
}
.rich-image-text[data-size='small']{--rich-split-width:180px}
.rich-image-text[data-size='medium']{--rich-split-width:260px}
.rich-image-text[data-size='large']{--rich-split-width:360px}
.rich-image-text[data-side='right']{grid-template-columns:minmax(0,1fr) minmax(0,var(--rich-split-width))}
.rich-image-text[data-side='right'] figure{order:2}
.rich-image-text figure{margin:0}
.rich-image-text-content{min-width:0}
.rich-image-text-content>:first-child{margin-top:0}
.rich-image-text-content>:last-child{margin-bottom:0}

@media (max-width:900px){
  .admin-media-node-tools{grid-template-columns:auto 1fr 1fr}
  .admin-media-wide{grid-column:span 3}
}
@media (max-width:700px){
  .admin-text-popover{grid-template-columns:1fr;min-width:min(280px,calc(100vw - 50px))}
  .admin-text-popover .admin-custom-color{grid-column:auto}
  .admin-toolbar-popover{max-width:calc(100vw - 48px)}
  .admin-image-text-layout,
  .admin-image-text-node[data-side='right'] .admin-image-text-layout,
  .rich-image-text,
  .rich-image-text[data-side='right']{
    grid-template-columns:1fr;
  }
  .admin-image-text-node[data-side='right'] figure,
  .rich-image-text[data-side='right'] figure{order:0}
  .admin-image-text-node figure,
  .rich-image-text figure{width:min(100%,420px);margin-right:auto;margin-left:auto}
}
@media (max-width:520px){
  .admin-toolbar-group{padding-right:3px}
  .admin-editor-toolbar button{width:32px;min-width:32px;height:32px;min-height:32px}
  .admin-media-node-tools{grid-template-columns:auto 1fr}
  .admin-media-wide{grid-column:1/-1}
}
.admin-editor .tiptap .admin-rich-image-node>img,
.admin-editor .tiptap .admin-image-text-node figure img{
  margin:0;
}

/* Home: keep the Unions panel compact as more entries are published. */
.home-organizations-pager{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:14px;
}

.home-pager-button,
.home-pager-status{
  min-width:32px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:6px;
  background:var(--surface-2);
  color:var(--text);
  font-family:Archivo, sans-serif;
  font-size:11px;
  font-weight:800;
}

.home-pager-button{
  cursor:pointer;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}

.home-pager-button:hover:not(:disabled),
.home-pager-button:focus-visible{
  border-color:var(--coral);
  color:var(--coral);
  outline:none;
}

.home-pager-button:disabled{
  cursor:default;
  opacity:.38;
}

.home-pager-status{
  min-width:52px;
  padding-inline:8px;
  background:transparent;
  color:var(--muted);
}

/* Home: editable About the Artist block. */
.home-artist-panel{
  margin-top:18px;
}

.home-artist-head{
  align-items:center;
}

.artist-commission-status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.artist-commission-status i{
  width:10px;
  height:10px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 0 3px color-mix(in srgb,currentColor 16%,transparent);
}

.artist-commission-status.open{color:#3F9A66}
.artist-commission-status.closed{color:var(--v5-coral)}
body.dark .artist-commission-status.open{color:#79D39B}

.home-artist-grid{
  display:grid;
  grid-template-columns:minmax(0,250px) minmax(0,1.25fr) minmax(0,300px);
  grid-template-areas:'artist-image artist-copy artist-links';
  gap:26px;
  align-items:start;
  padding-top:18px;
}

.home-artist-grid > *{
  width:100%;
  max-width:100%;
  min-width:0;
}

.home-artist-image-wrap{
  grid-area:artist-image;
  min-width:0;
  overflow:hidden;
  border:1px solid #C8A66A;
  border-radius:9px;
  background:var(--navy);
  box-shadow:var(--shadow);
  aspect-ratio:1 / 1;
}

.home-artist-image-wrap img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.home-artist-image-placeholder{
  display:grid;
  width:100%;
  height:100%;
  place-items:center;
  background:var(--star-panel);
  color:#F3D795;
  font-size:42px;
}

.home-artist-copy,
.home-artist-links{
  min-width:0;
}

.home-artist-copy{
  grid-area:artist-copy;
  display:flex;
  overflow:hidden;
  align-self:stretch;
  flex-direction:column;
  justify-content:center;
}

.home-artist-copy h4,
.home-artist-links h4{
  margin:0 0 12px;
  color:var(--navy);
  font-family:Archivo,sans-serif;
  font-size:18px;
  letter-spacing:.02em;
}

body.dark .home-artist-copy h4,
body.dark .home-artist-links h4{color:#F8ECD4}

.home-artist-copy p{
  margin:0 0 13px;
  line-height:1.65;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:pre-line;
}

.artist-support-message{
  display:flex;
  min-width:0;
  align-items:center;
  gap:9px;
  margin-top:auto;
  padding:11px 13px;
  border:1px solid #D7BC8A;
  border-radius:7px;
  background:rgba(255,248,237,.7);
  color:var(--muted);
}

.artist-support-message i{flex:0 0 auto;color:var(--v5-coral)}
.artist-support-message span{min-width:0;overflow-wrap:anywhere;word-break:break-word}
body.dark .artist-support-message{background:rgba(16,47,59,.72)}

.home-artist-links{
  grid-area:artist-links;
  padding-left:26px;
  border-left:1px solid #D7BC8A;
}

.artist-link-list{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.artist-link-list.has-many-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 8px;
}

.artist-social-link{
  display:flex;
  width:100%;
  align-items:center;
  gap:12px;
  padding:8px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .15s ease,color .15s ease;
}

.artist-social-link:hover,
.artist-social-link:focus-visible{
  background:rgba(210,164,81,.13);
  color:var(--coral);
  outline:none;
}

.artist-social-icon{
  display:grid;
  width:30px;
  height:30px;
  flex:0 0 30px;
  place-items:center;
  color:var(--navy);
}

body.dark .artist-social-icon{color:#F8ECD4}
.artist-social-icon svg{width:24px;height:24px}
.artist-social-link>span:last-child{display:flex;min-width:0;flex-direction:column;gap:2px}
.artist-social-link strong{font-size:13px}
.artist-social-link small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.home-artist-links .artist-social-link{gap:8px;padding:6px 4px}
.home-artist-links .artist-social-icon{width:26px;height:26px;flex-basis:26px}
.home-artist-links .artist-social-icon svg{width:21px;height:21px}
.home-artist-links .artist-social-link strong,
.home-artist-links .artist-social-link small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.home-artist-links .artist-social-link strong{font-size:12px}
.home-artist-links .artist-social-link small{font-size:11px}

.artist-link-warning{
  position:fixed;
  z-index:2200;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,18,25,.72);
  backdrop-filter:blur(5px);
}

.artist-link-warning-card{
  width:min(100%,520px);
  padding:26px;
  border:1px solid var(--gold);
  border-radius:12px;
  background:var(--surface);
  color:var(--text);
  box-shadow:0 28px 76px rgba(0,0,0,.42);
}

.artist-link-warning-card h2{margin:16px 0 8px}
.artist-link-warning-card p{margin:0;line-height:1.6}
.artist-link-warning-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}

/* About the Artist settings in the private editor. */
.admin-artist-panel{max-width:1180px}
.admin-artist-enable{margin-top:18px}
.admin-artist-fields{margin-top:18px}
.admin-form-grid input[type='url']{
  width:100%;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:inherit;
  padding:10px 11px;
  font:inherit;
}
body.dark .admin-form-grid input[type='url']{background:#0B2431;color:#F8ECD4}
.admin-artist-panel>.admin-image-field{margin-top:18px}
.admin-artist-links-heading{margin-top:24px}
.admin-artist-links-heading h3{margin:0 0 5px}
.admin-artist-links-heading p{margin:0;color:var(--muted)}
.admin-artist-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
}
.admin-artist-link-card{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:rgba(255,248,237,.55);
}
body.dark .admin-artist-link-card{background:rgba(16,47,59,.70)}
.admin-artist-link-card>strong{color:var(--navy);font-family:Archivo,sans-serif;font-size:15px}
body.dark .admin-artist-link-card>strong{color:#F8ECD4}
.admin-artist-link-card>label:not(.admin-check-row){display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800}
.admin-artist-link-card input[type='text'],
.admin-artist-link-card input[type='url'],
.admin-artist-link-card select{
  width:100%;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:inherit;
  padding:9px 10px;
  font:inherit;
}
body.dark .admin-artist-link-card input[type='text'],
body.dark .admin-artist-link-card input[type='url'],
body.dark .admin-artist-link-card select{background:#0B2431;color:#F8ECD4}
.admin-artist-link-card .admin-check-row{padding:8px 0 0;border:0;background:transparent}
.admin-artist-preview>.home-artist-panel{margin-top:12px}

@media (max-width:980px){
  .home-artist-grid{
    grid-template-columns:minmax(0,230px) minmax(0,1fr);
    grid-template-areas:
      'artist-image artist-copy'
      'artist-links artist-links';
  }
  .home-artist-links{padding:18px 0 0;border-top:1px solid #D7BC8A;border-left:0}
  .artist-link-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:680px){
  .home-artist-head{align-items:flex-start;gap:10px}
  .home-artist-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      'artist-image'
      'artist-copy'
      'artist-links';
  }
  .home-artist-image-wrap{width:min(100%,360px);margin-inline:auto}
  .home-artist-copy{text-align:left}
  .artist-link-list{grid-template-columns:1fr}
  .admin-artist-links{grid-template-columns:1fr}
}

/* Generic Pages builder — Variation B */
.page-builder-banner,
.page-rich-text-block,
.page-artist-block,
.page-gallery-block,
.page-social-links-block{
  margin-bottom:16px;
}
.page-builder-banner-empty{
  background:linear-gradient(135deg,#0b3c55,#12607c);
}
.page-builder-banner-text{
  margin-top:10px;
  max-width:760px;
  opacity:.92;
  line-height:1.6;
}
.page-social-links-block>p{
  margin:0 0 14px;
  color:var(--muted);
}
.page-link-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:10px;
}
.page-link-list .artist-social-link{
  min-height:62px;
}
.page-gallery-block .gallery-grid{
  margin-top:12px;
}

.admin-page-builder{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #D7BC8A;
}
body.dark .admin-page-builder{
  border-top-color:rgba(225,190,124,.32);
}
.admin-page-builder-intro{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.admin-page-builder-intro>div:first-child{
  display:grid;
  gap:4px;
}
.admin-page-builder-intro span{
  color:var(--muted);
  font-size:13px;
}
.admin-page-add-buttons{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px;
}
.admin-page-add-buttons button,
.admin-page-block-actions button,
.admin-page-links-editor .admin-image-heading button{
  border:1px solid #D7BC8A;
  border-radius:6px;
  background:var(--panel);
  color:var(--ink);
  padding:7px 10px;
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:700;
}
body.dark .admin-page-add-buttons button,
body.dark .admin-page-block-actions button,
body.dark .admin-page-links-editor .admin-image-heading button{
  border-color:rgba(225,190,124,.34);
  background:#16394A;
  color:#F8ECD4;
}
.admin-page-block-list{
  display:grid;
  gap:14px;
}
.admin-page-block-card{
  overflow:hidden;
  border:1px solid #D7BC8A;
  border-radius:8px;
  background:rgba(255,255,255,.35);
}
body.dark .admin-page-block-card{
  border-color:rgba(225,190,124,.34);
  background:rgba(9,39,52,.55);
}
.admin-page-block-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-bottom:1px solid #D7BC8A;
  background:rgba(215,188,138,.14);
}
body.dark .admin-page-block-head{
  border-bottom-color:rgba(225,190,124,.28);
  background:rgba(225,190,124,.08);
}
.admin-page-block-head>div:first-child{
  display:flex;
  align-items:center;
  gap:9px;
}
.admin-page-block-head>div:first-child>span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--gold);
  color:#16394A;
  font-size:12px;
  font-weight:800;
}
.admin-page-block-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:5px;
}
.admin-page-block-actions button:disabled{
  opacity:.38;
  cursor:not-allowed;
}
.admin-page-block-body{
  padding:14px;
}
.admin-page-block-heading-field{
  display:grid;
  gap:6px;
  margin-bottom:12px;
}
.admin-page-block-heading-field span{
  font-size:12px;
  font-weight:700;
}
.admin-page-block-heading-field input,
.admin-page-link-row input,
.admin-page-link-row select{
  width:100%;
  box-sizing:border-box;
  border:1px solid #D7BC8A;
  border-radius:6px;
  background:var(--panel);
  color:var(--ink);
  padding:9px 10px;
  font:inherit;
}
body.dark .admin-page-block-heading-field input,
body.dark .admin-page-link-row input,
body.dark .admin-page-link-row select{
  border-color:rgba(225,190,124,.34);
  background:#123244;
  color:#F8ECD4;
}
.admin-page-links-editor{
  margin-top:14px;
  padding:12px;
  border:1px solid #D7BC8A;
  border-radius:7px;
}
body.dark .admin-page-links-editor{
  border-color:rgba(225,190,124,.3);
}
.admin-page-link-row{
  display:grid;
  grid-template-columns:130px minmax(120px,.8fr) minmax(140px,1fr) minmax(220px,1.4fr) auto auto;
  align-items:center;
  gap:7px;
  margin-top:9px;
}
.admin-page-link-row .admin-inline-check{
  white-space:nowrap;
  font-size:12px;
}
.admin-page-link-row .admin-image-remove{
  padding:9px 10px;
}

@media (max-width:1100px){
  .admin-page-link-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:760px){
  .admin-page-builder-intro,
  .admin-page-block-head{
    align-items:stretch;
    flex-direction:column;
  }
  .admin-page-add-buttons,
  .admin-page-block-actions{
    justify-content:flex-start;
  }
  .admin-page-link-row{
    grid-template-columns:1fr;
  }
  .page-link-list{
    grid-template-columns:1fr;
  }
}

/* ---------- Global footer ---------- */
.main{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.content{flex:1 0 auto;width:100%;min-width:0}

.global-footer{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:4px 26px 18px;
  padding:14px 0 0;
  background:transparent;
  border:0;
  border-top:1px solid var(--border);
  border-radius:0;
  color:var(--muted);
  font-size:10px;
  font-weight:600;
  line-height:1.55;
  text-align:center;
  letter-spacing:.08em;
  text-transform:none;
  box-shadow:none;
}

.global-footer-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  width:100%;
  min-width:0;
}

.global-footer strong{
  color:var(--text);
  font-family:var(--display-font);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:700;
}


/* ---------- Seasonal admin ---------- */
.admin-seasonal-grid{display:grid;gap:18px}
.admin-seasonal-card{
  padding:16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.admin-seasonal-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.admin-seasonal-heading h3{margin:0 0 5px}
.admin-seasonal-heading p{margin:0 0 4px;color:var(--muted)}
.admin-seasonal-heading small{color:var(--muted)}

.admin-seasonal-preview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 18px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.admin-seasonal-preview>div{display:flex;flex-direction:column;gap:3px}
.admin-seasonal-preview strong{font-family:var(--display-font);color:var(--text)}
.admin-seasonal-preview span{color:var(--muted)}
.admin-seasonal-preview label{display:flex;align-items:center;gap:10px}
.admin-seasonal-preview select{
  min-width:180px;
  padding:9px 11px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
}

.admin-seasonal-artwork{
  display:grid;
  gap:16px;
  margin:0 0 18px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.admin-seasonal-artwork-heading h3{margin:0 0 5px}
.admin-seasonal-artwork-heading p{margin:0;color:var(--muted);line-height:1.55}
.admin-seasonal-artwork-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.admin-seasonal-artwork-card{
  min-width:0;
  padding:14px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
}
.admin-seasonal-artwork-card h4{
  margin:0 0 12px;
  color:var(--text);
  font-family:var(--display-font);
}
.admin-seasonal-artwork-card>.admin-image-field{margin-top:0}
.admin-seasonal-artwork-card>.admin-image-field+.admin-image-field{margin-top:14px}
.admin-image-preview.site-background img{height:170px;object-fit:cover}
.admin-image-preview.site-ornament img{height:170px;object-fit:contain}

/* ---------- Editable normal artwork ---------- */
body.has-custom-site-background:not(.seasonal-halloween){
  background-color:var(--bg) !important;
  background-image:
    linear-gradient(90deg,rgba(251,242,226,.12),rgba(251,242,226,.04)),
    var(--site-background-image),
    url('../img/variant5/paper-grain.png'),
    linear-gradient(155deg,#FBF2E2 0%,#F6E7CD 58%,#EFE0C5 100%) !important;
  background-position:0 0,center top,0 0,0 0 !important;
  background-size:100% 100%,cover,256px 256px,100% 100% !important;
  background-repeat:no-repeat,no-repeat,repeat,no-repeat !important;
  background-attachment:fixed,fixed,fixed,fixed !important;
}
body.dark.has-custom-site-background:not(.seasonal-halloween){
  background-image:
    linear-gradient(90deg,rgba(7,27,37,.18),rgba(7,27,37,.06)),
    var(--site-background-image),
    url('../img/variant5/paper-grain.png'),
    linear-gradient(155deg,#071B25 0%,#06141D 58%,#091722 100%) !important;
}
body.has-custom-site-ornament:not(.seasonal-halloween) .sidebar{
  background-image:
    var(--site-ornament-image),
    linear-gradient(180deg,rgba(255,249,238,.98),rgba(244,224,191,.98)) !important;
  background-size:300px auto,100% 100% !important;
  background-position:left bottom -2px,0 0 !important;
  background-repeat:no-repeat,no-repeat !important;
}
body.dark.has-custom-site-ornament:not(.seasonal-halloween) .sidebar{
  background-image:
    var(--site-ornament-image),
    linear-gradient(180deg,#0A2C39,#071A25) !important;
}

/* ---------- Simplified Halloween ----------
   Halloween changes the accents, root background and sidebar artwork while
   preserving the readable light/dark panel surfaces. */
body.seasonal-halloween{
  --bg:#5A1D5C;
  --bg-grad:#35113F;
  --surface:#FFF9EF;
  --surface-2:#F7E9D0;
  --surface-3:#EED8B4;
  --primary:#7B3479;
  --primary-2:#A54C91;
  --primary-soft:#E8D5DF;
  --accent:#FF8A2B;
  --accent-soft:#F0C1A0;
  --coral:#FF8126;
  --coral-hover:#FF9B43;
  --sun:#E1A44A;
  --deep:#4A184F;
  --text:#153D48;
  --muted:#786A56;
  --border:#C98CA5;
  --chip-bg:#FF8A2B;
  --chip-text:#35113F;
  --on-accent:#35113F;
  --shadow:0 8px 22px rgba(31,5,38,.16);
  background-color:#5A1D5C !important;
  background-image:
    radial-gradient(circle at 82% 16%,rgba(255,139,42,.22),transparent 29%),
    radial-gradient(circle at 18% 78%,rgba(209,101,188,.24),transparent 35%),
    radial-gradient(circle at 1px 1px,rgba(255,196,112,.13) 1px,transparent 1.4px),
    linear-gradient(155deg,#713070 0%,#5A1D5C 48%,#35113F 100%) !important;
  background-position:0 0,0 0,0 0,0 0 !important;
  background-size:auto,auto,18px 18px,100% 100% !important;
  background-repeat:no-repeat,no-repeat,repeat,no-repeat !important;
  background-attachment:fixed !important;
}
body.dark.seasonal-halloween{
  --bg:#241027;
  --bg-grad:#120A18;
  --surface:#0D2A36;
  --surface-2:#0A2230;
  --surface-3:#153846;
  --primary:#F29A45;
  --primary-2:#FFC06A;
  --primary-soft:#3D263C;
  --accent:#D77AB3;
  --accent-soft:#6D3F63;
  --coral:#FF8A2B;
  --coral-hover:#FFAA50;
  --sun:#F0B55D;
  --deep:#35113F;
  --text:#F6EBD7;
  --muted:#C6B89C;
  --border:#76506F;
  --chip-bg:#FF9A36;
  --chip-text:#241027;
  --on-accent:#241027;
  --shadow:0 10px 28px rgba(0,0,0,.30);
  background-color:#241027 !important;
  background-image:
    radial-gradient(circle at 82% 16%,rgba(255,139,42,.19),transparent 29%),
    radial-gradient(circle at 18% 78%,rgba(182,71,161,.22),transparent 35%),
    radial-gradient(circle at 1px 1px,rgba(255,196,112,.09) 1px,transparent 1.4px),
    linear-gradient(155deg,#3B1741 0%,#241027 50%,#120A18 100%) !important;
}

body.seasonal-halloween.has-custom-site-background{
  background-image:
    linear-gradient(135deg,rgba(83,24,88,.32),rgba(47,14,57,.24)),
    var(--site-background-image),
    linear-gradient(155deg,#713070 0%,#5A1D5C 48%,#35113F 100%) !important;
  background-position:0 0,center top,0 0 !important;
  background-size:100% 100%,cover,100% 100% !important;
  background-repeat:no-repeat,no-repeat,no-repeat !important;
  background-attachment:fixed,fixed,fixed !important;
}
body.dark.seasonal-halloween.has-custom-site-background{
  background-image:
    linear-gradient(135deg,rgba(44,13,49,.46),rgba(18,8,24,.34)),
    var(--site-background-image),
    linear-gradient(155deg,#3B1741 0%,#241027 50%,#120A18 100%) !important;
}

body.seasonal-halloween .app-shell,
body.seasonal-halloween .main,
body.seasonal-halloween .content{
  background:transparent !important;
}

body.seasonal-halloween .sidebar{
  background-color:#4A184F !important;
  background-image:
    radial-gradient(circle at 18% 82%,rgba(255,129,38,.20),transparent 29%),
    radial-gradient(circle at 84% 18%,rgba(209,112,196,.17),transparent 31%),
    linear-gradient(180deg,#5A235D 0%,#45174C 100%) !important;
  background-size:auto,auto,100% 100% !important;
  background-position:0 0,0 0,0 0 !important;
  background-repeat:no-repeat,no-repeat,no-repeat !important;
  border-right-color:#B56692 !important;
  box-shadow:8px 0 28px rgba(35,6,42,.16) !important;
}
body.seasonal-halloween.has-custom-site-ornament .sidebar{
  background-image:
    var(--site-ornament-image),
    linear-gradient(180deg,rgba(90,35,93,.97),rgba(69,23,76,.98)) !important;
  background-size:300px auto,100% 100% !important;
  background-position:left bottom -2px,0 0 !important;
  background-repeat:no-repeat,no-repeat !important;
}
body.seasonal-halloween .topbar{
  background:rgba(68,20,75,.92) !important;
  border-bottom-color:#B56692 !important;
}
body.seasonal-halloween .brand{border-bottom-color:#B56692 !important}
body.seasonal-halloween .brand-mark{
  background:linear-gradient(145deg,#FF9B3D,#6A2468) !important;
  border-color:#FFB760 !important;
  color:#FFF6E7 !important;
}
body.seasonal-halloween .brand h1,
body.seasonal-halloween .nav-label,
body.seasonal-halloween .nav-link:not(.active){color:#FFF5E8 !important}
body.seasonal-halloween .nav-link:not(.active):hover{
  background:rgba(139,58,132,.48) !important;
  border-color:rgba(255,154,54,.54) !important;
}
body.seasonal-halloween .nav-link.active,
body.seasonal-halloween :is(.btn-primary,.tab.active,.ch-filter-btn.active,.music-enable-btn){
  background:linear-gradient(180deg,#FF9B3D,#FF8126) !important;
  color:#35113F !important;
  border-color:#D85E16 !important;
}
body.seasonal-halloween .topbar :is(.searchbar,.icon-btn,.music-player){
  background:var(--surface) !important;
  color:var(--text) !important;
  border-color:var(--border) !important;
}
body.dark.seasonal-halloween .topbar :is(.searchbar,.icon-btn,.music-player){
  background:var(--surface-2) !important;
}
body.seasonal-halloween .user-chip{
  background:linear-gradient(145deg,#6A2468,#4A184F) !important;
  color:#FFF5E8 !important;
  border-color:#FFB760 !important;
}
body.seasonal-halloween :is(.panel,.kpis,.ch-filters,.infobox,.list-card,.item-card,.tabs,.searchbar,.empty-state),
body.dark.seasonal-halloween :is(.panel,.kpis,.ch-filters,.infobox,.list-card,.item-card,.tabs,.searchbar,.empty-state){
  color:var(--text) !important;
  border-color:var(--border) !important;
}
body.seasonal-halloween .section-head h3{
  background:linear-gradient(90deg,#4A184F,#6A2468) !important;
  border-color:#E1A44A !important;
}
body.seasonal-halloween .count-pill{
  background:#4A184F !important;
  border-color:rgba(255,183,96,.55) !important;
}
body.seasonal-halloween .global-footer{border-top-color:var(--border) !important}

@media (max-width: 920px){
  .global-footer{margin:4px 14px 14px;flex-direction:column}
  .admin-seasonal-heading{flex-direction:column}
  .admin-seasonal-preview{align-items:stretch;flex-direction:column}
  .admin-seasonal-preview label{align-items:stretch;flex-direction:column}
  .admin-seasonal-preview select{width:100%;min-width:0}
  .admin-seasonal-artwork-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion: reduce){
}

/* ---------- Footer: simple warning strip ---------- */
.global-footer,
body.dark .global-footer,
body.seasonal-halloween .global-footer,
body.dark.seasonal-halloween .global-footer{
  background:transparent !important;
  border:0 !important;
  border-top:1px solid var(--border) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  padding:14px 0 0 !important;
}

/* Generic Pages: keep the artist image, copy and links in separate columns. */
.page-artist-block .home-artist-grid{
  grid-template-columns:minmax(0,260px) minmax(0,1fr) minmax(280px,.9fr);
  grid-template-areas:'artist-image artist-copy artist-links';
  column-gap:30px;
}

.page-artist-block .home-artist-grid > *{
  width:100%;
  max-width:100%;
  min-width:0;
}

.page-artist-block .home-artist-image-wrap{
  grid-area:artist-image;
  align-self:start;
  justify-self:stretch;
}

.page-artist-block .home-artist-copy{
  grid-area:artist-copy;
  overflow:hidden;
}

.page-artist-block .home-artist-copy h4,
.page-artist-block .home-artist-copy p,
.page-artist-block .artist-support-message span{
  overflow-wrap:anywhere;
}

.page-artist-block .home-artist-links{
  grid-area:artist-links;
}

@media (max-width:1280px){
  .page-artist-block .home-artist-grid{
    grid-template-columns:minmax(190px,240px) minmax(0,1fr);
    grid-template-areas:
      'artist-image artist-copy'
      'artist-links artist-links';
  }

  .page-artist-block .home-artist-links{
    padding:18px 0 0;
    border-top:1px solid #D7BC8A;
    border-left:0;
  }
}

@media (max-width:680px){
  .page-artist-block .home-artist-grid{
    grid-template-columns:1fr;
    grid-template-areas:
      'artist-image'
      'artist-copy'
      'artist-links';
  }

  .page-artist-block .home-artist-image-wrap{
    width:min(100%,360px);
    margin-inline:auto;
  }
}

/* ---------- Halloween readability refinements ---------- */
body.seasonal-halloween .page-head{
  border-bottom-color:rgba(255,214,170,.40) !important;
}
body.seasonal-halloween .page-head::before{
  background:linear-gradient(#FF9B3D 0 62%,#FFD06E 62%) !important;
  box-shadow:0 0 0 1px rgba(53,17,63,.12);
}
body.seasonal-halloween .page-title,
body.dark.seasonal-halloween .page-title{
  color:#FFF5E8 !important;
  text-shadow:0 2px 12px rgba(28,4,33,.22);
}
body.seasonal-halloween .page-sub,
body.dark.seasonal-halloween .page-sub{
  color:#F2D9B7 !important;
}
body.seasonal-halloween .global-footer,
body.dark.seasonal-halloween .global-footer{
  color:#EFD9BC !important;
  border-top-color:rgba(255,214,170,.38) !important;
  text-shadow:0 1px 8px rgba(15,3,21,.22);
}
body.seasonal-halloween .global-footer strong,
body.dark.seasonal-halloween .global-footer strong{
  color:#FFF6EA !important;
}

/* ---------- Custom background: page subtitle readability ----------
   Applied to every theme so user-selected artwork cannot erase subtitles. */
body.has-custom-site-background .page-sub{
  font-weight:700;
  text-shadow:
    -1px 0 0 rgba(255,249,238,.78),
    1px 0 0 rgba(255,249,238,.78),
    0 -1px 0 rgba(255,249,238,.78),
    0 1px 0 rgba(255,249,238,.92),
    0 2px 8px rgba(255,249,238,.72);
}
body.dark.has-custom-site-background .page-sub,
body.seasonal-halloween.has-custom-site-background .page-sub,
body.dark.seasonal-halloween.has-custom-site-background .page-sub{
  text-shadow:
    -1px 0 1px rgba(4,13,19,.82),
    1px 0 1px rgba(4,13,19,.82),
    0 -1px 1px rgba(4,13,19,.82),
    0 1px 1px rgba(4,13,19,.96),
    0 2px 10px rgba(4,13,19,.88);
}

/* ---------- Halloween: tabs and shared gallery lightbox ----------
   Visual-only treatment. Gallery data, navigation and page rendering stay shared. */
body.seasonal-halloween .tabs,
body.dark.seasonal-halloween .tabs{
  background:linear-gradient(180deg,rgba(91,31,91,.96),rgba(67,21,73,.97)) !important;
  border-color:#D89A54 !important;
  box-shadow:0 7px 18px rgba(34,6,41,.16);
}
body.seasonal-halloween .tab,
body.dark.seasonal-halloween .tab{
  background:#F3DFBB !important;
  color:#684E3B !important;
  border-color:rgba(216,154,84,.28) !important;
}
body.seasonal-halloween .tab:hover,
body.dark.seasonal-halloween .tab:hover{
  background:#FFF0CF !important;
  color:#35113F !important;
  border-color:#E0A455 !important;
}
body.seasonal-halloween .tab.active,
body.dark.seasonal-halloween .tab.active{
  background:linear-gradient(180deg,#FF9B3D,#FF8126) !important;
  color:#35113F !important;
  border-color:#D85E16 !important;
  box-shadow:3px 3px 0 rgba(53,17,63,.20) !important;
}

body.seasonal-halloween .gallery-item,
body.dark.seasonal-halloween .gallery-item{
  border-color:#D29A59 !important;
  background:var(--surface) !important;
}
body.seasonal-halloween .gallery-item:hover,
body.dark.seasonal-halloween .gallery-item:hover{
  border-color:#FF9B3D !important;
  box-shadow:0 10px 24px rgba(53,17,63,.24) !important;
}
body.seasonal-halloween .lightbox,
body.dark.seasonal-halloween .lightbox{
  background:rgba(24,5,30,.72) !important;
  backdrop-filter:blur(6px);
}
body.seasonal-halloween .lightbox-panel,
body.dark.seasonal-halloween .lightbox-panel{
  border-color:#D89A54 !important;
  box-shadow:0 30px 86px rgba(17,2,23,.58) !important;
}
body.seasonal-halloween .lightbox-header,
body.seasonal-halloween .lightbox-strip,
body.dark.seasonal-halloween .lightbox-header,
body.dark.seasonal-halloween .lightbox-strip{
  background:linear-gradient(180deg,#5A235D,#45174C) !important;
  border-color:#B96D83 !important;
}
body.seasonal-halloween .lightbox-name,
body.dark.seasonal-halloween .lightbox-name{
  color:#FFF5E8 !important;
}
body.seasonal-halloween .lightbox-role,
body.dark.seasonal-halloween .lightbox-role{
  color:#FFAA50 !important;
}
body.seasonal-halloween .lightbox-desc,
body.dark.seasonal-halloween .lightbox-desc{
  color:#EFD9BC !important;
}
body.seasonal-halloween .lightbox-stage{
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(232,213,223,.58) 0%,transparent 60%),
    #FFF9EF !important;
}
body.dark.seasonal-halloween .lightbox-stage{
  background:
    radial-gradient(120% 90% at 50% 0%,rgba(109,63,99,.32) 0%,transparent 60%),
    #0D2A36 !important;
}
body.seasonal-halloween :is(.lightbox-full,.lightbox-close,.lightbox-nav,.lightbox-counter){
  background:#FFF9EF !important;
  color:#153D48 !important;
  border-color:#D89A54 !important;
}
body.dark.seasonal-halloween :is(.lightbox-full,.lightbox-close,.lightbox-nav,.lightbox-counter){
  background:#153846 !important;
  color:#FFF5E8 !important;
  border-color:#D89A54 !important;
}
body.seasonal-halloween :is(.lightbox-full,.lightbox-close,.lightbox-nav):hover,
body.dark.seasonal-halloween :is(.lightbox-full,.lightbox-close,.lightbox-nav):hover{
  background:#FF8A2B !important;
  color:#35113F !important;
  border-color:#D85E16 !important;
}
body.seasonal-halloween .lightbox-thumb,
body.dark.seasonal-halloween .lightbox-thumb{
  background-color:#35113F !important;
  border-color:rgba(255,183,96,.20) !important;
}
body.seasonal-halloween .lightbox-thumb.active,
body.dark.seasonal-halloween .lightbox-thumb.active{
  border-color:#FF9B3D !important;
  box-shadow:0 0 0 2px rgba(255,155,61,.18);
}

/* ---------- Admin artwork fallback previews ---------- */
.admin-image-preview.fallback{
  position:relative;
  opacity:.88;
}
.admin-image-preview.fallback::after{
  content:"Built-in / inherited";
  position:absolute;
  right:8px;
  bottom:8px;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:5px;
  background:rgba(7,56,75,.78);
  color:#FFF5E8;
  font-family:var(--display-font);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-image-fallback-note{
  margin-top:7px;
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}

/* ---------- Shared gallery interaction refinements ---------- */
.admin-gallery-item{
  transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease,transform .15s ease;
}
.admin-gallery-item.is-dragging{
  opacity:.5;
  transform:scale(.985);
}
.admin-gallery-item.is-drag-over{
  border-color:var(--coral) !important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 24%,transparent);
}
.admin-gallery-actions{
  align-items:center;
}
.admin-gallery-drag{
  cursor:grab;
  user-select:none;
  touch-action:none;
}
.admin-gallery-drag:active{
  cursor:grabbing;
}
.lightbox-stage{
  touch-action:pan-y;
  overscroll-behavior:contain;
}
.lightbox-img{
  -webkit-user-drag:none;
  user-select:none;
}
.lightbox-thumb{
  padding:0;
  overflow:hidden;
}
.lightbox-thumb-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  -webkit-user-drag:none;
  user-select:none;
}

/* ---------- Mixed image / YouTube gallery ---------- */
.gallery-item{position:relative}
.gallery-play-badge{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:rgba(7,56,75,.86);
  color:#FFF7E9;
  font-size:18px;
  line-height:1;
  padding-left:3px;
  box-shadow:0 5px 18px rgba(0,0,0,.28);
  pointer-events:none;
}
.gallery-item:hover .gallery-play-badge{background:var(--coral);transform:translate(-50%,-50%) scale(1.06)}

.lightbox-panel:focus{outline:none}
.lightbox :is(button,a,iframe):focus-visible{
  outline:3px solid color-mix(in srgb,var(--coral) 75%,white);
  outline-offset:2px;
}
.lightbox-stage.is-video{
  min-height:min(64vh,620px);
  background:#10161A;
}
.lightbox-video{
  display:block;
  width:min(88%,960px);
  max-width:calc(100% - 96px);
  aspect-ratio:16/9;
  max-height:min(64vh,540px);
  border:0;
  border-radius:10px;
  background:#000;
  box-shadow:0 14px 34px rgba(0,0,0,.32);
}
.lightbox-thumb{position:relative}
.lightbox-thumb-play{
  position:absolute;
  inset:50% auto auto 50%;
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(7,56,75,.86);
  color:#FFF;
  font-size:10px;
  padding-left:2px;
  pointer-events:none;
}
.lightbox-thumb.is-video.active .lightbox-thumb-play{background:var(--coral)}

.admin-gallery-youtube{
  display:grid;
  gap:10px;
  margin-top:14px;
  padding:12px;
  border:1px dashed #C8A66A;
  border-radius:7px;
  background:rgba(255,253,248,.58);
}
body.dark .admin-gallery-youtube{background:rgba(11,36,49,.58)}
.admin-gallery-youtube-heading{display:flex;flex-direction:column;gap:3px}
.admin-gallery-youtube-heading strong{font-size:12px}
.admin-gallery-youtube-heading span,
.admin-gallery-youtube-actions span{color:var(--muted);font-size:10px;line-height:1.4}
.admin-gallery-youtube-fields{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.admin-gallery-youtube-fields label{display:flex;flex-direction:column;gap:5px}
.admin-gallery-youtube-fields label>span{font-size:10px;font-weight:700;color:var(--muted)}
.admin-gallery-youtube-fields input,
.admin-gallery-description input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFFDF8;
  color:inherit;
  padding:8px 9px;
  font:inherit;
  font-size:12px;
}
body.dark .admin-gallery-youtube-fields input,
body.dark .admin-gallery-description input{background:#0B2431;color:#F8ECD4}
.admin-gallery-youtube-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.admin-gallery-youtube-actions button,
.admin-gallery-file-button,
.admin-gallery-thumbnail-actions button{
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFF3DF;
  color:#725E43;
  padding:6px 9px;
  font:inherit;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
body.dark :is(.admin-gallery-youtube-actions button,.admin-gallery-file-button,.admin-gallery-thumbnail-actions button){
  background:#153846;
  color:#F8ECD4;
}
.admin-gallery-youtube-actions button:last-of-type{margin-left:auto}
.admin-field-error{margin:0;color:#B84F45;font-size:11px;font-weight:700}
.admin-gallery-preview{position:relative;display:block!important;margin:0!important}
.admin-gallery-preview img{display:block;width:100%;height:105px;object-fit:cover;border-radius:5px}
.admin-gallery-preview>span{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(7,56,75,.86);
  color:#FFF;
  padding-left:2px;
}
.admin-gallery-thumbnail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.admin-gallery-file-button{display:inline-flex;align-items:center}
.admin-effect-help{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.admin-effect-options label:has(select){min-width:140px}
.admin-effect-options label select{min-width:92px;padding:6px 8px}

@media (max-width:720px){
  .lightbox-stage.is-video{min-height:42vh;padding:14px 52px}
  .lightbox-video{width:100%;max-width:100%;max-height:48vh}
  .admin-gallery-youtube-fields{grid-template-columns:1fr}
  .admin-gallery-youtube-actions button:last-of-type{margin-left:0}
}

/* ---------- Reusable character effect presets ---------- */
.feat-art.has-character-card-effect,
.ch-card-art.has-character-card-effect{position:relative;overflow:hidden}
.character-preset-effect-layer{
  position:fixed;
  inset:0;
  z-index:880;
  overflow:hidden;
  pointer-events:none;
}
.character-card-effect-layer{
  position:absolute;
  inset:0;
  z-index:4;
  overflow:hidden;
  pointer-events:none;
}
.character-preset-particle{
  position:absolute;
  display:block;
  width:var(--size);
  height:auto;
  opacity:var(--opacity,.7);
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  will-change:transform,opacity;
}

.effect-floating .character-preset-particle{
  left:var(--left);
  bottom:-12%;
  animation:characterEffectFloat var(--duration) linear var(--delay) infinite;
}
@keyframes characterEffectFloat{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--rotation)) scale(.72)}
  12%{opacity:var(--opacity,.7)}
  82%{opacity:var(--opacity,.7)}
  100%{opacity:0;transform:translate3d(var(--drift),-118vh,0) rotate(calc(var(--rotation) + 220deg)) scale(1.02)}
}
.character-card-effect-layer.effect-floating .character-preset-particle{
  animation-name:characterCardEffectFloat;
}
@keyframes characterCardEffectFloat{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--rotation)) scale(.72)}
  15%,78%{opacity:var(--opacity,.7)}
  100%{opacity:0;transform:translate3d(var(--drift),-125%,0) rotate(calc(var(--rotation) + 160deg)) scale(1)}
}

.effect-falling .character-preset-particle{
  left:var(--left);
  top:-12%;
  animation:characterEffectFall var(--duration) linear var(--delay) infinite;
}
@keyframes characterEffectFall{
  0%{opacity:0;transform:translate3d(0,-8vh,0) rotate(var(--rotation))}
  10%,82%{opacity:var(--opacity,.72)}
  100%{opacity:0;transform:translate3d(var(--drift),118vh,0) rotate(calc(var(--rotation) + 520deg))}
}
.character-card-effect-layer.effect-falling .character-preset-particle{animation-name:characterCardEffectFall}
@keyframes characterCardEffectFall{
  0%{opacity:0;transform:translate3d(0,-15%,0) rotate(var(--rotation))}
  12%,82%{opacity:var(--opacity,.72)}
  100%{opacity:0;transform:translate3d(var(--drift),125%,0) rotate(calc(var(--rotation) + 360deg))}
}

.effect-rain .character-preset-particle{
  left:var(--left);
  top:-18%;
  width:2px;
  height:var(--size);
  border-radius:999px;
  background:linear-gradient(180deg,transparent,rgba(197,229,243,.86));
  filter:drop-shadow(0 0 3px rgba(156,211,237,.3));
  animation:characterEffectRain var(--duration) linear var(--delay) infinite;
}
.effect-rain img.character-preset-particle{width:var(--size);height:auto;background:none;border-radius:0}
@keyframes characterEffectRain{
  0%{opacity:0;transform:translate3d(0,-12vh,0) rotate(12deg)}
  8%,84%{opacity:var(--opacity,.7)}
  100%{opacity:0;transform:translate3d(-12vw,120vh,0) rotate(12deg)}
}
.character-card-effect-layer.effect-rain .character-preset-particle{animation-name:characterCardEffectRain}
@keyframes characterCardEffectRain{
  0%{opacity:0;transform:translate3d(0,-20%,0) rotate(12deg)}
  8%,84%{opacity:var(--opacity,.7)}
  100%{opacity:0;transform:translate3d(-28px,125%,0) rotate(12deg)}
}

.effect-mist .character-preset-particle{
  left:var(--left);
  top:var(--top);
  width:var(--size);
  aspect-ratio:2.4/1;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(225,235,235,.34),rgba(210,225,228,.12) 52%,transparent 72%);
  filter:blur(12px);
  animation:characterEffectMist var(--duration) ease-in-out var(--delay) infinite alternate;
}
.effect-mist img.character-preset-particle{height:auto;aspect-ratio:auto;background:none;filter:blur(4px)}
@keyframes characterEffectMist{
  0%{opacity:.08;transform:translate3d(-22%,8px,0) scale(.88)}
  45%{opacity:var(--opacity,.45)}
  100%{opacity:.12;transform:translate3d(36%,-14px,0) scale(1.12)}
}

.effect-orbiting .character-preset-particle{
  left:50%;
  top:50%;
  animation:characterEffectOrbit var(--duration) linear var(--delay) infinite;
}
@keyframes characterEffectOrbit{
  from{opacity:var(--opacity,.7);transform:rotate(var(--start-angle)) translateX(var(--orbit-radius)) rotate(0deg)}
  to{opacity:var(--opacity,.7);transform:rotate(calc(var(--start-angle) + 360deg)) translateX(var(--orbit-radius)) rotate(-360deg)}
}

body.dark .effect-rain .character-preset-particle{
  background:linear-gradient(180deg,transparent,rgba(190,226,244,.78));
}
body.dark .effect-mist .character-preset-particle{
  background:radial-gradient(ellipse,rgba(210,225,231,.24),rgba(175,203,215,.08) 54%,transparent 74%);
}

@media (prefers-reduced-motion:reduce){
  .character-preset-effect-layer,
  .character-card-effect-layer,
  .character-sparkle-layer,
  .character-card-sparkle-layer{display:none!important}
}

/* ---------- Character effects: built-in fallbacks and adaptive contrast ---------- */
.character-sparkle-layer span.character-sparkle,
.character-card-sparkle-layer span.character-card-sparkle{
  aspect-ratio:1;
  height:auto;
  background:linear-gradient(135deg,#FFFCEB 0 34%,#F0B64F 35% 52%,#0B7180 53% 68%,#FFFCEB 69% 100%);
  clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);
}
body.dark .character-sparkle-layer span.character-sparkle,
body.dark .character-card-sparkle-layer span.character-card-sparkle{
  background:linear-gradient(135deg,#FFFFFF 0 34%,#FFD574 35% 55%,#7DE0E8 56% 70%,#FFFFFF 71% 100%);
}
body.seasonal-halloween .character-sparkle-layer span.character-sparkle,
body.seasonal-halloween .character-card-sparkle-layer span.character-card-sparkle{
  background:linear-gradient(135deg,#FFF7DD 0 34%,#FF9B3D 35% 55%,#D77AB3 56% 70%,#FFF7DD 71% 100%);
}

.effect-floating span.character-preset-particle{
  aspect-ratio:1;
  border:1px solid rgba(9,82,96,.48);
  border-radius:50%;
  background:radial-gradient(circle at 34% 30%,#FFFDE9 0 12%,#F2C768 20%,rgba(24,139,150,.92) 48%,rgba(7,61,76,.18) 72%,transparent 76%);
  box-shadow:0 0 8px rgba(14,117,131,.58),0 0 15px rgba(226,172,73,.34);
}
.effect-falling span.character-preset-particle{
  aspect-ratio:1.45/1;
  border:1px solid rgba(142,83,40,.36);
  border-radius:78% 22% 72% 28% / 66% 34% 66% 34%;
  background:linear-gradient(145deg,#F7CF7B 0 22%,#DE795D 48%,#8B4B72 100%);
  box-shadow:0 2px 7px rgba(90,41,33,.28);
}
.effect-orbiting span.character-preset-particle{
  aspect-ratio:1;
  background:linear-gradient(145deg,#FFF9D8 0 22%,#E9B84F 42%,#177D89 72%,#0A4859 100%);
  clip-path:polygon(50% 0,62% 34%,100% 50%,62% 66%,50% 100%,38% 66%,0 50%,38% 34%);
  filter:drop-shadow(0 0 5px rgba(8,92,105,.68)) drop-shadow(0 0 9px rgba(226,172,73,.42));
}

.effect-rain span.character-preset-particle{
  background:linear-gradient(180deg,transparent 0%,rgba(17,105,130,.55) 30%,rgba(5,61,83,.94) 100%);
  filter:drop-shadow(0 0 2px rgba(255,255,255,.88)) drop-shadow(0 0 4px rgba(10,91,119,.48));
}
.effect-mist span.character-preset-particle{
  background:radial-gradient(ellipse,rgba(37,110,123,.34),rgba(74,143,151,.20) 48%,rgba(255,247,227,.08) 66%,transparent 76%);
  filter:blur(10px);
}

body.dark .effect-floating span.character-preset-particle{
  border-color:rgba(255,221,140,.56);
  background:radial-gradient(circle at 34% 30%,#FFFFFF 0 14%,#FFD16D 22%,rgba(93,210,222,.96) 50%,rgba(12,76,92,.28) 72%,transparent 77%);
  box-shadow:0 0 9px rgba(99,222,232,.70),0 0 17px rgba(255,198,91,.42);
}
body.dark .effect-falling span.character-preset-particle{
  border-color:rgba(255,207,118,.44);
  background:linear-gradient(145deg,#FFD77E 0 20%,#EE8B68 48%,#C26AA5 100%);
  box-shadow:0 0 8px rgba(255,183,91,.34);
}
body.dark .effect-orbiting span.character-preset-particle{
  background:linear-gradient(145deg,#FFFFFF 0 20%,#FFD470 42%,#73DDE5 72%,#26899A 100%);
  filter:drop-shadow(0 0 5px rgba(110,226,236,.78)) drop-shadow(0 0 10px rgba(255,202,104,.50));
}
body.dark .effect-rain span.character-preset-particle{
  background:linear-gradient(180deg,transparent 0%,rgba(149,220,240,.64) 28%,rgba(225,247,255,.96) 100%);
  filter:drop-shadow(0 0 4px rgba(109,202,235,.68));
}
body.dark .effect-mist span.character-preset-particle{
  background:radial-gradient(ellipse,rgba(224,243,248,.38),rgba(148,199,215,.22) 50%,rgba(89,148,169,.10) 68%,transparent 78%);
  filter:blur(10px);
}

body.seasonal-halloween .effect-floating span.character-preset-particle{
  border-color:rgba(255,183,96,.62);
  background:radial-gradient(circle at 34% 30%,#FFF8E8 0 13%,#FFB24F 22%,rgba(209,102,188,.96) 49%,rgba(87,28,91,.25) 72%,transparent 77%);
  box-shadow:0 0 9px rgba(215,122,179,.70),0 0 16px rgba(255,139,42,.48);
}
body.seasonal-halloween .effect-falling span.character-preset-particle{
  border-color:rgba(255,183,96,.58);
  background:linear-gradient(145deg,#FFC360 0 20%,#FF8126 48%,#A94A91 100%);
  box-shadow:0 0 8px rgba(255,129,38,.40);
}
body.seasonal-halloween .effect-orbiting span.character-preset-particle{
  background:linear-gradient(145deg,#FFF8E8 0 20%,#FFB34F 42%,#E17CBD 70%,#7B3479 100%);
  filter:drop-shadow(0 0 6px rgba(225,124,189,.78)) drop-shadow(0 0 11px rgba(255,155,61,.54));
}
body.seasonal-halloween .effect-rain span.character-preset-particle{
  background:linear-gradient(180deg,transparent 0%,rgba(240,169,210,.62) 28%,rgba(255,207,126,.96) 100%);
  filter:drop-shadow(0 0 4px rgba(255,141,48,.58));
}
body.seasonal-halloween .effect-mist span.character-preset-particle{
  background:radial-gradient(ellipse,rgba(238,176,216,.38),rgba(207,112,190,.22) 48%,rgba(255,174,88,.10) 67%,transparent 78%);
}

/* ---------- Character effect clarity and rain contrast ---------- */
.admin-effect-help{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.admin-effect-help strong{color:var(--text);font-size:12px}
.admin-effect-help span{display:block}

/* A dark core plus a light rim keeps rain visible over both pale paper and artwork. */
.effect-rain span.character-preset-particle{
  width:3px;
  background:linear-gradient(
    90deg,
    rgba(255,255,255,.92) 0 24%,
    rgba(13,82,108,.98) 25% 76%,
    rgba(255,255,255,.82) 77% 100%
  );
  box-shadow:0 0 1px rgba(255,255,255,.95),0 0 4px rgba(5,48,69,.72);
  filter:none;
}
body.dark .effect-rain span.character-preset-particle{
  background:linear-gradient(
    90deg,
    rgba(22,73,94,.96) 0 20%,
    rgba(217,246,255,.98) 21% 79%,
    rgba(22,73,94,.94) 80% 100%
  );
  box-shadow:0 0 2px rgba(178,231,249,.88),0 0 5px rgba(47,153,192,.64);
  filter:none;
}
body.seasonal-halloween .effect-rain span.character-preset-particle{
  background:linear-gradient(
    90deg,
    rgba(84,27,88,.96) 0 20%,
    rgba(255,210,130,.98) 21% 79%,
    rgba(84,27,88,.94) 80% 100%
  );
  box-shadow:0 0 2px rgba(255,217,153,.90),0 0 5px rgba(222,104,181,.68);
  filter:none;
}

/* ---------- Compact gallery workbench ---------- */
.admin-gallery-workbench{
  display:grid;
  gap:14px;
}
.admin-gallery-workbench-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.admin-gallery-workbench-heading>div:first-child{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.admin-gallery-workbench-heading>div:first-child>span{
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}
.admin-gallery-title-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.admin-gallery-title-row strong{font-size:15px}
.admin-gallery-count{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 8px;
  border:1px solid #D7BC8A;
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,255,255,.35);
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
}
body.dark .admin-gallery-count{background:rgba(11,36,49,.72)}
.admin-gallery-heading-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.admin-gallery-heading-actions button,
.admin-gallery-scroll-button,
.admin-gallery-selected-preview-actions button,
.admin-gallery-selected-actions button{
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFF3DF;
  color:#725E43;
  padding:7px 10px;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
body.dark :is(
  .admin-gallery-heading-actions button,
  .admin-gallery-scroll-button,
  .admin-gallery-selected-preview-actions button,
  .admin-gallery-selected-actions button
){
  background:#153846;
  color:#F8ECD4;
}
.admin-gallery-heading-actions button:hover,
.admin-gallery-scroll-button:hover,
.admin-gallery-selected-preview-actions button:hover,
.admin-gallery-selected-actions button:hover{
  border-color:var(--coral);
}
.admin-gallery-heading-actions button:disabled,
.admin-gallery-scroll-button:disabled,
.admin-gallery-selected-preview-actions button:disabled,
.admin-gallery-selected-actions button:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.admin-gallery-youtube-toggle{
  color:#B84F45!important;
  border-color:#D58371!important;
}

.admin-gallery-filmstrip-shell{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:10px;
  border:1px solid #D7BC8A;
  border-radius:9px;
  background:rgba(255,253,248,.45);
  min-width:0;
}
body.dark .admin-gallery-filmstrip-shell{background:rgba(11,36,49,.48)}
.admin-gallery-scroll-button{
  width:34px;
  height:52px;
  padding:0;
  font-size:24px;
  line-height:1;
}
.admin-gallery-filmstrip{
  display:flex;
  gap:10px;
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 3px 10px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:#D2B77F transparent;
  overscroll-behavior-inline:contain;
}
.admin-gallery-filmstrip::-webkit-scrollbar{height:7px}
.admin-gallery-filmstrip::-webkit-scrollbar-thumb{background:#D2B77F;border-radius:999px}
.admin-gallery-filmstrip-item{
  position:relative;
  flex:0 0 142px;
  min-width:0;
  padding:7px;
  border:1px solid #D7BC8A;
  border-radius:8px;
  background:var(--panel);
  cursor:pointer;
  scroll-snap-align:center;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease;
}
.admin-gallery-filmstrip-item:hover{
  border-color:#C99A4D;
  transform:translateY(-1px);
}
.admin-gallery-filmstrip-item:focus-visible{
  outline:3px solid color-mix(in srgb,var(--coral) 45%,transparent);
  outline-offset:2px;
}
.admin-gallery-filmstrip-item.is-selected{
  border-color:var(--coral);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--coral) 25%,transparent),0 6px 16px rgba(93,55,26,.12);
}
.admin-gallery-filmstrip-item.is-selected::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-8px;
  width:12px;
  height:12px;
  transform:translateX(-50%) rotate(45deg);
  border-right:1px solid var(--coral);
  border-bottom:1px solid var(--coral);
  background:var(--panel);
}
.admin-gallery-filmstrip-item.is-dragging{opacity:.48;transform:scale(.98)}
.admin-gallery-filmstrip-item.is-drag-over{
  border-color:var(--coral);
  box-shadow:inset 4px 0 0 var(--coral);
}
.admin-gallery-filmstrip-meta{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:5px;
  min-height:23px;
  margin-bottom:5px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}
.admin-gallery-filmstrip-meta .admin-gallery-drag{
  min-width:24px;
  min-height:22px;
  padding:2px 5px;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
}
.admin-gallery-type-icon{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:5px;
  background:rgba(7,56,75,.09);
  color:var(--v5-teal-deep);
}
body.dark .admin-gallery-type-icon{background:rgba(255,255,255,.08);color:#F8ECD4}
.admin-gallery-filmstrip-preview{
  position:relative;
  overflow:hidden;
  aspect-ratio:1/1;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#0A596C;
}
.admin-gallery-filmstrip-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.admin-gallery-play-badge{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:rgba(7,56,75,.88);
  color:#FFF;
  padding-left:2px;
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.admin-gallery-filmstrip-item p{
  overflow:hidden;
  margin:7px 28px 0 1px;
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-gallery-filmstrip-remove{
  position:absolute;
  right:7px;
  bottom:6px;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  padding:0!important;
  border:1px solid #D58371!important;
  border-radius:6px!important;
  background:#FFF3DF!important;
  color:#B84F45!important;
  font-size:16px!important;
  line-height:1!important;
}
body.dark .admin-gallery-filmstrip-remove{background:#153846!important}

.admin-gallery-selected-editor{
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid #D7BC8A;
  border-radius:9px;
  background:rgba(255,253,248,.52);
}
body.dark .admin-gallery-selected-editor{background:rgba(11,36,49,.52)}
.admin-gallery-selected-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.admin-gallery-selected-heading strong{font-size:13px}
.admin-gallery-selected-type{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:3px 9px;
  border:1px solid color-mix(in srgb,var(--coral) 55%,#D7BC8A);
  border-radius:999px;
  background:color-mix(in srgb,var(--coral) 10%,var(--panel));
  color:#A94F3E;
  font-size:10px;
  font-weight:800;
}
body.dark .admin-gallery-selected-type{color:#FFB79D}
.admin-gallery-selected-layout{
  display:grid;
  grid-template-columns:minmax(220px,340px) minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.admin-gallery-selected-preview-wrap{min-width:0}
.admin-gallery-selected-preview{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
  border:1px solid #C8A66A;
  border-radius:8px;
  background:#0A596C;
}
.admin-gallery-selected-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:var(--surface-2);
}
.admin-gallery-selected-preview.is-video img{object-fit:cover}
.admin-gallery-selected-preview>span{
  position:absolute;
  left:50%;
  top:50%;
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(7,56,75,.86);
  color:#FFF;
  font-size:20px;
  padding-left:3px;
}
.admin-gallery-selected-preview-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:8px;
}
.admin-gallery-selected-fields{
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:10px;
}
.admin-gallery-selected-fields .admin-gallery-description{margin:0}
.admin-gallery-description small{
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}
.admin-gallery-selected-fields textarea{min-height:96px}
.admin-gallery-selected-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed #D7BC8A;
}
.admin-gallery-selected-actions .admin-image-remove{margin-left:auto}
.admin-gallery-save-note{
  margin:0;
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}

@media (max-width:900px){
  .admin-gallery-selected-layout{grid-template-columns:minmax(190px,280px) minmax(0,1fr)}
}
@media (max-width:720px){
  .admin-gallery-workbench-heading{flex-direction:column}
  .admin-gallery-heading-actions{width:100%;justify-content:flex-start}
  .admin-gallery-selected-layout{grid-template-columns:1fr}
  .admin-gallery-selected-preview{max-height:360px}
  .admin-gallery-selected-actions .admin-image-remove{margin-left:0}
}
@media (max-width:520px){
  .admin-gallery-filmstrip-shell{grid-template-columns:1fr;padding:8px}
  .admin-gallery-scroll-button{display:none}
  .admin-gallery-filmstrip-item{flex-basis:126px}
  .admin-gallery-selected-heading{align-items:flex-start;flex-direction:column}
}

/* ---------- Private editor: wider, clearer workspace ---------- */
body.admin-editor-page .content{
  max-width:none;
  padding:24px clamp(20px,2.1vw,38px) 42px;
}

.admin-page{
  width:100%;
  max-width:1680px;
  margin-inline:auto;
}

.admin-page>.page-head{
  margin-bottom:0;
  padding:8px 6px 18px 22px;
}

.admin-page>.page-head .page-sub{
  max-width:920px;
  line-height:1.55;
}

.admin-tabs{
  display:flex;
  flex-wrap:nowrap;
  gap:0;
  margin:18px 0 20px;
  padding:5px;
  overflow-x:auto;
  border:1px solid #D7BC8A;
  border-radius:10px;
  background:rgba(255,249,239,.82);
  box-shadow:0 5px 18px rgba(75,51,23,.06);
  scrollbar-width:thin;
}

body.dark .admin-tabs{
  background:rgba(10,34,48,.88);
  border-color:#5B4930;
}

.admin-tabs button{
  position:relative;
  display:flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:8px 17px;
  border:0;
  border-right:1px solid rgba(200,166,106,.42);
  border-radius:6px;
  background:transparent;
  color:var(--muted);
  letter-spacing:.035em;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}

.admin-tabs button:last-child{border-right:0}
.admin-tabs button i{font-size:16px}
.admin-tabs button:hover{background:rgba(210,164,81,.10);color:var(--text)}
.admin-tabs button.active{
  background:linear-gradient(180deg,#FF8965,#FF7454);
  border-color:transparent;
  color:#103744;
  box-shadow:0 4px 10px rgba(180,76,52,.16);
}

body.dark .admin-tabs button{
  background:transparent;
  color:#C5B897;
}
body.dark .admin-tabs button:hover{background:rgba(214,168,88,.10);color:#F8ECD4}
body.dark .admin-tabs button.active{background:linear-gradient(180deg,#FF8965,#FF7454);color:#102B36}

.admin-layout{
  grid-template-columns:minmax(280px,320px) minmax(0,1fr);
  gap:22px;
}

.admin-list-panel{
  top:16px;
  display:flex;
  flex-direction:column;
  max-height:calc(100vh - 128px);
  padding:16px;
  overflow:visible;
}

.admin-list-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:13px;
  border-bottom:1px solid #D7BC8A;
}

.admin-list-header>div:first-child{min-width:0}
.admin-list-eyebrow{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.admin-list-header h3{
  margin:0;
  color:var(--text);
  font-family:var(--display-font);
  font-size:17px;
  letter-spacing:.035em;
}

.admin-new-button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  flex:0 0 auto;
  min-height:34px;
  padding:7px 10px;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#0A596C;
  color:#FFF2D7;
  font:inherit;
  font-size:10px;
  font-weight:800;
  letter-spacing:.045em;
  cursor:pointer;
}
.admin-new-button:hover{background:#087887}
body.dark .admin-new-button{border-color:#796139;background:#0A425D;color:#FFF2D8}

.admin-list-search{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:13px;
  padding:0 10px;
  min-height:40px;
  border:1px solid #D7BC8A;
  border-radius:7px;
  background:#FFFDF8;
}
.admin-list-search i{flex:0 0 auto;color:var(--muted);font-size:15px}
.admin-list-search input{
  min-width:0;
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:12px;
}
.admin-list-search button{
  display:grid;
  flex:0 0 auto;
  width:24px;
  height:24px;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(200,166,106,.16);
  color:var(--muted);
  cursor:pointer;
}
body.dark .admin-list-search{background:#0B2431;border-color:#5B4930}

.admin-list-summary{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:9px 2px 5px;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
}

.admin-list-scroll{
  min-height:120px;
  max-height:calc(100vh - 338px);
  padding:2px 4px 3px 0;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#C8A66A transparent;
}

.admin-list-empty{
  padding:28px 8px;
  text-align:center;
  font-size:12px;
}

.admin-list-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  gap:7px;
  align-items:stretch;
}

.admin-list-row .admin-list-item{
  min-width:0;
  margin-top:8px;
  padding:12px 13px;
  gap:6px;
  border-color:#D7BC8A;
  border-radius:8px;
  background:#FFF8ED;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.admin-list-row .admin-list-item:hover{
  border-color:#C8A66A;
  background:#FFFDF8;
  transform:translateY(-1px);
}
body.dark .admin-list-row .admin-list-item{background:#102F3B;border-color:#5B4930}
body.dark .admin-list-row .admin-list-item:hover{background:#153846;border-color:#796139}

.admin-list-item.active{
  border-color:#E86E50;
  background:linear-gradient(90deg,rgba(255,123,85,.14),rgba(255,248,237,.92));
  box-shadow:inset 4px 0 0 var(--v5-coral),0 5px 12px rgba(75,51,23,.07);
}
body.dark .admin-list-item.active{
  background:linear-gradient(90deg,rgba(255,123,85,.15),rgba(16,47,59,.92));
}
.admin-list-item-title{
  overflow:hidden;
  color:var(--text)!important;
  font-family:var(--display-font);
  font-size:13px!important;
  font-weight:800;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-list-status{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px!important;
  font-weight:700;
}
.admin-list-status i{
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#D6A858;
  box-shadow:0 0 0 2px rgba(214,168,88,.12);
}
.admin-list-status.published i{background:#3AA37A;box-shadow:0 0 0 2px rgba(58,163,122,.12)}


.admin-list-footer{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
  padding:11px 2px 0;
  border-top:1px solid #D7BC8A;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.admin-form-panel{
  min-width:0;
  padding:20px;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(75,51,23,.07);
}

.admin-form-section{
  margin-top:16px;
  padding:17px;
  border:1px solid #D7BC8A;
  border-radius:9px;
  background:rgba(255,253,248,.66);
}
.admin-form-section:first-of-type{margin-top:0}
body.dark .admin-form-section{background:rgba(11,36,49,.62);border-color:#5B4930}

.admin-form-section-heading{
  display:flex;
  align-items:flex-start;
  gap:11px;
  margin-bottom:15px;
  padding-bottom:11px;
  border-bottom:1px solid rgba(200,166,106,.58);
}
.admin-form-section-icon{
  display:grid;
  flex:0 0 auto;
  width:30px;
  height:30px;
  place-items:center;
  border:1px solid rgba(200,166,106,.75);
  border-radius:7px;
  background:#FFF3DF;
  color:#0A596C;
}
body.dark .admin-form-section-icon{background:#153846;color:#D6A858;border-color:#796139}
.admin-form-section-heading>div:last-child{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
}
.admin-form-section-heading strong{
  color:var(--text);
  font-family:var(--display-font);
  font-size:13px;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.admin-form-section-heading span{
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.admin-form-grid{
  gap:16px 18px;
}
.admin-form-grid input[type='text'],
.admin-form-grid input[type='url'],
.admin-form-grid input[type='number'],
.admin-form-grid textarea,
.admin-form-grid select{
  min-height:42px;
  border-color:#C8A66A;
  background:#FFFDF8;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.admin-form-grid textarea{min-height:72px;resize:vertical}
.admin-form-grid input:focus,
.admin-form-grid textarea:focus,
.admin-form-grid select:focus{
  outline:0;
  border-color:#0A596C;
  box-shadow:0 0 0 3px rgba(10,89,108,.10);
}
body.dark .admin-form-grid input:focus,
body.dark .admin-form-grid textarea:focus,
body.dark .admin-form-grid select:focus{
  border-color:#D6A858;
  box-shadow:0 0 0 3px rgba(214,168,88,.10);
}

.admin-section-image-grid{
  margin-top:0;
}
.admin-form-section .admin-image-field{
  background:rgba(255,248,237,.82);
}
body.dark .admin-form-section .admin-image-field{background:rgba(16,47,59,.78)}

.admin-content-section .admin-editor-label{margin-top:0}
.admin-content-section .admin-page-builder{margin-top:0}
.admin-character-writing-section>.admin-editor-label:first-of-type{margin-top:0}

.admin-gallery-field,
.admin-relations,
.admin-effect-panel{
  padding:16px;
  border-radius:9px;
  box-shadow:0 4px 14px rgba(75,51,23,.035);
}

.admin-actions{
  position:relative;
  align-items:center;
  margin-top:20px;
  padding:14px;
  border:1px solid #D7BC8A;
  border-radius:9px;
  background:rgba(255,248,237,.84);
}
body.dark .admin-actions{background:rgba(16,47,59,.76);border-color:#5B4930}

.admin-unsaved{
  border-radius:7px;
}

.admin-music-panel,
.admin-artist-panel,
.admin-seasonal-panel{
  width:100%;
  max-width:none;
}

@media (max-width:1320px){
  .admin-layout{grid-template-columns:minmax(250px,285px) minmax(0,1fr)}
  .admin-tabs button{padding-inline:13px}
}

@media (max-width:1040px){
  body.admin-editor-page .content{padding-inline:18px}
  .admin-layout{grid-template-columns:1fr}
  .admin-list-panel{position:static;max-height:none}
  .admin-list-scroll{max-height:390px}
}

@media (max-width:760px){
  .admin-page>.page-head{padding-left:18px}
  .admin-tabs{padding:4px}
  .admin-tabs button{min-height:38px;padding:7px 11px}
  .admin-tabs button span{font-size:10px}
  .admin-form-panel{padding:13px}
  .admin-form-section{padding:13px}
  .admin-list-header{flex-direction:column}
  .admin-new-button{width:100%}
}

/* ---------- Admin content ordering and quick actions ---------- */
.admin-list-row{
  grid-template-columns:24px minmax(0,1fr) 34px;
}
.admin-list-drag{
  align-self:stretch;
  display:grid;
  width:24px;
  min-height:58px;
  margin-top:8px;
  place-items:center;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#9B8669;
  cursor:grab;
  touch-action:none;
}
.admin-list-drag:hover{
  background:rgba(210,164,81,.12);
  color:var(--text);
}
.admin-list-drag:active{cursor:grabbing}
.admin-list-drag:disabled{opacity:.3;cursor:not-allowed}
body.dark .admin-list-drag{color:#A99A7D}
body.dark .admin-list-drag:hover{background:rgba(214,168,88,.10);color:#F8ECD4}

.admin-list-row.is-dragging{opacity:.48}
.admin-list-row.is-drag-over::after{
  content:"";
  position:absolute;
  z-index:4;
  left:24px;
  right:0;
  top:4px;
  height:3px;
  border-radius:99px;
  background:var(--v5-coral);
  box-shadow:0 0 0 2px rgba(255,123,85,.12);
}

@media (max-width: 720px){
  .admin-list-row{grid-template-columns:22px minmax(0,1fr) 34px}
  .admin-list-drag{width:22px}
}

/* ---------- Admin list: visible ordering controls ---------- */
.admin-list-row{
  grid-template-columns:24px minmax(0,1fr) 36px;
}
.admin-list-order-buttons{
  align-self:stretch;
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:5px;
  min-height:58px;
  margin-top:8px;
}
.admin-list-order-buttons button{
  display:grid;
  min-width:36px;
  min-height:0;
  place-items:center;
  padding:0;
  border:1px solid #D7BC8A;
  border-radius:7px;
  background:#FFF8ED;
  color:var(--muted);
  font:inherit;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease;
}
.admin-list-order-buttons button:hover:not(:disabled){
  border-color:#C8A66A;
  background:#FFFDF8;
  color:var(--text);
}
.admin-list-order-buttons button:disabled{
  opacity:.34;
  cursor:not-allowed;
}
body.dark .admin-list-order-buttons button{
  border-color:#5B4930;
  background:#102F3B;
  color:#A99A7D;
}
body.dark .admin-list-order-buttons button:hover:not(:disabled){
  border-color:#796139;
  background:#153846;
  color:#F8ECD4;
}
@media (max-width:720px){
  .admin-list-row{grid-template-columns:22px minmax(0,1fr) 34px}
  .admin-list-order-buttons button{min-width:34px}
}

/* ---------- Admin list: smoother drag ordering ---------- */
.admin-list-items{
  display:grid;
  min-width:0;
}
.admin-list-reorder-move{
  transition:transform .18s cubic-bezier(.22,.8,.32,1);
}
.admin-list-row{
  position:relative;
  transition:opacity .14s ease,box-shadow .14s ease,transform .14s ease;
}
.admin-list-row.is-dragging{
  opacity:.28;
  transform:scale(.985);
}
.admin-list-row.is-drag-over::after{
  top:auto;
  bottom:-2px;
}
.admin-list-drag-preview{
  position:fixed!important;
  z-index:99999!important;
  top:-1000px!important;
  left:-1000px!important;
  margin:0!important;
  padding:0 6px!important;
  opacity:.94!important;
  transform:rotate(.6deg) scale(1.015)!important;
  border-radius:10px!important;
  background:var(--surface)!important;
  box-shadow:0 18px 38px rgba(36,24,11,.22)!important;
  pointer-events:none!important;
}
body.dark .admin-list-drag-preview{
  background:var(--surface-2)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.42)!important;
}
.admin-list-drag-preview .admin-list-order-buttons{
  opacity:.5;
}

/* ---------- Species icon settings ---------- */
.species-filter-image{
  width:16px;
  height:16px;
  flex:0 0 16px;
  object-fit:contain;
}
.ch-card-species img{
  display:block;
  width:18px;
  height:18px;
  object-fit:contain;
}

.admin-species-icons-section{display:grid;gap:14px}
.admin-species-icons-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.admin-species-icon-row{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-width:0;
  padding:12px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface-2);
}
.admin-species-icon-preview{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--surface);
  color:var(--primary);
  font-size:27px;
}
.admin-species-icon-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.admin-species-icon-fields{
  display:grid;
  gap:7px;
  min-width:0;
}
.admin-species-icon-fields>strong{
  overflow:hidden;
  color:var(--text);
  font-family:var(--display-font);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-species-icon-fields label{display:grid;gap:4px}
.admin-species-icon-fields label span{
  color:var(--muted);
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-species-icon-fields select{
  width:100%;
  min-width:0;
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
}
.admin-species-icon-actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  min-width:128px;
}
.admin-species-icon-actions button,
.admin-species-icon-upload{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface);
  color:var(--text);
  font-family:var(--display-font);
  font-size:11px;
  text-align:center;
  cursor:pointer;
}
.admin-species-icon-upload input{display:none}
.admin-species-icon-upload.disabled,
.admin-species-icon-actions button:disabled{opacity:.55;cursor:not-allowed}
.admin-species-icon-actions small{
  max-width:150px;
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
}
.admin-species-icons-empty{
  padding:14px;
  border:1px dashed var(--border);
  border-radius:8px;
  color:var(--muted);
  text-align:center;
}
.admin-species-icons-message{
  margin:0;
  color:var(--muted);
  font-size:12px;
}

@media (max-width:1100px){
  .admin-species-icons-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .admin-species-icon-row{grid-template-columns:52px minmax(0,1fr)}
  .admin-species-icon-actions{grid-column:1 / -1;min-width:0}
  .admin-species-icon-actions small{max-width:none}
}

/* ---------- Linked character affiliations ---------- */
.admin-affiliation-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;
  gap:8px;
  align-items:center;
}
.admin-affiliation-row input,
.admin-affiliation-row select{
  width:100%;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:inherit;
  padding:9px 10px;
  font:inherit;
}
body.dark .admin-affiliation-row input,
body.dark .admin-affiliation-row select{
  background:#0B2431;
  color:#F8ECD4;
}
.admin-affiliation-row button{
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFF3DF;
  padding:6px 9px;
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.affiliation-links{
  display:inline;
  text-align:right;
}
.affiliation-links a{
  color:var(--primary);
  font-weight:800;
  text-decoration:none;
  border-bottom:1px solid transparent;
}
.affiliation-links a:hover{
  color:var(--coral);
  border-bottom-color:currentColor;
}
@media (max-width:1050px){
  .admin-affiliation-row{grid-template-columns:1fr 1fr}
  .admin-affiliation-row button{grid-column:1/-1;justify-self:start}
}
@media (max-width:720px){
  .admin-affiliation-row{grid-template-columns:1fr}
  .admin-affiliation-row button{grid-column:auto}
}

/* Species manager */
.admin-species-manager-launch{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin-top:14px;
  padding:14px;
  border:1px solid var(--editorial-line);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 92%,var(--primary-soft));
}
.admin-species-manager-launch>div{display:grid;gap:3px;min-width:0}
.admin-species-manager-launch strong{font-size:14px;color:var(--ink)}
.admin-species-manager-launch small{font-size:11px;color:var(--muted)}
.admin-species-manager-launch button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:0 12px;
  border:1px solid var(--gold-line);
  border-radius:9px;
  background:var(--surface);
  color:var(--ink);
  font:inherit;
  font-weight:700;
  cursor:pointer;
}
.admin-species-manager-launch button:hover,
.admin-species-manager-launch button.active{
  border-color:var(--primary);
  color:var(--primary);
  box-shadow:3px 3px 0 color-mix(in srgb,var(--primary) 18%,transparent);
}
.admin-species-manager{display:grid;gap:18px;align-self:start}
.admin-species-manager-header{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding-bottom:16px;
  border-bottom:1px solid var(--editorial-line);
}
.admin-species-manager-header h3{margin:3px 0 6px;font-size:24px}
.admin-species-manager-header p{margin:0;color:var(--muted);line-height:1.55}
.admin-species-manager-header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-species-manager-layout{
  display:grid;
  grid-template-columns:minmax(230px,280px) minmax(0,1fr);
  gap:18px;
  min-height:520px;
}
.admin-species-manager-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
  padding-right:4px;
  border-right:1px solid var(--editorial-line);
}
.admin-species-manager-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  gap:6px;
  align-items:stretch;
  border:1px solid var(--editorial-line);
  border-radius:11px;
  background:var(--surface);
  overflow:hidden;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.admin-species-manager-row:hover,
.admin-species-manager-row.active{
  border-color:var(--primary);
  box-shadow:3px 3px 0 color-mix(in srgb,var(--primary) 16%,transparent);
}
.admin-species-manager-row-main{
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:10px;
  align-items:center;
  min-width:0;
  padding:10px;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.admin-species-manager-row-icon,
.admin-species-manager-preview{
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--gold-line);
  background:color-mix(in srgb,var(--primary-soft) 45%,var(--surface));
  color:var(--primary);
}
.admin-species-manager-row-icon{width:42px;height:42px;border-radius:10px;font-size:20px}
.admin-species-manager-row-icon img,
.admin-species-manager-preview img{width:100%;height:100%;object-fit:cover}
.admin-species-manager-row-copy{display:grid;gap:4px;min-width:0}
.admin-species-manager-row-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-species-manager-row-copy small{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.admin-species-manager-row-copy em{
  color:var(--coral);
  font-style:normal;
  font-weight:700;
}
.admin-species-manager-order{display:grid;grid-template-rows:1fr 1fr;border-left:1px solid var(--editorial-line)}
.admin-species-manager-order button{
  display:grid;
  place-items:center;
  border:0;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
}
.admin-species-manager-order button+button{border-top:1px solid var(--editorial-line)}
.admin-species-manager-order button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary)}
.admin-species-manager-order button:disabled{opacity:.28;cursor:not-allowed}
.admin-species-manager-editor{display:grid;align-content:start;gap:20px;min-width:0}
.admin-species-manager-basic{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:16px;
  align-items:center;
}
.admin-species-manager-preview{width:112px;height:112px;border-radius:18px;font-size:48px}
.admin-species-manager-basic label{display:grid;gap:7px}
.admin-species-manager-basic label>span,
.admin-species-manager-icon-section>strong,
.admin-species-manager-image-section strong{font-weight:800;color:var(--ink)}
.admin-species-manager-basic input{min-height:44px}
.admin-species-manager-basic small,
.admin-species-manager-icon-section>span,
.admin-species-manager-image-section span{color:var(--muted);font-size:12px;line-height:1.45}
.admin-species-manager-icon-section,
.admin-species-manager-image-section{
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--editorial-line);
  border-radius:12px;
  background:color-mix(in srgb,var(--surface) 94%,var(--primary-soft));
}
.admin-species-icon-picker{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(108px,1fr));
  gap:8px;
}
.admin-species-icon-picker button{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-height:44px;
  padding:8px 10px;
  border:1px solid var(--editorial-line);
  border-radius:9px;
  background:var(--surface);
  color:var(--ink);
  text-align:left;
  cursor:pointer;
}
.admin-species-icon-picker button i{font-size:20px;color:var(--primary)}
.admin-species-icon-picker button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.admin-species-icon-picker button:hover,
.admin-species-icon-picker button.active{
  border-color:var(--primary);
  background:color-mix(in srgb,var(--primary-soft) 55%,var(--surface));
  box-shadow:2px 2px 0 color-mix(in srgb,var(--primary) 16%,transparent);
}
.admin-species-manager-image-section{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.admin-species-manager-image-section>div:first-child{display:grid;gap:4px}
.admin-species-manager-image-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-species-manager-image-actions input{display:none}
.admin-species-manager-image-actions .disabled{opacity:.55;pointer-events:none}
.admin-species-manager-actions{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}
.admin-species-manager-empty{
  display:grid;
  place-items:center;
  min-height:150px;
  padding:20px;
  border:1px dashed var(--editorial-line);
  border-radius:12px;
  color:var(--muted);
  text-align:center;
}
@media (max-width:1050px){
  .admin-species-manager-layout{grid-template-columns:1fr}
  .admin-species-manager-list{border-right:0;border-bottom:1px solid var(--editorial-line);padding:0 0 14px}
}
@media (max-width:700px){
  .admin-species-manager-header{flex-direction:column}
  .admin-species-manager-header-actions{justify-content:flex-start}
  .admin-species-manager-basic{grid-template-columns:1fr}
  .admin-species-manager-preview{width:92px;height:92px}
  .admin-species-manager-image-section{grid-template-columns:1fr}
  .admin-species-manager-image-actions{justify-content:flex-start}
  .admin-species-manager-launch{grid-template-columns:1fr}
}

/* ---------- Private editor: unified section system ---------- */
.admin-editor-section{
  margin-top:14px;
  overflow:hidden;
  border:1px solid #D7BC8A;
  border-radius:10px;
  background:rgba(255,253,248,.72);
  box-shadow:0 4px 14px rgba(75,51,23,.035);
}
.admin-editor-section:first-of-type{margin-top:0}
body.dark .admin-editor-section{
  border-color:#5B4930;
  background:rgba(11,36,49,.68);
}
.admin-editor-section-toggle{
  display:grid;
  width:100%;
  grid-template-columns:34px minmax(0,1fr) auto 18px;
  gap:12px;
  align-items:center;
  min-height:72px;
  padding:14px 16px;
  border:0;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:background .16s ease,color .16s ease;
}
.admin-editor-section-toggle:hover{background:rgba(210,164,81,.075)}
.admin-editor-section-toggle:focus-visible{
  outline:3px solid rgba(10,89,108,.18);
  outline-offset:-3px;
}
.admin-editor-section-toggle:disabled{cursor:default}
.admin-editor-section-toggle:disabled:hover{background:transparent}
.admin-editor-section-icon{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid rgba(200,166,106,.78);
  border-radius:8px;
  background:#FFF3DF;
  color:#0A596C;
  font-size:16px;
}
body.dark .admin-editor-section-icon{
  border-color:#796139;
  background:#153846;
  color:#D6A858;
}
.admin-editor-section-copy{
  display:grid;
  min-width:0;
  gap:4px;
}
.admin-editor-section-copy strong{
  color:var(--text);
  font-family:var(--display-font);
  font-size:13px;
  letter-spacing:.065em;
  text-transform:uppercase;
}
.admin-editor-section-copy small{
  overflow:hidden;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-editor-section-summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  max-width:240px;
  min-height:27px;
  padding:4px 9px;
  overflow:hidden;
  border:1px solid rgba(200,166,106,.65);
  border-radius:999px;
  background:rgba(255,243,223,.74);
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.035em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.dark .admin-editor-section-summary{
  border-color:#5B4930;
  background:rgba(21,56,70,.82);
  color:#D8C8A8;
}
.admin-editor-section-chevron{
  color:var(--muted);
  font-size:17px;
  transition:transform .18s ease;
}
.admin-editor-section.is-open .admin-editor-section-chevron{transform:rotate(180deg)}
.admin-editor-section-body{
  padding:17px;
  border-top:1px solid rgba(200,166,106,.58);
}
.admin-editor-section-body>.admin-form-grid:first-child,
.admin-editor-section-body>.admin-image-grid:first-child,
.admin-editor-section-body>.admin-page-builder:first-child,
.admin-editor-section-body>.admin-editor-label:first-child{margin-top:0}
.admin-editor-section .admin-gallery-field,
.admin-editor-section .admin-relations,
.admin-editor-section .admin-effect-panel{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.admin-effect-panel-embedded .admin-image-heading{margin-top:0}

/* The action row stays within reach on long character and page forms. */
.admin-form-panel>.admin-actions{
  position:sticky;
  z-index:12;
  bottom:10px;
  box-shadow:0 10px 28px rgba(75,51,23,.14);
  backdrop-filter:blur(12px);
}
body.dark .admin-form-panel>.admin-actions{box-shadow:0 12px 30px rgba(0,0,0,.28)}

/* Settings tabs use the same visual hierarchy as content editors. */
.admin-settings-intro,
.admin-music-intro{
  margin-bottom:16px;
  padding:16px 18px;
  border:1px solid #D7BC8A;
  border-radius:10px;
  background:rgba(255,253,248,.68);
}
body.dark :is(.admin-settings-intro,.admin-music-intro){
  border-color:#5B4930;
  background:rgba(11,36,49,.66);
}
.admin-settings-intro h3,
.admin-music-intro h3{
  margin:0 0 5px;
  color:var(--text);
  font-family:var(--display-font);
  font-size:18px;
  letter-spacing:.045em;
}
.admin-settings-intro p,
.admin-music-intro p{margin:0;color:var(--muted);line-height:1.55}

body.seasonal-halloween .admin-editor-section,
body.seasonal-halloween :is(.admin-settings-intro,.admin-music-intro){
  border-color:#A85B88;
  background:rgba(45,22,55,.88);
}
body.seasonal-halloween .admin-editor-section-toggle:hover{background:rgba(255,128,64,.08)}
body.seasonal-halloween .admin-editor-section-icon{
  border-color:#C7749F;
  background:#3B1F49;
  color:#FFB15A;
}
body.seasonal-halloween .admin-editor-section-summary{
  border-color:#A85B88;
  background:rgba(86,38,93,.82);
  color:#FFE9D5;
}
body.seasonal-halloween .admin-editor-section-copy strong{color:#FFF5E8}
body.seasonal-halloween .admin-editor-section-copy small,
body.seasonal-halloween .admin-editor-section-chevron{color:#E5C8DD}
body.seasonal-halloween .admin-editor-section-body{border-top-color:#A85B88}

@media (max-width:760px){
  .admin-editor-section-toggle{
    grid-template-columns:32px minmax(0,1fr) 16px;
    min-height:66px;
    padding:12px;
  }
  .admin-editor-section-summary{display:none}
  .admin-editor-section-copy small{white-space:normal}
  .admin-editor-section-body{padding:13px}
}

/* ---------- Private editor: embedded workbenches and settings polish ---------- */
.admin-image-heading.is-actions-only,
.admin-gallery-workbench-heading.is-actions-only{
  justify-content:flex-end;
  margin-bottom:10px;
}
.admin-image-heading.is-actions-only>button,
.admin-gallery-workbench-heading.is-actions-only .admin-gallery-heading-actions{margin-left:auto}
.admin-effect-panel-embedded>.admin-image-heading>div{display:none}
.admin-effect-panel-embedded>.admin-image-heading{justify-content:flex-end;margin-bottom:12px}

body.dark .directory-filter-btn.active,
body.dark .ch-filter-btn.active{
  background:linear-gradient(180deg,#FF8965,#FF7454) !important;
  border-color:#FF9A72 !important;
  color:#102F3A !important;
}
body.dark .directory-filter-btn.active :is(i,span,strong),
body.dark .ch-filter-btn.active :is(i,span,strong){color:#102F3A !important}
body.dark.seasonal-halloween .directory-filter-btn.active,
body.dark.seasonal-halloween .ch-filter-btn.active{
  background:linear-gradient(180deg,#FF9B3D,#FF8126) !important;
  border-color:#FFB760 !important;
  color:#35113F !important;
}
body.dark.seasonal-halloween .directory-filter-btn.active :is(i,span,strong),
body.dark.seasonal-halloween .ch-filter-btn.active :is(i,span,strong){color:#35113F !important}

.admin-artist-panel,
.admin-music-panel,
.admin-seasonal-panel,
.admin-directory-banners{
  padding:20px;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(75,51,23,.07);
}
.admin-artist-panel>.admin-actions,
.admin-music-panel>.admin-actions,
.admin-seasonal-panel>.admin-actions,
.admin-directory-banners>.admin-actions{
  position:sticky;
  z-index:12;
  bottom:10px;
  box-shadow:0 10px 28px rgba(75,51,23,.14);
  backdrop-filter:blur(12px);
}

.admin-seasonal-preview{
  margin:0 0 16px;
  padding:15px 17px;
  border-radius:10px;
  box-shadow:0 4px 14px rgba(75,51,23,.035);
}
.admin-seasonal-artwork{
  padding:18px;
  border-radius:10px;
  box-shadow:0 4px 14px rgba(75,51,23,.035);
}
.admin-seasonal-artwork-grid{gap:16px}
.admin-seasonal-artwork-card{
  display:grid;
  gap:14px;
  padding:15px;
  border-radius:10px;
}
.admin-seasonal-theme-heading{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(200,166,106,.52);
}
.admin-seasonal-theme-heading>span{
  display:grid;
  flex:0 0 auto;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:8px;
  background:#0A596C;
  color:#FFF2D7;
  font-family:var(--display-font);
  font-size:12px;
}
.admin-seasonal-artwork-card.theme-halloween .admin-seasonal-theme-heading>span{background:#FF7B55;color:#173642}
.admin-seasonal-artwork-card.theme-christmas .admin-seasonal-theme-heading>span{background:#238366;color:#FFF}
.admin-seasonal-artwork-card.theme-new-year .admin-seasonal-theme-heading>span{background:#D6A858;color:#173642}
.admin-seasonal-theme-heading h4{margin:1px 0 3px!important}
.admin-seasonal-theme-heading small{display:block;color:var(--muted);font-size:10px;line-height:1.4}
.admin-seasonal-theme-media{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:start;
}
.admin-seasonal-theme-media>.admin-image-field,
.admin-seasonal-artwork-card>.admin-image-field+.admin-image-field{margin-top:0}
.admin-seasonal-subheading{
  margin:20px 0 12px;
  padding:0 3px;
}
.admin-seasonal-subheading h3{
  margin:0 0 4px;
  color:var(--text);
  font-family:var(--display-font);
  font-size:16px;
  letter-spacing:.05em;
}
.admin-seasonal-subheading p{margin:0;color:var(--muted);font-size:11px}
.admin-seasonal-card{border-radius:10px;box-shadow:0 4px 14px rgba(75,51,23,.035)}

body.seasonal-halloween :is(.admin-artist-panel,.admin-music-panel,.admin-seasonal-panel,.admin-directory-banners){
  border-color:#A85B88;
  background:rgba(45,22,55,.90);
}
body.seasonal-halloween :is(.admin-seasonal-preview,.admin-seasonal-artwork,.admin-seasonal-card,.admin-seasonal-artwork-card){
  border-color:#A85B88;
  background:rgba(57,28,67,.88);
}

@media (max-width:980px){
  .admin-seasonal-theme-media{grid-template-columns:1fr}
}
@media (max-width:760px){
  .admin-artist-panel,
  .admin-music-panel,
  .admin-seasonal-panel,
  .admin-directory-banners{padding:13px}
}

/* =========================================================
   ADMIN APPLICATION — DESIGN OPTION A
   Separate editor shell; public site layout remains unchanged.
   ========================================================= */
body.admin-editor-page{overflow-x:hidden}
.admin-app-shell{--admin-sidebar-width:248px;min-height:100vh;display:grid;grid-template-columns:var(--admin-sidebar-width) minmax(0,1fr);background:color-mix(in srgb,var(--surface) 68%,var(--bg));color:var(--text);transition:grid-template-columns .2s ease}
.admin-app-shell.sidebar-collapsed{--admin-sidebar-width:74px}
.admin-app-sidebar{position:sticky;top:0;z-index:220;display:flex;flex-direction:column;height:100vh;border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:8px 0 24px rgba(9,37,48,.04);overflow:hidden}
.admin-app-brand{position:relative;display:flex;align-items:center;gap:11px;min-height:76px;padding:13px 17px;border-bottom:1px solid var(--border)}
.admin-app-brand-mark{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border:1px solid var(--border);border-radius:10px;background:var(--primary);color:var(--chip-text,#fff);box-shadow:3px 3px 0 color-mix(in srgb,var(--accent) 35%,transparent);font-size:17px}
.admin-app-brand-copy{display:flex;min-width:0;flex-direction:column;line-height:1.15}
.admin-app-brand-copy strong{overflow:hidden;color:var(--primary);font-family:var(--font-display);font-size:13px;letter-spacing:.16em;text-overflow:ellipsis;white-space:nowrap}
.admin-app-brand-copy span{margin-top:5px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.admin-app-collapse{position:absolute;right:8px;bottom:-14px;display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--primary);box-shadow:0 3px 10px rgba(8,31,42,.12);cursor:pointer}
.admin-app-nav{display:flex;flex:1;min-height:0;flex-direction:column;gap:20px;padding:27px 12px 16px;overflow:auto}
.admin-app-nav-group{display:grid;gap:5px}
.admin-app-nav-label{padding:0 9px 7px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.admin-app-nav-item{display:flex;align-items:center;gap:11px;width:100%;min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--primary);font:inherit;font-size:12px;font-weight:850;text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}
.admin-app-nav-item i{display:grid;place-items:center;flex:0 0 20px;font-size:17px}
.admin-app-nav-item:hover{border-color:color-mix(in srgb,var(--border) 70%,transparent);background:var(--surface-2);transform:translateX(2px)}
.admin-app-nav-item.active{border-color:color-mix(in srgb,var(--v5-coral) 75%,var(--border));background:color-mix(in srgb,var(--v5-coral) 15%,var(--surface));color:var(--primary);box-shadow:inset 3px 0 0 var(--v5-coral)}
.admin-app-sidebar-footer{display:grid;gap:10px;padding:13px;border-top:1px solid var(--border)}
.admin-app-view-site{display:flex;align-items:center;gap:9px;min-height:38px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--primary);font-size:11px;font-weight:850;text-decoration:none}
.admin-app-sidebar-footer small{display:flex;align-items:center;gap:7px;padding:0 8px;color:var(--muted);font-size:9px;font-weight:750}
.admin-online-dot{width:7px;height:7px;border-radius:50%;background:#39b986;box-shadow:0 0 0 3px color-mix(in srgb,#39b986 18%,transparent)}
.admin-app-shell.sidebar-collapsed .admin-app-brand{justify-content:center;padding-inline:10px}
.admin-app-shell.sidebar-collapsed .admin-app-brand-copy,.admin-app-shell.sidebar-collapsed .admin-app-nav-label,.admin-app-shell.sidebar-collapsed .admin-app-nav-item span,.admin-app-shell.sidebar-collapsed .admin-app-view-site span,.admin-app-shell.sidebar-collapsed .admin-app-sidebar-footer small span{display:none}
.admin-app-shell.sidebar-collapsed .admin-app-nav{padding-inline:10px}
.admin-app-shell.sidebar-collapsed .admin-app-nav-item,.admin-app-shell.sidebar-collapsed .admin-app-view-site{justify-content:center;padding-inline:0}
.admin-app-shell.sidebar-collapsed .admin-app-collapse{right:7px}
.admin-app-main{min-width:0}
.admin-app-topbar{position:sticky;top:0;z-index:210;display:flex;align-items:center;justify-content:space-between;min-height:62px;padding:10px clamp(18px,2.2vw,34px);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 91%,transparent);backdrop-filter:blur(14px)}
.admin-app-topbar-copy{display:flex;align-items:baseline;gap:10px;min-width:0}
.admin-app-topbar-copy span{color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.admin-app-topbar-copy strong{color:var(--primary);font-family:var(--font-display);font-size:16px;letter-spacing:.08em}
.admin-app-topbar-actions{display:flex;align-items:center;gap:8px}
.admin-compact-button,.admin-theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--primary);font:inherit;font-size:10px;font-weight:850;text-decoration:none;cursor:pointer}
.admin-theme-toggle{width:36px;padding:0;font-size:16px}
.admin-app-content{min-width:0;padding:clamp(18px,2.2vw,34px)}
.admin-app-content>.page{width:100%;max-width:none;margin:0}
.admin-app-content .admin-page{max-width:none}
.admin-app-content .page-head{margin-bottom:15px;padding-bottom:14px}
.admin-app-content .admin-tabs{display:none!important}
.admin-app-content .admin-layout{grid-template-columns:minmax(270px,320px) minmax(0,1fr);gap:20px}
.admin-app-content .admin-list-panel{top:80px;max-height:calc(100vh - 104px);display:flex;flex-direction:column;padding:15px;overflow:hidden}
.admin-app-content .admin-list-scroll{min-height:180px;overflow:auto;padding-right:3px}
.admin-app-content .admin-form-panel{position:relative;padding:18px;background:color-mix(in srgb,var(--surface) 98%,transparent)}
.admin-editor-context{position:relative;top:auto;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-18px -18px 16px;padding:12px 17px;border-bottom:1px solid var(--border);border-radius:10px 10px 0 0;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px)}
.admin-editor-context>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}
.admin-editor-context>div:first-child span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.admin-editor-context>div:first-child strong{overflow:hidden;color:var(--primary);font-family:var(--font-display);font-size:15px;letter-spacing:.06em;text-overflow:ellipsis;white-space:nowrap}
.admin-editor-context>div:first-child small{color:var(--muted);font-size:9px}
.admin-editor-context-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.admin-editor-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.admin-editor-status.published{border-color:color-mix(in srgb,#39b986 55%,var(--border));color:#25805e;background:color-mix(in srgb,#39b986 10%,var(--surface))}
.admin-app-content .admin-editor-section{box-shadow:0 5px 18px rgba(9,37,48,.035)}
.admin-app-content .admin-editor-section+.admin-editor-section{margin-top:12px}
.admin-app-content .admin-actions{position:sticky;bottom:12px;z-index:24;padding:11px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 10px 32px rgba(8,30,40,.13);backdrop-filter:blur(12px)}
.admin-app-content .admin-unsaved{top:69px}
body.dark .admin-app-shell{background:#071a24}
body.dark .admin-app-sidebar,body.dark .admin-app-topbar,body.dark .admin-editor-context,body.dark .admin-app-content .admin-actions{background:rgba(9,31,42,.94)}
body.dark .admin-app-nav-item.active{background:rgba(255,117,89,.14);color:#f8ecd4}
body.dark .admin-editor-status.published{color:#aee5dc}

/* Live overlay editor: the public page runs inside an isolated same-origin frame. */
body.admin-live-editor-page{overflow:hidden}
.admin-live-editor{position:fixed;inset:0;z-index:1000;background:var(--bg);color:var(--text)}
.admin-live-public-frame{position:fixed;inset:0;z-index:1001;width:100vw;height:100vh;border:0;background:var(--bg)}
.admin-live-toolbar{position:fixed;inset:0 0 auto 0;z-index:1700;display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:10px 16px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 4px 18px rgba(6,28,38,.12);backdrop-filter:blur(14px)}
.admin-live-toolbar>div:first-child,.admin-live-toolbar-controls{display:flex;align-items:center;gap:10px}.admin-live-toolbar>div:first-child>span{display:flex;flex-direction:column}.admin-live-toolbar small{color:var(--muted);font-size:9px}.admin-live-back,.admin-live-icon{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--primary);cursor:pointer}.admin-live-status{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.admin-live-status.ready{border-color:color-mix(in srgb,#39b986 55%,var(--border));background:color-mix(in srgb,#39b986 10%,var(--surface));color:#25805e}
.admin-live-inspector{position:fixed;top:82px;z-index:1800;width:min(370px,calc(100vw - 30px));max-height:calc(100vh - 100px);padding:14px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:0 18px 50px rgba(4,24,34,.24);overflow:auto;backdrop-filter:blur(18px)}
.admin-live-inspector.right{right:16px}.admin-live-inspector.left{left:16px}.admin-live-inspector>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.admin-live-inspector>header>div:first-child{display:flex;min-width:0;flex-direction:column}.admin-live-inspector>header small{color:var(--muted);font-size:9px}.admin-live-inspector>header button{width:30px;height:30px;padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--primary);cursor:pointer}.admin-live-inspector>label,.admin-live-inspector fieldset,.admin-live-inspector details{display:grid;gap:6px;margin-top:13px;color:var(--primary);font-size:10px;font-weight:850}.admin-live-inspector select,.admin-live-inspector input[type=number]{width:100%;padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}.admin-live-inspector input[type=range]{width:100%;accent-color:var(--v5-coral)}
.admin-live-mode-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.admin-live-mode-buttons button,.admin-live-position-grid button{min-height:36px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--primary);font:inherit;font-size:10px;font-weight:850;cursor:pointer}.admin-live-mode-buttons button.active,.admin-live-position-grid button.active{border-color:var(--v5-coral);background:color-mix(in srgb,var(--v5-coral) 16%,var(--surface));box-shadow:inset 0 -2px 0 var(--v5-coral)}
.admin-live-position-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.admin-live-position-grid button{font-size:18px}.admin-live-checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:13px}.admin-live-checks label{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--surface-2);font-size:10px;font-weight:750}.admin-live-advanced{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-live-help,.admin-live-message{margin:13px 0 0;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:10px;line-height:1.45}.admin-live-help.warning{border-color:color-mix(in srgb,var(--sun) 60%,var(--border));color:var(--text)}.admin-live-panel-tab{position:fixed;top:82px;z-index:1800;padding:10px 13px;border:1px solid var(--border);border-radius:8px;background:var(--primary);color:var(--chip-text,#fff);font:inherit;font-size:10px;font-weight:850;cursor:pointer;box-shadow:0 8px 24px rgba(5,25,35,.2)}.admin-live-panel-tab.right{right:14px}.admin-live-panel-tab.left{left:14px}.admin-live-loading{position:fixed;inset:0;z-index:1900;display:grid;place-items:center;background:var(--bg);color:var(--muted);font-weight:800}
body.dark .admin-live-toolbar,body.dark .admin-live-inspector{background:rgba(9,31,42,.96)}
@media(max-width:1100px){.admin-app-shell{--admin-sidebar-width:74px}.admin-app-brand-copy,.admin-app-nav-label,.admin-app-nav-item span,.admin-app-view-site span,.admin-app-sidebar-footer small span{display:none}.admin-app-brand{justify-content:center;padding-inline:10px}.admin-app-nav{padding-inline:10px}.admin-app-nav-item,.admin-app-view-site{justify-content:center;padding-inline:0}.admin-app-collapse{display:none}.admin-app-content .admin-layout{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width:850px){.admin-app-content{padding:14px}.admin-app-content .admin-layout{grid-template-columns:1fr}.admin-app-content .admin-list-panel{position:relative;top:auto;max-height:none}.admin-editor-context{top:auto}.admin-compact-button span{display:none}.admin-live-toolbar{align-items:flex-start;gap:8px}.admin-live-toolbar-controls label,.admin-live-toolbar-controls .btn-ghost{display:none}.admin-live-inspector{top:76px}}
@media(min-width:1101px){
  .admin-app-content .admin-preview{position:fixed;top:78px;right:18px;z-index:300;width:min(500px,calc(100vw - 110px));max-height:calc(100vh - 96px);margin:0;padding:44px 15px 15px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:0 20px 55px rgba(5,25,35,.24);overflow:auto;backdrop-filter:blur(16px)}
  .admin-app-content .admin-preview::before{content:'Preview';position:absolute;top:13px;left:16px;color:var(--primary);font-family:var(--font-display);font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
  .admin-app-content .admin-preview .admin-character-preview-grid{grid-template-columns:1fr}
  .admin-app-content .admin-preview .admin-static-card{max-width:280px}
  .admin-app-content .admin-preview .profile-hero{min-height:220px}
}

/* Shared rich-text improvements */
.admin-editor-toolbar mark,
.rich-text-content mark{
  padding:0 .12em;
  border-radius:3px;
  background:color-mix(in srgb,var(--sun) 55%,transparent);
  color:inherit;
}
.admin-image-text-node[data-text-align='left'] .admin-image-text-content,
.rich-image-text[data-text-align='left'] .rich-image-text-content{text-align:left}
.admin-image-text-node[data-text-align='center'] .admin-image-text-content,
.rich-image-text[data-text-align='center'] .rich-image-text-content{text-align:center}
.admin-image-text-node[data-text-align='right'] .admin-image-text-content,
.rich-image-text[data-text-align='right'] .rich-image-text-content{text-align:right}
.admin-image-text-node[data-vertical-align='top'] .admin-image-text-layout,
.rich-image-text[data-vertical-align='top']{align-items:start}
.admin-image-text-node[data-vertical-align='center'] .admin-image-text-layout,
.rich-image-text[data-vertical-align='center']{align-items:center}
.admin-image-text-node[data-vertical-align='bottom'] .admin-image-text-layout,
.rich-image-text[data-vertical-align='bottom']{align-items:end}

/* Keep the private editor readable while the public site is in a seasonal theme. */
body.admin-interface-active.seasonal-halloween .admin-app-shell,
body.admin-interface-active.seasonal-christmas .admin-app-shell,
body.admin-interface-active.seasonal-new-year .admin-app-shell{
  color:var(--text);
}
body.admin-interface-active[class*='seasonal-'] .admin-app-shell :is(
  .admin-editor-section,
  .admin-settings-intro,
  .admin-music-intro,
  .admin-form-panel,
  .admin-list-panel,
  .panel,
  input,
  select,
  textarea,
  button
){
  color:inherit;
}
body.admin-interface-active[class*='seasonal-'] .admin-editor-section-copy strong,
body.admin-interface-active[class*='seasonal-'] .admin-app-topbar-copy strong,
body.admin-interface-active[class*='seasonal-'] .admin-app-brand-copy strong{
  color:var(--primary);
}
body.admin-interface-active[class*='seasonal-'] :is(
  .admin-editor-section-copy small,
  .admin-editor-section-summary,
  .admin-editor-section-chevron,
  .admin-music-intro p,
  .admin-settings-intro p,
  .muted
){
  color:var(--muted);
}

/* =========================================================
   SHARED TIPTAP TOOLBAR — compact, predictable and global
   ========================================================= */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.admin-editor-toolbar-modern{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  padding:8px 10px;
}
.admin-editor-toolbar-modern .admin-toolbar-group{
  flex:0 0 auto;
}
.admin-editor-toolbar-modern .admin-toolbar-text-selects{
  display:flex;
  align-items:center;
  gap:5px;
}
.admin-toolbar-select{
  display:block;
  flex:0 0 auto;
}
.admin-toolbar-select select{
  min-height:34px;
  padding:5px 28px 5px 9px;
  border:1px solid #C8A66A;
  border-radius:7px;
  background:#FFFDF8;
  color:var(--text);
  font:inherit;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}
body.dark .admin-toolbar-select select{
  border-color:#6A5535;
  background:#0B2431;
  color:#F8ECD4;
}
.admin-toolbar-block-select select{width:116px}
.admin-toolbar-font-select select{width:142px}
.admin-toolbar-size-select select{width:82px}
.admin-editor-toolbar-modern button i{font-size:16px}
.admin-editor-toolbar-modern .admin-toolbar-alignment button{
  width:34px;
}
.admin-editor-toolbar-modern .admin-toolbar-dropdown{
  flex:0 0 auto;
}
.admin-color-button{
  position:relative;
  display:inline-grid;
  place-items:center;
  width:20px;
  height:22px;
  font-weight:900;
}
.admin-color-button::after{
  content:'';
  position:absolute;
  right:1px;
  bottom:0;
  left:1px;
  height:3px;
  border-radius:99px;
  background:var(--active-editor-color,var(--coral));
}
.admin-color-popover{
  width:236px;
  min-width:236px;
}
.admin-color-popover>strong{
  color:var(--primary);
  font-size:11px;
  letter-spacing:.04em;
}
.admin-color-presets{
  display:grid;
  grid-template-columns:repeat(6,30px);
  gap:7px;
}
.admin-color-presets button{
  display:grid;
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  place-items:center!important;
  padding:3px!important;
  border-radius:7px!important;
}
.admin-color-presets button span{
  display:block;
  width:18px;
  height:18px;
  border:1px solid rgba(12,42,52,.24);
  border-radius:50%;
  background:var(--editor-swatch,transparent);
}
.admin-color-presets button span.is-default{
  background:linear-gradient(135deg,transparent 43%,#d86451 44% 56%,transparent 57%);
}
.admin-custom-color-modern{
  display:grid!important;
  grid-template-columns:auto 42px 1fr;
  align-items:center;
  gap:8px!important;
  padding-top:8px;
  border-top:1px solid rgba(200,166,106,.5);
}
.admin-custom-color-modern input[type='color']{
  width:42px;
  height:32px;
  padding:2px;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:transparent;
}
.admin-custom-color-modern button{
  width:auto!important;
  min-width:0!important;
  height:32px!important;
  min-height:32px!important;
  padding:5px 10px!important;
}
.admin-insert-popover>button{
  display:flex!important;
  align-items:center;
  gap:8px;
}
.admin-editor-toolbar-message{
  padding:7px 11px;
  border-bottom:1px solid #D7BC8A;
  background:color-mix(in srgb,var(--primary-soft) 30%,var(--surface));
  color:var(--primary);
  font-size:10px;
  font-weight:750;
}
body.dark .admin-editor-toolbar-message{
  border-color:#5B4930;
}
.admin-media-segmented{
  min-width:126px;
  margin:0;
  padding:0;
  border:0;
}
.admin-media-segmented legend{
  margin-bottom:3px;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
}
.admin-media-segmented>div{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:3px;
}
.admin-media-segmented button{
  display:grid;
  min-width:34px;
  min-height:32px;
  place-items:center;
  padding:0;
  border:1px solid #C8A66A;
  border-radius:6px;
  background:#FFFDF8;
  color:var(--primary);
}
.admin-media-segmented button.active{
  border-color:var(--v5-coral);
  background:color-mix(in srgb,var(--v5-coral) 16%,var(--surface));
  box-shadow:inset 0 -2px 0 var(--v5-coral);
}
body.dark .admin-media-segmented button{
  border-color:#6A5535;
  background:#0B2431;
  color:#F8ECD4;
}
.admin-image-text-tools{
  grid-template-columns:auto minmax(110px,140px) minmax(110px,140px) minmax(126px,150px) minmax(126px,150px) minmax(150px,1fr) minmax(150px,1fr) auto auto;
}

@media(max-width:1180px){
  .admin-editor-toolbar-modern{
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .admin-editor-toolbar-modern>*{flex:0 0 auto}
  .admin-image-text-tools{
    grid-template-columns:auto repeat(2,minmax(120px,1fr));
  }
  .admin-image-text-tools .admin-media-wide{grid-column:span 2}
}
@media(max-width:720px){
  .admin-toolbar-block-select select{width:108px}
  .admin-toolbar-font-select select{width:124px}
  .admin-toolbar-size-select select{width:78px}
}

/* ---------- Final stability fixes: admin pages and seasonal effects ---------- */
.admin-app-shell,
.admin-app-main,
.admin-app-content,
.admin-app-content>.page,
.admin-app-content .admin-page,
.admin-app-content .admin-layout,
.admin-app-content .admin-form-panel,
.admin-app-content .admin-list-panel,
.admin-app-content .admin-editor-section,
.admin-app-content .admin-editor-section-body,
.admin-app-content .admin-page-builder{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.admin-app-content{
  width:100%;
  overflow-x:clip;
}
.admin-app-content .admin-layout>*{min-width:0}
.admin-app-content .admin-form-panel{overflow:visible}
.admin-app-content .admin-page-builder-intro,
.admin-app-content .admin-page-block-head{
  min-width:0;
  flex-wrap:wrap;
}
.admin-app-content .admin-page-add-buttons,
.admin-app-content .admin-page-block-actions{
  flex-wrap:wrap;
}

/* Louise sparkle compatibility: keeps the approved warm halo in every public theme. */
.character-sparkle,
.character-card-sparkle{
  visibility:visible!important;
}
body.seasonal-christmas .character-sparkle,
body.seasonal-christmas .character-card-sparkle,
body.seasonal-new-year .character-sparkle,
body.seasonal-new-year .character-card-sparkle{
  filter:
    drop-shadow(0 0 2px rgba(124,76,12,.84))
    drop-shadow(0 0 6px rgba(226,171,57,.78))
    drop-shadow(0 0 11px rgba(255,239,180,.68));
}


/* Keep every admin section inside the current viewport, including after section changes. */
html:has(body.admin-interface-active),
body.admin-interface-active{
  max-width:100%;
  overflow-x:hidden;
}
.admin-app-shell{
  width:100%;
  max-width:100vw;
}


/* Species selector: a real dropdown for registered species, with a separate new-name field. */
.admin-species-field{
  display:grid;
  align-content:start;
  gap:7px;
}
.admin-species-field>span{margin-bottom:0}
.admin-species-field select,
.admin-species-field input{width:100%}
.admin-species-field small{margin-top:0;line-height:1.45}

/* The private editor intentionally ignores public seasonal palettes. */
body.admin-interface-active .admin-app-shell{
  --bg:#FBF1DF;
  --bg-grad:#F0DFC2;
  --surface:#FFF9EE;
  --surface-2:#F8EBD4;
  --surface-3:#EEDABD;
  --primary:#0D5069;
  --primary-2:#2CB5B0;
  --primary-soft:#D1E8E3;
  --accent:#0D5069;
  --accent-soft:#D5B879;
  --coral:#FF7B55;
  --coral-hover:#F16643;
  --sun:#C99B4A;
  --deep:#0B3D56;
  --text:#173F4B;
  --muted:#806E56;
  --border:#D8BD8D;
  --chip-bg:#0B3D56;
  --chip-text:#FFF4DF;
  --on-accent:#FFF5E4;
  background:#FBF1DF;
  color:#173F4B;
}
body.dark.admin-interface-active .admin-app-shell{
  --bg:#071823;
  --bg-grad:#07131D;
  --surface:#102A38;
  --surface-2:#0B2230;
  --surface-3:#173746;
  --primary:#2FBAB3;
  --primary-2:#64D8CD;
  --primary-soft:#102F35;
  --accent:#D6A858;
  --accent-soft:#796139;
  --coral:#FF7B55;
  --coral-hover:#FF6942;
  --sun:#D6A858;
  --deep:#082F45;
  --text:#F6EBD5;
  --muted:#C6B799;
  --border:#5B4930;
  --chip-bg:#0A425D;
  --chip-text:#FFF2D8;
  --on-accent:#061923;
  background:#071823;
  color:#F6EBD5;
}

/* ---------- Shared public gallery + Swiper lightbox ---------- */
.shared-gallery{
  min-width:0;
  scroll-margin-top:24px;
}
.gallery-item{
  content-visibility:auto;
  contain-intrinsic-size:160px 160px;
}
.gallery-thumb{
  overflow:hidden;
}
.gallery-thumb-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
  -webkit-user-drag:none;
  user-select:none;
}
.gallery-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px dashed var(--border);
}
.gallery-pagination span{
  min-width:110px;
  color:var(--muted);
  font-family:var(--display-font);
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-align:center;
  text-transform:uppercase;
}
.gallery-pagination button{
  min-width:104px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface-2);
  color:var(--text);
  font:inherit;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease;
}
.gallery-pagination button:hover:not(:disabled){
  border-color:var(--coral);
  background:var(--coral);
  color:#fff;
}
.gallery-pagination button:disabled{
  cursor:not-allowed;
  opacity:.38;
}

.lightbox-stage{
  min-width:0;
}
.lightbox-main-swiper{
  width:100%;
  height:100%;
  min-width:0;
}
.lightbox-main-swiper .swiper-wrapper,
.lightbox-main-swiper .swiper-slide{
  width:100%;
  height:100%;
}
.lightbox-main-swiper .swiper-slide{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}
.lightbox-main-swiper .swiper-zoom-container{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  min-width:0;
}
.lightbox-main-swiper .lightbox-img{
  width:auto;
  height:auto;
}
.lightbox-nav,
.lightbox-counter{
  z-index:5;
}
.lightbox-strip{
  display:block;
  min-width:0;
  overflow:hidden;
}
.lightbox-strip-swiper{
  width:100%;
  overflow:hidden;
}
.lightbox-strip-swiper .swiper-slide{
  width:64px;
  height:64px;
}
.lightbox-strip-swiper .lightbox-thumb{
  width:64px;
  height:64px;
}
.lightbox-video-placeholder{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:min(88%,960px);
  max-width:calc(100% - 96px);
  aspect-ratio:16/9;
  max-height:min(64vh,540px);
  overflow:hidden;
  border-radius:10px;
  background:#000;
}
.lightbox-video-placeholder img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.72;
}
.lightbox-video-placeholder span{
  position:absolute;
  inset:50% auto auto 50%;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.82);
  border-radius:50%;
  background:rgba(7,56,75,.88);
  color:#fff;
  font-size:20px;
  padding-left:3px;
}

@media (max-width:720px){
  .gallery-pagination{
    gap:8px;
  }
  .gallery-pagination button{
    min-width:88px;
    padding-inline:9px;
  }
  .gallery-pagination span{
    min-width:82px;
    font-size:10px;
  }
  .lightbox-strip-swiper .swiper-slide,
  .lightbox-strip-swiper .lightbox-thumb{
    width:52px;
    height:52px;
  }
}

/* Keep the Swiper stage at the same visual scale as the previous lightbox. */
.lightbox-main-swiper{
  height:min(64vh,620px);
}
.character-gallery-lightbox .lightbox-main-swiper{
  height:min(64vh,calc(100dvh - 230px));
}
@media (max-width:720px){
  .lightbox-main-swiper{
    height:52vh;
  }
  .character-gallery-lightbox .lightbox-main-swiper{
    height:min(58vh,calc(100dvh - 260px));
  }
}

/* ---------- Optimized particle system (tsParticles) ---------- */
.character-particle-page-layer,
.seasonal-particle-layer{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.character-particle-page-layer{z-index:870}
.seasonal-particle-layer{z-index:760}
.polaris-particle-canvas,
.polaris-particle-canvas>div,
.polaris-particle-canvas canvas{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  pointer-events:none!important;
}
.character-particle-page-layer.particle-mist .polaris-particle-canvas canvas{
  filter:blur(5px);
  transform:scale(1.04);
}
.character-asset-image{contain:layout paint style}
.lightweight-particle{contain:layout paint style}
.seasonal-particles-halloween .polaris-particle-canvas canvas{
  filter:blur(2.8px) saturate(1.08);
}
body.admin-interface-active .seasonal-particle-layer{display:none!important}
@media(prefers-reduced-motion:reduce){
  .character-particle-page-layer,
  .seasonal-particle-layer,
  .character-asset-layer,
  .lightweight-particle-layer{display:none!important}
}

/* ---------- Particle preset manager ---------- */
.admin-particle-manager{display:grid;gap:16px}
.admin-particle-intro{margin-bottom:0}
.admin-particle-builtins{display:flex;flex-wrap:wrap;gap:8px 14px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.admin-particle-builtins span{color:var(--muted);font-size:11px}
.admin-particle-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;align-items:start}
.admin-particle-list,.admin-particle-editor,.admin-particle-empty{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.admin-particle-create{display:grid;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.admin-particle-list-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer}
.admin-particle-list-item>span{width:34px;height:34px;border-radius:8px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.admin-particle-list-item>div{display:grid;min-width:0}.admin-particle-list-item small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.admin-particle-list-item.active{border-color:var(--v5-coral);box-shadow:inset 0 0 0 1px var(--v5-coral)}
.admin-particle-preview{position:relative;min-height:220px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:radial-gradient(circle at 50% 40%,rgba(28,101,119,.62),rgba(5,39,53,.98));isolation:isolate}
.admin-particle-preview>span{position:absolute;right:12px;bottom:10px;z-index:2;color:#fff;font-size:10px;font-weight:850;text-shadow:0 2px 5px rgba(0,0,0,.45)}
.admin-particle-preview.preview-mist .polaris-particle-canvas canvas{filter:blur(4px)}
.admin-particle-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-particle-fields>label{display:grid;gap:5px;color:var(--primary);font-size:10px;font-weight:850}
.admin-particle-fields .span-two{grid-column:1/-1}
.admin-particle-fields input:not([type=checkbox]):not([type=range]),.admin-particle-fields select{width:100%;padding:9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}
.admin-particle-fields input[type=color]{min-height:40px;padding:3px}
.admin-particle-fields input[type=range]{width:100%;accent-color:var(--v5-coral)}
.admin-particle-checks{display:grid;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.admin-particle-checks label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:10px;font-weight:750}
.admin-particle-actions{justify-content:flex-start}
@media(max-width:900px){.admin-particle-layout{grid-template-columns:1fr}.admin-particle-fields{grid-template-columns:1fr}.admin-particle-fields .span-two,.admin-particle-checks{grid-column:auto}.admin-particle-checks{grid-template-columns:1fr}}

/* ---------- Particle editor expansion and scoped Character effects ---------- */
.page.active{position:relative;isolation:isolate}
.character-particle-page-layer,
.character-page-asset-layer{
  position:absolute!important;
  inset:0!important;
  z-index:8!important;
  overflow:hidden;
  pointer-events:none;
  contain:layout paint style;
}
.character-page-asset-layer.character-preset-effect-layer,
.character-page-asset-layer.character-sparkle-layer{position:absolute!important}
.seasonal-particle-layer{
  position:fixed;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.character-particle-page-layer{z-index:8}
.seasonal-particle-layer{z-index:760}
.character-particle-page-layer .polaris-particle-canvas,
.character-page-asset-layer{
  border-radius:inherit;
}
.admin-particle-list-item.disabled{opacity:.58}
.admin-particle-modebar,
.admin-particle-expert-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface-2);
}
.admin-particle-modebar>div,
.admin-particle-expert-heading>div:first-child{display:grid;gap:3px}
.admin-particle-modebar span,
.admin-particle-expert-heading span{color:var(--muted);font-size:10px;line-height:1.45}
.admin-particle-tabs{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:2px}
.admin-particle-tabs button{
  border:1px solid var(--border);
  border-radius:7px;
  background:var(--surface-2);
  color:var(--text);
  padding:7px 10px;
  font:inherit;
  font-size:10px;
  font-weight:850;
  cursor:pointer;
}
.admin-particle-tabs button.active{
  border-color:var(--v5-coral);
  background:color-mix(in srgb,var(--v5-coral) 18%,var(--surface));
  box-shadow:inset 0 0 0 1px var(--v5-coral);
}
.admin-particle-checks-wide{grid-template-columns:repeat(4,minmax(0,1fr))}
.admin-particle-note{
  margin:0;
  padding:9px 10px;
  border:1px dashed var(--border);
  border-radius:8px;
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.admin-particle-expert{display:grid;gap:10px}
.admin-particle-expert-heading>div:last-child{display:flex;flex-wrap:wrap;gap:7px}
.admin-particle-expert textarea{
  width:100%;
  min-height:420px;
  resize:vertical;
  box-sizing:border-box;
  border:1px solid var(--border);
  border-radius:10px;
  background:#071f2b;
  color:#e8f7ed;
  padding:14px;
  font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  tab-size:2;
}
.admin-particle-json-error{
  margin:0;
  padding:9px 10px;
  border:1px solid #b84f45;
  border-radius:8px;
  background:rgba(184,79,69,.1);
  color:#b84f45;
  font-size:10px;
  font-weight:800;
}
.admin-seasonal-preview{grid-template-columns:minmax(0,1fr) auto auto}
@media(max-width:1000px){
  .admin-particle-checks-wide{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-seasonal-preview{grid-template-columns:1fr}
}
@media(max-width:620px){
  .admin-particle-modebar,
  .admin-particle-expert-heading{align-items:stretch;flex-direction:column}
  .admin-particle-checks-wide{grid-template-columns:1fr}
}

/* ---------- Character effect layer controls ---------- */
.admin-effect-layer-summary{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}
.admin-effect-layer-summary strong{color:var(--primary);font-size:10px}
.admin-effect-layer-summary span{color:var(--muted);font-size:10px}
.admin-effect-layer-toggles{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:760px){.admin-effect-layer-toggles{grid-template-columns:1fr}}

/* Artist settings preview stays inside the editor flow instead of using the floating content preview. */
.admin-app-content .admin-artist-preview{
  position:relative;
  width:100%;
  min-width:0;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--border);
  overflow:hidden;
}
.admin-app-content .admin-artist-preview>h3{margin:0 0 12px}
.admin-app-content .admin-artist-preview>.home-artist-panel{
  width:100%;
  max-width:100%;
  margin:0;
}

/* Shared native-lazy card media */
.lazy-card-image{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  pointer-events:none;
}
.feat-art::after,.ch-card-art::after,.thumb::after{z-index:1}
.feat-art>span:not(.character-card-effect-layer):not(.character-card-sparkle-layer),
.ch-card-art>span:not(.character-card-effect-layer):not(.character-card-sparkle-layer),
.thumb>span{position:relative;z-index:2}
.block-image-media>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.admin-page-block-drag,.admin-decoration-drag{cursor:grab;touch-action:none}
.admin-page-block-drag:active,.admin-decoration-drag:active{cursor:grabbing}
.admin-page-block-card.is-dragging,.admin-decoration-list-item.is-dragging{opacity:.52}

/* ---------- Unified Site & Themes admin page ---------- */
.admin-site-themes{display:grid;gap:14px}
.admin-design-tabs{display:flex;align-items:stretch;gap:0;overflow-x:auto;border:1px solid var(--border);border-radius:12px 12px 0 0;background:var(--surface)}
.admin-design-tab{display:flex;flex:1 1 0;min-width:180px;align-items:center;justify-content:center;gap:9px;padding:14px 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-weight:850;cursor:pointer}
.admin-design-tab:hover{background:var(--surface-2);color:var(--primary)}
.admin-design-tab.active{border-bottom-color:var(--primary);color:var(--primary);background:linear-gradient(180deg,transparent,rgba(16,91,108,.05))}
.admin-design-tab i{font-size:17px}
.admin-design-tab-intro{display:flex;align-items:baseline;gap:10px;margin-top:-14px;padding:11px 16px;border:1px solid var(--border);border-top:0;border-radius:0 0 12px 12px;background:var(--surface-2)}
.admin-design-tab-intro strong{color:var(--primary)}
.admin-design-tab-intro span{color:var(--muted);font-size:11px}
.admin-site-themes>.panel{margin:0}
@media(max-width:720px){.admin-design-tab{min-width:150px;padding:12px}.admin-design-tab-intro{align-items:flex-start;flex-direction:column;gap:3px}}

/* ---------- Character effect visibility and dynamic sparkle emitters ---------- */
.character-particle-page-layer{z-index:28!important}
.character-card-effect-layer,
.character-card-sparkle-layer{z-index:6!important}
.character-sparkle,
.character-card-sparkle{will-change:transform,opacity}

/* Music controls remain visible without opening a secondary editor section. */
.admin-music-intro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.admin-music-intro>div{min-width:0}
.admin-music-pause-all{flex:0 0 auto;white-space:nowrap}
@media (max-width:760px){
  .admin-music-intro{align-items:stretch;flex-direction:column}
  .admin-music-pause-all{width:100%;justify-content:center}
}

/* Page Blocks can be folded without changing the public document. */
.admin-page-builder-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.admin-page-collapse-buttons{display:flex;gap:7px;flex-wrap:wrap}
.admin-page-collapse-buttons button{font-size:.72rem}
.admin-page-block-summary{
  color:var(--muted);
  display:inline-block;
  font-size:.72rem;
  font-weight:500;
  margin-left:8px;
  max-width:360px;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
  white-space:nowrap;
}
.admin-page-block-card:has(.admin-page-block-summary) .admin-page-block-head{border-bottom:0}
@media (max-width:760px){
  .admin-page-builder-controls{align-items:stretch;flex-direction:column}
  .admin-page-collapse-buttons,.admin-page-add-buttons{width:100%}
  .admin-page-block-summary{display:block;margin:3px 0 0 38px;max-width:70vw}
}

.admin-particle-scale-control>div{display:grid;grid-template-columns:minmax(180px,1fr) 110px;gap:10px;align-items:center}
.admin-particle-scale-control small{color:var(--muted);font-weight:500;line-height:1.45}
@media (max-width:620px){.admin-particle-scale-control>div{grid-template-columns:1fr}}
