.rpg-permission-table {
  min-width: calc(230px + var(--permission-count, 12) * 82px);
}

.rpg-permission-row {
  grid-template-columns: minmax(210px, 1.5fr) repeat(var(--permission-count, 12), minmax(72px, .65fr));
}

/* RPG control center: compact, readable and consistent with the game interface. */
.rpg-admin-panel {
  --rpg-admin-line: rgba(106, 165, 209, 0.2);
  --rpg-admin-blue: #55b9ef;
  --rpg-admin-violet: #8560df;
}

.rpg-admin-panel .admin-section-heading {
  position: relative;
  margin-top: 2rem;
  padding: 1.25rem 0 1.5rem;
  border-bottom: 1px solid var(--rpg-admin-line);
}

.rpg-admin-panel .admin-section-heading::after {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: min(12rem, 40%);
  height: 1px;
  background: linear-gradient(90deg, var(--rpg-admin-blue), var(--rpg-admin-violet), transparent);
  content: "";
}

.rpg-admin-access {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.25rem;
  margin: 1rem 0;
  padding: 0 0.8rem;
  border: 1px solid rgba(85, 185, 239, 0.24);
  border-radius: 999px;
  background: rgba(23, 94, 136, 0.08);
}

.rpg-admin-access::before {
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 50%;
  background: #59bdf1;
  box-shadow: 0 0 12px rgba(89, 189, 241, 0.65);
  content: "";
}

.rpg-permission-section {
  overflow: hidden;
  border-color: var(--rpg-admin-line);
  border-radius: 14px;
  background:
    radial-gradient(circle at 100% 0, rgba(121, 77, 198, 0.1), transparent 35%),
    rgba(5, 10, 17, 0.76);
}

.rpg-permission-section > header {
  padding-bottom: 1.2rem;
  border-bottom: 1px solid rgba(106, 165, 209, 0.12);
}

.rpg-permission-grid {
  padding-bottom: 0.35rem;
  scrollbar-color: rgba(86, 164, 216, 0.52) rgba(4, 9, 15, 0.5);
}

.rpg-permission-row {
  padding-inline: 0.65rem;
  transition: background 140ms ease;
}

.rpg-permission-row:not(.rpg-permission-head):hover {
  background: linear-gradient(90deg, rgba(43, 142, 202, 0.07), rgba(116, 72, 194, 0.055));
}

.rpg-editor-tabs {
  position: sticky;
  top: 0;
  z-index: 4;
  padding: 0.4rem;
  border: 1px solid var(--rpg-admin-line);
  border-radius: 11px;
  background: rgba(4, 9, 15, 0.94);
  backdrop-filter: blur(10px);
}

.rpg-editor-tabs button {
  min-height: 2.55rem;
  border-color: transparent;
  border-radius: 7px;
  transition: border-color 140ms ease, background 140ms ease, color 140ms ease;
}

.rpg-editor-tabs button:hover {
  background: rgba(42, 135, 193, 0.09);
  color: #dbeaf5;
}

.rpg-editor-tabs button.is-active {
  border-color: rgba(85, 185, 239, 0.38);
  background: linear-gradient(110deg, rgba(42, 139, 199, 0.16), rgba(116, 72, 197, 0.17));
  box-shadow: none;
}

.rpg-editor-toolbar {
  padding: 0.85rem;
  border: 1px solid var(--rpg-admin-line);
  border-radius: 10px;
  background: rgba(5, 10, 17, 0.6);
}

.rpg-editor-layout {
  min-height: 34rem;
  overflow: hidden;
  border-color: var(--rpg-admin-line);
  border-radius: 13px;
  background:
    linear-gradient(135deg, rgba(5, 11, 18, 0.9), rgba(10, 8, 17, 0.85));
}

.rpg-entry-list {
  background: rgba(2, 7, 12, 0.45);
  scrollbar-color: rgba(86, 164, 216, 0.5) rgba(4, 9, 15, 0.5);
}

.rpg-entry-list button {
  position: relative;
  min-height: 3.8rem;
  transition: background 140ms ease, color 140ms ease;
}

.rpg-entry-list button:hover {
  background: rgba(42, 139, 199, 0.07);
}

.rpg-entry-list button.is-active {
  background: linear-gradient(90deg, rgba(46, 161, 242, 0.14), rgba(116, 72, 210, 0.06));
}

.rpg-entry-editor {
  min-width: 0;
}

.rpg-entry-editor > header {
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(106, 165, 209, 0.12);
}

.rpg-field-grid {
  margin-top: 1.1rem;
}

.rpg-editor-toolbar input,
.rpg-field-grid input,
.rpg-field-grid select,
.rpg-field-grid textarea {
  border-radius: 7px;
  outline: none;
  transition: border-color 140ms ease, box-shadow 140ms ease;
}

.rpg-editor-toolbar input:focus,
.rpg-field-grid input:focus,
.rpg-field-grid select:focus,
.rpg-field-grid textarea:focus {
  border-color: var(--rpg-admin-blue);
  box-shadow: 0 0 0 3px rgba(85, 185, 239, 0.09);
}

.rpg-image-upload {
  min-height: 4rem;
  border-style: dashed;
  border-radius: 9px;
  background: rgba(4, 9, 15, 0.5);
}

.rpg-field-hint {
  display: block;
  margin-top: 0.15rem;
  color: #73bce8;
  font-size: 0.68rem;
  line-height: 1.45;
}

.rpg-save-state {
  align-self: center;
  min-height: 1.2rem;
  margin-left: auto;
  color: #8193a4;
  font-size: .72rem;
}

.rpg-save-state[data-state="success"] { color: #72d7a2; }
.rpg-save-state[data-state="error"] { color: #ff7185; }
.rpg-save-state[data-state="pending"] { color: #73bce8; }

.rpg-decoration-preview {
  --dec-primary: #55b9ef;
  --dec-secondary: #8d63e8;
  --dec-glow: #6cc8ff;
  --dec-glow-strength: .55;
  overflow: hidden;
  padding: 1.2rem;
  border: 1px solid color-mix(in srgb, var(--dec-primary) 58%, transparent);
  border-radius: 14px;
  background:
    radial-gradient(circle at 15% 50%, color-mix(in srgb, var(--dec-glow) 18%, transparent), transparent 36%),
    linear-gradient(115deg, rgba(3, 10, 17, .96), color-mix(in srgb, var(--dec-secondary) 10%, #070912));
}

.decoration-preview-stage {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 6rem;
}

.decoration-preview-emblem {
  --dec-clip: inset(0 round 10px);
  display: grid;
  width: 4.3rem;
  height: 4.3rem;
  flex: 0 0 auto;
  place-items: center;
  border: 3px solid transparent;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--dec-primary) 20%, #06101a), color-mix(in srgb, var(--dec-secondary) 22%, #080711)) padding-box,
    linear-gradient(135deg, var(--dec-primary), #f4f8ff 48%, var(--dec-secondary)) border-box;
  clip-path: var(--dec-clip);
  box-shadow: 0 0 calc(30px * var(--dec-glow-strength)) color-mix(in srgb, var(--dec-glow) 70%, transparent);
  color: #f4f8ff;
  font-size: 1.65rem;
}

[data-shape="circle"] .decoration-preview-emblem { --dec-clip: circle(50%); }
[data-shape="diamond"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,100% 50%,50% 100%,0 50%); }
[data-shape="hexagon"] .decoration-preview-emblem { --dec-clip: polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%); }
[data-shape="shield"] .decoration-preview-emblem { --dec-clip: polygon(8% 5%,92% 5%,88% 68%,50% 100%,12% 68%); }
[data-shape="crest"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,92% 18%,84% 76%,50% 100%,16% 76%,8% 18%); }
[data-shape="star"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,61% 34%,98% 35%,68% 56%,79% 94%,50% 72%,21% 94%,32% 56%,2% 35%,39% 34%); }
[data-shape="crystal"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,88% 24%,72% 82%,50% 100%,28% 82%,12% 24%); }
[data-shape="rune"] .decoration-preview-emblem { --dec-clip: polygon(24% 0,76% 0,100% 26%,82% 50%,100% 74%,76% 100%,24% 100%,0 74%,18% 50%,0 26%); }
[data-shape="wings"] .decoration-preview-emblem { --dec-clip: polygon(50% 18%,70% 4%,100% 0,88% 34%,100% 58%,70% 52%,50% 100%,30% 52%,0 58%,12% 34%,0 0,30% 4%); }
[data-shape="flame"] .decoration-preview-emblem { --dec-clip: polygon(52% 0,72% 28%,88% 18%,94% 62%,74% 92%,50% 100%,24% 91%,8% 62%,18% 30%,34% 47%); }
[data-shape="moon"] .decoration-preview-emblem { --dec-clip: polygon(12% 4%,70% 0,48% 20%,42% 48%,53% 76%,78% 94%,20% 100%,0 72%,0 28%); }
[data-shape="sun"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,59% 20%,78% 8%,77% 31%,100% 28%,82% 50%,100% 72%,77% 69%,78% 92%,59% 80%,50% 100%,41% 80%,22% 92%,23% 69%,0 72%,18% 50%,0 28%,23% 31%,22% 8%,41% 20%); }
[data-shape="octagon"] .decoration-preview-emblem { --dec-clip: polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%); }
[data-shape="double_diamond"] .decoration-preview-emblem { --dec-clip: polygon(50% 0,72% 26%,100% 50%,72% 74%,50% 100%,28% 74%,0 50%,28% 26%); }
[data-shape="portal"] .decoration-preview-emblem { --dec-clip: circle(50%); border-radius: 50%; outline: 3px double var(--dec-secondary); outline-offset: 3px; }
[data-shape="broken_circle"] .decoration-preview-emblem { --dec-clip: polygon(48% 0,100% 0,100% 42%,82% 35%,70% 22%,48% 16%,27% 23%,15% 42%,15% 62%,27% 79%,48% 86%,68% 79%,83% 63%,100% 58%,100% 100%,48% 100%,18% 89%,0 62%,0 38%,18% 11%); }
[data-shape="crown"] .decoration-preview-emblem { --dec-clip: polygon(4% 18%,26% 42%,39% 6%,52% 42%,75% 4%,72% 43%,98% 18%,86% 92%,14% 92%); }
[data-border="royal"] .decoration-preview-emblem { border-width: 3px; outline: 1px solid var(--dec-secondary); outline-offset: 4px; }
[data-border="arcane"] .decoration-preview-emblem { border-style: double; border-width: 4px; }
[data-border="shadow"] .decoration-preview-emblem { border-color: var(--dec-secondary); box-shadow: 0 0 24px rgba(0,0,0,.9), 0 0 calc(34px * var(--dec-glow-strength)) var(--dec-glow); }
[data-border="minimal"] .decoration-preview-emblem { border-radius: 7px; box-shadow: none; }
[data-border="engraved"] .decoration-preview-emblem { filter: drop-shadow(0 1px 0 #fff) drop-shadow(0 -2px 0 #182330); }
[data-border="celestial"] .decoration-preview-emblem { background: linear-gradient(145deg,#071525,#16102b) padding-box, conic-gradient(from 20deg,var(--dec-primary),#fff,var(--dec-secondary),#fff,var(--dec-primary)) border-box; }
[data-border="infernal"] .decoration-preview-emblem { background: linear-gradient(145deg,#190807,#090306) padding-box, linear-gradient(135deg,#ffcb65,#ff3d21,#711337) border-box; }
[data-border="frost"] .decoration-preview-emblem { background: linear-gradient(145deg,#061622,#0a1020) padding-box, linear-gradient(135deg,#fff,#77d9ff,#827cff) border-box; }
[data-border="neon"] .decoration-preview-emblem { box-shadow: 0 0 8px var(--dec-primary),0 0 calc(38px * var(--dec-glow-strength)) var(--dec-glow); }

.decoration-preview-stage small {
  color: var(--dec-primary);
  letter-spacing: .18em;
}

.decoration-preview-stage strong {
  display: block;
  margin-top: .25rem;
  color: #edf5ff;
  font-family: Georgia, serif;
  font-size: clamp(1.6rem, 4vw, 2.8rem);
}

[data-name-effect="gradient"] .decoration-preview-stage strong {
  background: linear-gradient(90deg, #fff, var(--dec-primary), var(--dec-secondary));
  background-clip: text;
  color: transparent;
}

[data-name-effect="glow"] .decoration-preview-stage strong {
  text-shadow: 0 0 calc(22px * var(--dec-glow-strength)) var(--dec-glow);
}
[data-name-effect="metallic"] .decoration-preview-stage strong { background: linear-gradient(#fff 10%,#78889b 45%,#fff 55%,#354152 90%); background-clip:text; color:transparent; }
[data-name-effect="fire"] .decoration-preview-stage strong { background: linear-gradient(#fff4a3,#ff8b27 45%,#e3193f); background-clip:text; color:transparent; text-shadow:0 0 18px #ff572288; }
[data-name-effect="frost"] .decoration-preview-stage strong { background: linear-gradient(#fff,#8ce5ff 55%,#7d84ff); background-clip:text; color:transparent; text-shadow:0 0 16px #69d8ff77; }
[data-name-effect="rainbow"] .decoration-preview-stage strong { background: linear-gradient(90deg,#67d9ff,#9874ff,#ff6ec7,#ffd166,#67d9ff); background-size:200% 100%; background-clip:text; color:transparent; animation:decoration-rainbow 4s linear infinite; }
[data-name-effect="void"] .decoration-preview-stage strong { color:#e9ddff; text-shadow:0 0 4px #fff,0 0 15px #8a45ff,0 0 32px #230052; }

.decoration-preview-stage p { margin: .15rem 0 0; color: #91a2b3; }
.rpg-decoration-preview > p { margin: .85rem 0 0; color: #718495; font-size: .72rem; }
[data-animation="pulse"] .decoration-preview-emblem { animation: decoration-pulse 2.2s ease-in-out infinite; }
[data-animation="shimmer"] .decoration-preview-stage::after {
  position: absolute; inset: -100% auto -100% -30%; width: 22%; transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
  animation: decoration-shimmer 3s ease-in-out infinite; content: "";
}
[data-animation="orbit"] .decoration-preview-stage i {
  position: absolute; left: 2.02rem; top: .65rem; width: .35rem; height: .35rem;
  border-radius: 50%; background: var(--dec-glow); box-shadow: 0 0 10px var(--dec-glow);
  transform-origin: .1rem 2.35rem; animation: decoration-orbit 3s linear infinite;
}
[data-animation="float"] .decoration-preview-emblem { animation:decoration-float 2.8s ease-in-out infinite; }
[data-animation="breathe"] .decoration-preview-stage { animation:decoration-breathe 3.4s ease-in-out infinite; }
[data-animation="flicker"] .decoration-preview-emblem { animation:decoration-flicker 1.8s steps(1) infinite; }
[data-animation="lightning"] .decoration-preview-emblem { animation:decoration-lightning 3.5s ease-out infinite; }
[data-animation="chromatic"] .decoration-preview-emblem { animation:decoration-chromatic 4s linear infinite; }
[data-animation="rotate"] .decoration-preview-emblem { animation:decoration-rotate 9s linear infinite; }

@keyframes decoration-pulse { 50% { filter: brightness(1.35); transform: scale(1.06); } }
@keyframes decoration-shimmer { 0%,20% { left:-30%; } 70%,100% { left:120%; } }
@keyframes decoration-orbit { to { transform: rotate(360deg); } }
@keyframes decoration-float { 50% { transform:translateY(-8px); } }
@keyframes decoration-breathe { 50% { filter:brightness(1.18) saturate(1.25); } }
@keyframes decoration-flicker { 0%,18%,22%,63%,67%,100%{opacity:1} 20%,65%{opacity:.55} }
@keyframes decoration-lightning { 0%,78%,100%{filter:none} 80%{filter:brightness(2.3) drop-shadow(0 0 10px #fff)} 83%{filter:none} 86%{filter:brightness(1.8)} }
@keyframes decoration-chromatic { to { filter:hue-rotate(360deg); } }
@keyframes decoration-rotate { to { transform:rotate(360deg); } }
@keyframes decoration-rainbow { to { background-position:200% 0; } }

.rpg-shop-note {
  border-left: 2px solid var(--rpg-admin-blue);
  background:
    linear-gradient(100deg, rgba(39, 137, 196, 0.1), rgba(111, 67, 183, 0.05));
}

.rpg-empty {
  display: grid;
  min-height: 12rem;
  place-items: center;
  padding: 2rem;
  border: 1px dashed rgba(106, 165, 209, 0.22);
  border-radius: 10px;
  background:
    radial-gradient(circle at 50% 0, rgba(58, 154, 214, 0.08), transparent 55%),
    rgba(3, 8, 14, 0.48);
  text-align: center;
}

.rpg-admin-panel :where(button, input, select, textarea):focus-visible {
  outline: 2px solid rgba(85, 185, 239, 0.82);
  outline-offset: 2px;
}

.rpg-admin-panel button:disabled {
  cursor: wait;
  filter: saturate(0.4);
  opacity: 0.48;
}

/* Compact control-center navigation */
.rpg-admin-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
}

.rpg-admin-heading .rpg-admin-access {
  flex: 0 0 auto;
  margin-bottom: .3rem;
}

.rpg-permission-section {
  margin: 1.2rem 0 1.6rem;
  padding: 0;
}

.rpg-permission-section > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .9rem;
  min-height: 4.5rem;
  padding: .75rem 1rem;
  cursor: pointer;
  list-style: none;
}

.rpg-permission-section > summary::-webkit-details-marker { display: none; }
.rpg-permission-section > summary::after {
  width: .5rem;
  height: .5rem;
  margin: 0 .3rem;
  border-right: 1px solid #78c8ff;
  border-bottom: 1px solid #78c8ff;
  transform: rotate(45deg);
  transition: transform 160ms ease;
  content: "";
}
.rpg-permission-section[open] > summary::after { transform: rotate(225deg); }

.rpg-permission-summary-icon {
  display: grid;
  width: 2.45rem;
  height: 2.45rem;
  place-items: center;
  border: 1px solid rgba(85,185,239,.28);
  border-radius: 9px;
  background: linear-gradient(135deg,rgba(52,156,220,.12),rgba(125,82,213,.12));
  color: #8dd5fa;
}

.rpg-permission-section summary > span:nth-child(2) {
  display: grid;
  gap: .18rem;
}
.rpg-permission-section summary small {
  color: #71859a;
  font-size: .58rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.rpg-permission-section summary strong { color: #dce8f3; font-size: .86rem; }
.rpg-permission-summary-copy { color: #718095; font-size: .68rem; }
.rpg-permission-content {
  padding: 0 1rem 1rem;
  border-top: 1px solid rgba(106,165,209,.12);
}
.rpg-permission-content > header p {
  margin: 1rem 0;
  color: #7f91a4;
  font-size: .74rem;
}

.rpg-control-center {
  padding: 1rem;
  border: 1px solid var(--rpg-admin-line);
  border-radius: 15px;
  background:
    radial-gradient(circle at 100% 0,rgba(122,76,205,.08),transparent 32%),
    rgba(3,8,14,.64);
}

.rpg-area-nav {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: .55rem;
}
.rpg-area-nav button {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: .65rem;
  min-height: 4.5rem;
  padding: .75rem;
  overflow: hidden;
  border: 1px solid rgba(106,165,209,.16);
  border-radius: 10px;
  background: rgba(5,10,17,.72);
  color: #9babbc;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease,background 150ms ease,transform 150ms ease;
}
.rpg-area-nav button:hover {
  border-color: rgba(85,185,239,.38);
  background: rgba(17,33,47,.72);
  transform: translateY(-1px);
}
.rpg-area-nav button.is-active {
  border-color: rgba(85,185,239,.48);
  background: linear-gradient(120deg,rgba(40,139,201,.15),rgba(116,72,197,.15)),rgba(5,10,17,.88);
  color: #edf6fc;
  box-shadow: inset 0 -2px rgba(124,86,220,.7);
}
.rpg-area-nav button i {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid rgba(85,185,239,.24);
  border-radius: 50%;
  color: #72c7f4;
  font-style: normal;
}
.rpg-area-nav button span { display: grid; min-width: 0; gap: .18rem; }
.rpg-area-nav button strong {
  overflow: hidden;
  font-size: .73rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rpg-area-nav button small {
  color: #6f8194;
  font-size: .53rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.rpg-area-nav button b {
  position: absolute;
  top: .42rem;
  right: .48rem;
  color: #64798d;
  font-size: .55rem;
}

.rpg-workspace-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 2rem;
  margin: 1.25rem 0 0;
  padding: .8rem 0 1rem;
  border-bottom: 1px solid rgba(106,165,209,.12);
}
.rpg-workspace-heading h3 {
  margin: .15rem 0 0;
  color: #edf4fb;
  font-size: clamp(1.45rem,3vw,2.1rem);
}
.rpg-workspace-heading > p {
  max-width: 27rem;
  margin: 0;
  color: #7f91a4;
  font-size: .76rem;
  line-height: 1.5;
  text-align: right;
}

.rpg-control-center .rpg-editor-tabs {
  position: static;
  margin: .8rem 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
}
.rpg-control-center .rpg-editor-tabs button {
  min-height: 2.35rem;
  padding: 0 .8rem;
  border-color: rgba(106,165,209,.16);
  border-radius: 999px;
  background: rgba(5,10,17,.72);
  font-size: .72rem;
}

.rpg-inline-check {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-height: 2.5rem;
  padding: 0 .7rem;
  border: 1px solid rgba(122,183,230,.18);
  color: #c9d6e3;
  font-size: .72rem;
}

.rpg-inline-check input[type="checkbox"] {
  width: 1rem;
  min-height: 1rem;
  padding: 0;
  accent-color: #7359dc;
}

@media (max-width: 1080px) {
  .rpg-area-nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .rpg-admin-heading,
  .rpg-workspace-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: .8rem;
  }

  .rpg-workspace-heading > p { text-align: left; }

  .rpg-permission-section {
    padding: 1rem;
  }

  .rpg-permission-section > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .rpg-editor-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .rpg-editor-tabs button {
    flex: 0 0 auto;
  }
}

@media (max-width: 620px) {
  .rpg-control-center { padding: .65rem; }
  .rpg-area-nav { grid-template-columns: 1fr; }
  .rpg-area-nav button { min-height: 3.8rem; }
  .rpg-permission-summary-copy { display: none; }
  .rpg-permission-section > summary {
    grid-template-columns: auto minmax(0,1fr) auto;
    padding-inline: .75rem;
  }

  .rpg-admin-panel .admin-section-heading h2 {
    font-size: clamp(2.4rem, 13vw, 4rem);
    overflow-wrap: anywhere;
  }

  .rpg-editor-toolbar {
    align-items: stretch;
  }

  .rpg-editor-toolbar label,
  .rpg-editor-toolbar button {
    width: 100%;
  }

  .rpg-entry-editor {
    padding: 1rem;
  }

  .rpg-field-grid {
    gap: 0.9rem;
  }

  .rpg-entry-editor form > footer {
    align-items: stretch;
    flex-direction: column;
  }

  .rpg-entry-editor form > footer button {
    width: 100%;
  }
}

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

.rpg-decoration-profile-sample {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.55rem;
  margin-top:.75rem;
}

.rpg-decoration-profile-sample > span {
  min-width:0;
  padding:.8rem .9rem;
  border:1px solid #263748;
  border-radius:8px;
  color:#aab9c9;
  font-size:.68rem;
}

@media(max-width:680px) {
  .rpg-decoration-profile-sample { grid-template-columns:1fr; }
}

.rpg-location-overview {
  grid-column:1/-1;
  padding:1.15rem;
  border:1px solid rgba(78,165,224,.28);
  border-radius:12px;
  background:
    radial-gradient(circle at 100% 0,rgba(116,73,188,.1),transparent 38%),
    linear-gradient(135deg,rgba(6,15,24,.92),rgba(9,8,16,.88));
}

.rpg-location-overview > header small {
  color:#76c9f5;
  font-size:.55rem;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.rpg-location-overview > header h4 {
  margin:.35rem 0 .25rem;
  color:#eef5fb;
  font-size:1.2rem;
}

.rpg-location-overview > header p {
  margin:0;
  color:#8292a6;
  font-size:.7rem;
  line-height:1.55;
}

.rpg-location-overview-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin-top:1rem;
}

.rpg-location-overview-grid > article {
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(105,151,190,.18);
  border-radius:9px;
  background:rgba(3,8,14,.58);
}

.rpg-location-overview-grid > article > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.7rem .8rem;
  border-bottom:1px solid rgba(105,151,190,.14);
  background:linear-gradient(90deg,rgba(39,132,190,.08),rgba(108,61,172,.07));
}

.rpg-location-overview-grid h5 {
  margin:0;
  color:#becbd8;
  font-size:.64rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.rpg-location-overview-grid header b {
  display:grid;
  min-width:1.55rem;
  height:1.55rem;
  padding:0 .3rem;
  place-items:center;
  border:1px solid rgba(91,177,234,.28);
  border-radius:999px;
  color:#7cccf5;
  font-size:.58rem;
}

.rpg-location-overview-grid article > div > div {
  display:grid;
  gap:.15rem;
  padding:.65rem .8rem;
  border-bottom:1px solid rgba(105,151,190,.09);
}

.rpg-location-overview-grid article > div > div:last-child {
  border-bottom:0;
}

.rpg-location-overview-grid strong {
  overflow:hidden;
  color:#dbe5ef;
  font-size:.7rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.rpg-location-overview-grid small,
.rpg-location-overview-empty {
  margin:0;
  color:#718398;
  font-size:.58rem;
}

.rpg-location-overview-empty {
  padding:.9rem .8rem;
}

@media(max-width:760px) {
  .rpg-location-overview-grid { grid-template-columns:1fr; }
}

.rpg-player-danger {
  grid-column:1 / -1;
  display:grid;
  gap:.9rem;
  margin-top:.65rem;
  padding:1rem;
  border:1px solid rgba(229,72,93,.38);
  border-radius:10px;
  background:
    linear-gradient(120deg,rgba(126,19,39,.12),rgba(20,8,18,.58) 55%),
    rgba(4,8,14,.72);
  box-shadow:inset 3px 0 rgba(229,72,93,.55);
}

.rpg-player-danger header span {
  color:#ff7588;
  font-size:.62rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.rpg-player-danger h4 {
  margin:.25rem 0 .35rem;
  color:#f1e8eb;
  font-size:1rem;
}

.rpg-player-danger header p,
.rpg-player-danger-state {
  margin:0;
  color:#9b8991;
  font-size:.7rem;
  line-height:1.6;
}

.rpg-player-danger label {
  display:grid;
  gap:.4rem;
  max-width:34rem;
  color:#c3aeb5;
  font-size:.66rem;
}

.rpg-player-danger input {
  width:100%;
  min-height:2.65rem;
  padding:.65rem .75rem;
  border:1px solid rgba(229,72,93,.3);
  border-radius:6px;
  outline:0;
  color:#f3e9ec;
  background:rgba(3,7,12,.82);
}

.rpg-player-danger input:focus {
  border-color:#ef667b;
  box-shadow:0 0 0 3px rgba(229,72,93,.1);
}

.rpg-player-danger-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

.rpg-player-danger-actions button {
  min-height:2.55rem;
  padding:.65rem .9rem;
  border:1px solid;
  border-radius:6px;
  color:#f3f6fa;
  font:inherit;
  font-size:.7rem;
  font-weight:700;
  cursor:pointer;
}

.rpg-player-danger-actions button:disabled {
  cursor:wait;
  opacity:.55;
}

.rpg-danger-reset {
  border-color:rgba(118,101,224,.55) !important;
  background:linear-gradient(120deg,rgba(35,105,156,.34),rgba(88,45,142,.42));
}

.rpg-danger-delete {
  border-color:rgba(229,72,93,.6) !important;
  background:linear-gradient(120deg,rgba(132,23,43,.62),rgba(77,12,30,.72));
}

.rpg-player-danger-state[data-state="success"] { color:#72d6ab; }
.rpg-player-danger-state[data-state="error"] { color:#ff7588; }
.rpg-player-danger-state[data-state="pending"] { color:#8bcdf1; }

.rpg-standalone-overview,
.rpg-quest-graph {
  grid-column:1 / -1;
  display:grid;
  gap:1rem;
  padding:1.1rem;
  border:1px solid rgba(74,168,225,.28);
  border-radius:12px;
  background:
    radial-gradient(circle at 0 0,rgba(42,146,211,.11),transparent 35%),
    radial-gradient(circle at 100% 0,rgba(128,74,210,.1),transparent 38%),
    rgba(3,8,15,.62);
}

.rpg-standalone-overview > header,
.rpg-quest-graph > header {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:flex-start;
  padding-bottom:.9rem;
  border-bottom:1px solid rgba(120,147,175,.18);
}

.rpg-standalone-overview > header small,
.rpg-quest-graph > header small {
  color:#71c7f3;
  font-size:.62rem;
  letter-spacing:.16em;
}

.rpg-standalone-overview > header h3,
.rpg-quest-graph > header h3 {
  margin:.3rem 0;
  color:#f1f4f8;
  font:600 clamp(1.4rem,3vw,2.25rem)/1.05 Georgia,serif;
}

.rpg-standalone-overview > header p,
.rpg-quest-graph > header p,
.rpg-quest-graph-note {
  margin:0;
  max-width:52rem;
  color:#96a3b4;
  font-size:.72rem;
  line-height:1.65;
}

.rpg-standalone-overview > header > span {
  padding:.45rem .65rem;
  border:1px solid rgba(125,93,219,.34);
  border-radius:999px;
  color:#b9a8ef;
  font-size:.62rem;
  white-space:nowrap;
}

.rpg-standalone-overview-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
}

.rpg-standalone-overview-grid article {
  min-width:0;
  padding:.8rem;
  border:1px solid rgba(91,123,153,.22);
  border-radius:8px;
  background:rgba(3,7,13,.66);
}

.rpg-standalone-overview-grid article > header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:.55rem;
}

.rpg-standalone-overview-grid h4 {
  margin:0;
  color:#dce6ef;
  font-size:.76rem;
}

.rpg-standalone-overview-grid header b {
  color:#72c8f1;
  font-size:.68rem;
}

.rpg-standalone-overview-grid article > div {
  display:grid;
  gap:.35rem;
}

.rpg-standalone-overview-grid article > div > div {
  display:grid;
  gap:.1rem;
  padding:.4rem .45rem;
  border-left:2px solid rgba(74,168,225,.38);
  background:rgba(9,16,27,.54);
}

.rpg-standalone-overview-grid strong { color:#d7e0e9; font-size:.68rem; }
.rpg-standalone-overview-grid small,
.rpg-standalone-overview-grid p { margin:0; color:#748396; font-size:.6rem; }

.rpg-quest-chain {
  display:flex;
  align-items:stretch;
  gap:1.6rem;
  overflow-x:auto;
  padding:.5rem .15rem 1rem;
}

.rpg-quest-node {
  position:relative;
  flex:0 0 min(17rem,75vw);
  display:grid;
  gap:.3rem;
  padding:.85rem;
  text-align:left;
  border:1px solid rgba(89,126,158,.28);
  border-radius:8px;
  color:#dce7f0;
  background:rgba(4,10,18,.84);
  cursor:pointer;
}

.rpg-quest-node:not(:last-child)::after {
  content:"→";
  position:absolute;
  left:calc(100% + .45rem);
  top:50%;
  width:.7rem;
  color:#7b9fc0;
}

.rpg-quest-node small { color:#70c9f3; font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; }
.rpg-quest-node strong { font:600 1rem/1.2 Georgia,serif; }
.rpg-quest-node span { color:#7f8da0; font-size:.62rem; }
.rpg-quest-node.is-current {
  border-color:rgba(124,90,222,.7);
  box-shadow:0 0 0 1px rgba(71,178,231,.24),0 0 22px rgba(91,60,180,.12);
  background:linear-gradient(135deg,rgba(23,75,108,.24),rgba(47,22,82,.38));
}

@media(max-width:900px) {
  .rpg-standalone-overview-grid { grid-template-columns:1fr 1fr; }
}

@media(max-width:620px) {
  .rpg-standalone-overview-grid { grid-template-columns:1fr; }
  .rpg-standalone-overview > header { display:grid; }
}
