/* ==========================================================
   FACING THE STORM – MASTER STYLESHEET
   Bereinigt und neu strukturiert.

   Hinweis:
   - Alle vorhandenen Regeln wurden konservativ übernommen.
   - Nur exakt identische Duplikate wurden entfernt.
   - Bitte alte CSS-Datei vorher sichern.

   INHALTSVERZEICHNIS
   01. Imports
   02. Design Tokens
   03. Reset & Base
   04. Layout & Typography
   05. Buttons & Forms
   06. Header & Navigation
   07. Footer
   08. Homepage
   09. Forumdisplay & Threads
   10. Posts & Editor
   11. Memberlist
   12. Profile & Character Card
   13. UserCP
   14. Private Messages
   15. Alerts
   16. Search
   17. Login & Registration
   18. Members General
   19. Lexicon
   20. Faceclaim
   21. Family
   22. Lists
   23. Jobliste
   24. Inplay Scenes
   25. Inplay Quotes
   26. Player Directory
   27. Team & Credits
   28. Contact
   29. Stats
   30. Accountswitcher
   31. Popups
   32. Theme Overrides
   33. Responsive
   34. Animations
   99. Legacy / Sonstiges
   ========================================================== */

/* ==========================================================
   01. IMPORTS
   ========================================================== */

@import url(https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500&display=swap);

@import url(https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@latest/tabler-icons.min.css);

/* ==========================================================
   02. DESIGN TOKENS
   ========================================================== */

:root {
  --sapphire: #3c507d;
  --royal-blue: #112250;
  --gold: #c9a84c;
  --quicksand: #e0c58f;
  --swan-wing: #f5f0e9;
  --shellstone: #d9cbc2;
  --parchment: #eae4da;
  --ivory: #fdfaf6;
  --bg: #eae4da;
  --surface: #fdfaf6;
  --surface-soft: #f5f0e9;
  --text: #1d2130;
  --text-muted: #6d6570;
  --border: rgba(60, 80, 125, 0.18);
  --accent: var(--gold);
  --link: #2e6ea6;
  --font-title: "Cormorant Garamond", serif;
  --font-body: "Libre Baskerville", serif;
  --font-ui: "DM Sans", sans-serif;
  --space-xs: 6px;
  --space-sm: 12px;
  --space-md: 20px;
  --space-lg: 32px;
  --space-xl: 48px;
  --space-2xl: 72px;
  --container: min(1240px, calc(100% - 48px));
}

[data-theme="dark"] {
  --bg: #07090f;
  --surface: #0d1423;
  --surface-soft: #111b2f;
  --text: #ebe5da;
  --text-muted: #b7ad9f;
  --border: rgba(201, 168, 76, 0.22);
  --accent: var(--gold);
  --link: #8ea6d9;
}

:root {
	--strong-color: #2e6ea6;
}

[data-theme="dark"] {
	--strong-color: #8ea6d9;
}

/* ==========================================================
   03. RESET & BASE
   ========================================================== */

html {
  min-height: 100%;
}

body {
  margin: 0;
  background: url(/images/background_light.png) center top / cover fixed;
  color: var(--text);
  text-align: left;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
  overflow-y: scroll;
}

a:link, a:visited {
  color: var(--link);
  text-decoration: none;
}

a:hover, a:active {
  color: var(--accent);
  text-decoration: none;
}

img {
  max-width: 100%;
  height: auto;
  border: 0;
}

*, *::before, *::after {
  box-sizing: border-box;
}

#container {
  min-width: 0;
  color: var(--text);
  text-align: left;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.75;
}

#content {
  background: transparent;
  width: auto !important;
  padding: 0;
  overflow: visible;
}

#logo, #panel .upper, #panel .lower {
  display: none;
}

.scaleimages img {
  max-width: 100%;
}

/* ==========================================================
   04. LAYOUT & TYPOGRAPHY
   ========================================================== */

.wrapper, .fts-container {
  width: var(--container);
  min-width: 0;
  max-width: none;
  margin: 0 auto;
}

.fts-title, .fts-section-title, .fts-profile-title h1, .fts-post-title, .fts-forum-name {
  font-family: var(--font-title);
  font-weight: 400;
}

.fts-title {
  margin: 0 0 var(--space-md);
  font-size: clamp(34px, 4vw, 62px);
  line-height: 1;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.fts-section-title {
  margin: 0 0 var(--space-md);
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.fts-section-head {
  margin-bottom: var(--space-md);
}

.fts-section-head h1, .fts-section-head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-weight: 400;
  line-height: 1.15;
}

.fts-section-head h1 {
  font-size: clamp(30px, 4vw, 48px);
}

.fts-section-head h2 {
  font-size: 28px;
}

.fts-kicker {
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  margin-bottom: var(--space-sm);
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.fts-main-grid {
  display: grid;
  gap: var(--space-lg);
  margin-bottom: var(--space-xl);
}

.fts-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: stretch;
}

.fts-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
}

.fts-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: var(--space-lg);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.06);
}

.fts-title a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
}

.fts-title a:hover {
  color: var(--accent);
}

.fts-inplay .fts-kicker {
  display: flex;
  justify-content: center;
}

.fts-profile-hero .fts-kicker {
  display: block;
  margin-bottom: var(--space-sm);
}

.fts-panel, .fts-button, .fts-icon-btn, .fts-avatar, .fts-hero-box, .fts-inplay, .modal, .jGrowl-notification, .jGrowl-closer, div.jqi, div.jqi .jqibuttons {
  border-radius: 0 !important;
}

.fts-family-nav-head .fts-kicker {
  font-size: 11px;
  letter-spacing: .18em;
  color: var(--gold);
  text-transform: uppercase;
  font-family: var(--font-ui);
}

.fts-family-main .fts-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 0;
  overflow: hidden;
}

.fts-family-main .fts-panel-head {
  padding: var(--space-sm) var(--space-md);
  border-bottom: 2px solid rgba(201,168,76,.35);
}

.fts-family-main .fts-panel-head .fts-kicker {
  font-size: 11px;
  letter-spacing: .18em;
  color: var(--gold);
  text-transform: uppercase;
  font-family: var(--font-ui);
}

.fts-family-main .fts-panel-body {
  padding: var(--space-md) var(--space-lg);
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.8;
}

.fts-family-main .fts-panel-body b {
  color: var(--text);
  font-weight: 600;
}

.compose-attachments .fts-kicker {
  display: none;
}

/* ==========================================================
   05. BUTTONS & FORMS
   ========================================================== */

.fts-button, input.fts-button, button.fts-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--accent);
  border-radius: 0;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.fts-button-primary {
  background: var(--accent);
  color: #111;
}

.fts-button-primary:hover {
  background: var(--royal-blue);
  border-color: var(--royal-blue);
  color: var(--quicksand);
}

.fts-button-secondary {
  background: transparent;
  color: var(--link);
}

.fts-button-secondary:hover {
  background: var(--accent);
  color: #111;
}

.fts-field {
  margin-bottom: var(--space-md);
}

.fts-field textarea, .fts-field input.textbox {
  width: 100%;
  box-sizing: border-box;
}

.fts-checkline {
  margin: 8px 0;
}

.fts-form-actions {
  margin-top: var(--space-md);
  text-align: center;
}

.fts-icon-btn {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
}

.fts-icon-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.fts-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm);
}

.fts-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.fts-editor-main textarea {
  width: 100%;
  min-height: 360px;
}

.storm-relas-addcat input.textbox {
  width: 220px;
}

.storm-relas-entry-sort input {
  width: 80px;
}

.storm-relas-entry-comment textarea {
  width: 100%;
  min-height: 90px;
  resize: vertical;
}

.storm-relas-ucp input[type="submit"], .storm-relas-ucp button, .storm-relas-ucp .button, .storm-relas-ucp #rela_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(201,168,76,.55);
  background: transparent;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.storm-relas-ucp input[type="submit"]:hover, .storm-relas-ucp button:hover, .storm-relas-ucp .button:hover, .storm-relas-ucp #rela_button:hover {
  background: rgba(201,168,76,.14);
  color: var(--quicksand);
}

.storm-relas-entry .textbox, .storm-relas-entry textarea {
  width: 100%;
  background: rgba(8,18,45,.95);
  border: 1px solid rgba(201,168,76,.25);
  color: var(--text);
  padding: 10px;
}

.storm-relas-entry textarea {
  min-height: 90px;
  resize: vertical;
}

.storm-relas-entry-actions .button {
  min-width: 180px;
}

.fts-maps-menu-head, .fts-maps-menu button, .fts-maps-menu a {
  display: block;
  width: 100%;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-align: left;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}

.res_add_save button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 18px;
  border: 1px solid var(--gold);
  background: transparent;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}

.res_add_save button:hover {
  background: var(--gold);
  color: var(--royal-blue);
}

.fts-field-desc {
  margin-bottom: 8px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.6;
}

.fts-quickreply__editor textarea {
  width: 100%;
  min-height: 210px;
  resize: vertical;
  padding: 18px 20px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.8;
}

.fts-quickreply__editor textarea:focus {
  outline: none;
  border-color: var(--accent);
}

.fts-quickreply__as select {
  min-height: 36px;
  padding: 0 12px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}

.fts-quickreply__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fts-quickreply__buttons .button {
  min-height: 36px;
  padding: 0 16px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong, var(--border));
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.fts-quickreply__buttons .button:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.fts-modtools select {
  min-width: 260px;
  height: 38px;
  padding: 0 12px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  font-size: 13px;
}

.fts-modtools select:focus {
  outline: none;
  border-color: var(--accent);
}

.fts-modtools .button, .fts-modtools input[type="submit"] {
  height: 38px;
  padding: 0 16px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: .2s ease;
}

.fts-modtools .button:hover, .fts-modtools input[type="submit"]:hover {
  color: var(--accent);
  border-color: var(--accent);
}

.fts-maps-menu button:hover, .fts-maps-menu a:hover, .fts-maps-menu button.active {
  background: rgba(201,168,76,.12);
  color: var(--gold);
}

.fts-form-field {
	display: grid;
	gap: 8px;
}

.fts-form-field label {
	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-form-help {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.6;
}

/* ==========================================================
   06. HEADER & NAVIGATION
   ========================================================== */

.fts-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 72px;
  background: rgba(253, 250, 246, 0.88);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(18px);
}

.fts-topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  height: 72px;
}

.fts-logo {
  color: var(--link);
  font-family: var(--font-title);
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.fts-logo:hover {
  color: var(--accent);
}

.fts-nav, .fts-actions, .fts-usernav, .fts-usernav-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.fts-nav {
  gap: var(--space-md);
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
}

.fts-nav a {
  color: var(--text);
}

.fts-nav a:hover {
  color: var(--accent);
}

.fts-actions {
  gap: var(--space-sm);
}

.fts-memberbar {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 30px 0;
  font-family: var(--font-ui);
  font-size: 12px;
}

.fts-memberbar-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  min-height: 0;
  padding: 0;
  text-align: center;
}

.fts-welcome {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--text-muted);
  text-align: center;
}

.fts-welcome span:first-child {
  display: block;
  color: var(--gold);
  font-family: var(--font-title);
  font-size: 34px;
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1.2;
}

.fts-welcome strong, .fts-welcome a:not(.fts-logout) {
  color: var(--link);
  font-weight: 500;
}

.fts-logout {
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
}

.fts-logout:hover {
  color: var(--gold);
}

.fts-usernav {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: var(--space-sm);
}

.fts-usernav-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.fts-usernav-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fts-usernav a:hover, .fts-usernav-list a:hover {
  background: var(--surface-soft);
  border-color: var(--gold);
  color: var(--gold);
  text-decoration: none;
}

.fts-pm-counter {
  margin-left: 6px;
  padding-left: 6px;
  border-left: 1px solid var(--border);
  font-size: 10px;
  color: var(--gold);
  white-space: nowrap;
}

.fts-scene-counter {
  margin-left: 8px;
  padding-left: 8px;
  border-left: 1px solid var(--border);
  font-size: 10px;
  font-weight: 600;
  color: var(--gold);
  white-space: nowrap;
}

.fts-subnav {
  margin-bottom: var(--space-lg);
}

.fts-subnav-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-md);
  padding: var(--space-md);
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fts-subnav-inner a:hover {
  color: var(--accent);
}

.fts-welcome-back {
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fts-guestbar {
	width: var(--container);
	margin: 18px auto 0;
	padding: 14px 18px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fts-guestbar .welcome {
	color: var(--text-muted);
}

.fts-guestbar a {
	margin-left: 8px;
	color: var(--accent);
}

.fts-guestbar a:hover {
	color: var(--text);
}

/* ==========================================================
   07. FOOTER
   ========================================================== */

.site-footer {
  position: relative;
  margin-top: 48px;
  padding: 34px 0;
  background: transparent;
}

.site-footer__wrap {
  position: relative;
}

.site-footer__panel {
  max-width: 1180px;
  margin: 0 auto;
  padding: 24px 30px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.site-footer__selects {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.site-footer__selects form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.site-footer__selects select {
  height: 36px;
  min-width: 230px;
  padding: 0 38px 0 14px;
  background-color: var(--surface-muted);
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 600;
}

.site-footer__selects input[type="submit"], .site-footer__selects button {
  height: 36px;
  padding: 0 14px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
}

.site-footer__nav {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  overflow-x: auto;
}

.site-footer__nav li {
  list-style: none;
}

.site-footer__nav a, .site-footer__nav li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  height: 32px;
  padding: 0 17px;
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  background: transparent;
  transition: .2s ease;
}

.site-footer__nav a:hover, .site-footer__nav li a:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.site-footer__meta {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 11px;
}

.site-footer__meta a {
  color: var(--accent);
}

.site-footer__top {
  position: absolute;
  right: -62px;
  top: 50%;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--accent);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
  text-decoration: none;
  line-height: 1;
  font-family: var(--font-ui);
  text-align: center;
  rotate: 0deg;
  transform: translateY(-50%) rotate(45deg);
  font-weight: 400;
  color: var(--accent);
  overflow: hidden;
  font-size: 0;
}

.site-footer__top:hover {
  background: var(--accent);
  color: var(--surface);
}

.site-footer__top::before {
  content: "";
}

.site-footer__top > * {
  transform: rotate(-45deg);
}

.site-footer__top::after {
  content: "↑";
  transform: rotate(-45deg);
  font-size: 22px;
}

.site-footer__top {
	position: fixed;
	right: 32px;
	bottom: 32px;
	z-index: 9999;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transform: translateY(12px) rotate(45deg);
	transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
}

.site-footer__top.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;

	transform: translateY(0) rotate(45deg);
}

/* ==========================================================
   08. HOMEPAGE
   ========================================================== */

.fts-link-list {
  display: grid;
  gap: var(--space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-ui);
}

.fts-link-list a {
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--border);
}

.fts-hero {
  padding: var(--space-2xl) 0 var(--space-xl);
}

.fts-hero-box {
  display: grid;
  grid-template-columns: 1.7fr 0.9fr;
  gap: var(--space-lg);
  min-height: 390px;
  align-items: center;
  background: linear-gradient(90deg, rgba(253, 250, 246, 0.42), rgba(253, 250, 246, 0.24)), url(/images/head_light.png) center / cover;
}

.fts-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.fts-hero-subtitle {
  max-width: 680px;
  margin: 0 auto var(--space-lg);
  color: var(--text-muted);
  font-size: 17px;
}

.fts-inplay {
  align-self: center;
  color: var(--quicksand);
}

.fts-inplay dl {
  display: grid;
  gap: var(--space-sm);
  margin: 0;
}

.fts-inplay-row {
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid rgba(201, 168, 76, 0.22);
}

.fts-inplay dt {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.fts-inplay dd {
  margin: 0;
  text-align: right;
}

.fts-home-scroll {
  height: 500px;
  overflow-y: auto;
  padding-right: 10px;
  scrollbar-width: thin;
}

.fts-home-scroll::-webkit-scrollbar {
  width: 6px;
}

.fts-home-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.fts-home-scroll::-webkit-scrollbar-thumb {
  background: var(--border);
}

.fts-home-scroll::-webkit-scrollbar-thumb:hover {
  background: var(--gold);
}

.fts-profile-hero {
  padding: var(--space-xl) var(--space-lg);
  margin-bottom: var(--space-lg);
  text-align: center;
}

.fts-profile-hero-ornament {
  color: var(--gold);
  font-size: 20px;
  opacity: 0.55;
  margin: var(--space-sm) 0;
  display: block;
}

.fts-profile-hero-name {
  margin: 0;
  font-family: var(--font-title);
  font-size: clamp(42px, 7vw, 86px);
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  line-height: 1.05;
}

.fts-joblist-hero,
.fts-joblist-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-joblist-hero {
	padding: 34px 38px;
}

.fts-joblist-hero h1,
.fts-joblist-head h2 {
	margin: 0 0 18px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-scenes-hero,
.fts-scenes-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-scenes-hero {
	padding: 34px 38px;
}

.fts-scenes-hero h1,
.fts-scenes-panel__head h2 {
	margin: 0;
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
	color: var(--text);
}

.fts-playerdirectory-hero,
.fts-playerdirectory-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-playerdirectory-hero {
	padding: 34px 38px;
}

.fts-playerdirectory-hero h1 {
	margin: 0 0 24px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-team-hero {
	padding: 34px 38px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-team-hero h1 {
	margin: 0 0 16px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-team-hero p {
	margin: 0;
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.8;
}

.fts-scenes-overview-hero,
.fts-scenes-overview-panel,
.fts-scenes-overview-list {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-scenes-overview-hero {
	padding: 34px 38px;
}

.fts-scenes-overview-hero h1,
.fts-scenes-overview-list__head h2 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-quotes-hero,
.fts-quotes-filter,
.fts-quotes-list {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-quotes-hero {
	padding: 34px 38px;
}

.fts-quotes-hero h1 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-stats-hero,
.fts-stats-card,
.fts-stats-popular {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-stats-hero {
	padding: 34px 38px;
}

.fts-stats-hero h1,
.fts-stats-popular header h2 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

/* ==========================================================
   09. FORUMDISPLAY & THREADS
   ========================================================== */

.fts-forums table, .fts-boardstats table {
  width: 100%;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
}

.fts-forums-panel .tborder, .fts-boardstats-panel .tborder {
  background: transparent;
  border: 0;
  padding: 0;
}

.fts-forums-panel .thead, .fts-boardstats-panel .thead {
  background: transparent;
  color: var(--text);
  border-bottom: 1px solid var(--border);
  font-family: var(--font-title);
  font-size: 24px;
  font-weight: 500;
}

.fts-forums-panel .thead a, .fts-boardstats-panel .thead a {
  color: var(--text);
}

.fts-forums-panel .tcat, .fts-boardstats-panel .tcat {
  background: var(--surface-soft);
  color: var(--text);
  border: 0;
  font-family: var(--font-ui);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fts-forums-panel .trow1, .fts-forums-panel .trow2, .fts-boardstats-panel .trow1, .fts-boardstats-panel .trow2 {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
}

.fts-forum-card {
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 36px;
  margin-bottom: 14px;
  padding: 26px 30px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-soft);
}

.fts-forum-name {
  margin: 0 0 12px;
  font-family: var(--font-ui);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
}

.fts-forum-desc {
  margin: 4px 0 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.7;
}

.fts-forum-meta {
  color: var(--text-muted);
  text-align: right;
  font-family: var(--font-ui);
  font-size: 12px;
}

.fts-forum-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  margin: 0;
}

.fts-forum-legend dt, .fts-forum-legend dd {
  margin: 0;
  padding: 0;
  float: none;
}

.fts-thread {
  display: grid;
  gap: var(--space-lg);
  margin: var(--space-xl) auto;
}

.fts-forum-name a {
  color: inherit;
}

.fts-forum-card__side {
  display: grid;
  align-content: center;
  gap: 10px;
}

.fts-forum-lastpost {
  padding: 8px 12px;
  background: var(--surface-muted);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}

.fts-forum-lastpost a {
  color: var(--accent);
}

.fts-forum-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.fts-forum-stats span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 4px 8px;
  background: var(--surface-muted);
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.thread-page {
  width: min(1180px, calc(100% - 48px));
  margin: 42px auto;
}

.thread-page__top, .thread-page__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 22px 0;
}

.thread-page__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.thread-page__actions a, .thread-page__actions input, .thread-page__actions button, .new_reply_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.thread-page__actions a:hover, .thread-page__actions input:hover, .thread-page__actions button:hover, .new_reply_button:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.forum-page {
	width: var(--container);
	margin: 42px auto 56px;

	display: grid;
	gap: 24px;
}

.forum-hero {
	padding: 32px 38px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.forum-hero h1 {
	margin: 8px 0 0;

	font-family: var(--font-title);
	font-size: clamp(36px, 4vw, 64px);
	font-weight: 400;
	line-height: 1;
}

.forum-threads,
.forum-meta__item {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.forum-meta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 18px;
}

.forum-meta__item {
	padding: 24px;
}

.forum-subforums {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.forum-subforums__head {
	padding: 28px 32px;
	border-bottom: 1px solid var(--border);
}

.forum-subforums__head h2 {
	margin: 8px 0 0;

	color: var(--text);

	font-family: var(--font-title);
	font-size: clamp(28px, 3vw, 46px);
	font-weight: 400;
	line-height: 1;
}

.forum-subforums__grid {
	display: grid;
	gap: 1px;

	background: var(--border);
}

.forum-threadlist {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.forum-threadlist__top,
.forum-threadlist__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	padding: 20px 24px;
}

.forum-threadlist__head {
	padding: 28px 32px;
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}

.forum-threadlist__head h2 {
	margin: 0;
	font-family: var(--font-title);
	font-size: clamp(30px, 4vw, 52px);
	font-weight: 400;
	line-height: 1;
	color: var(--text);
}

.forum-threadlist__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 10px;
}

.forum-threadlist__actions a,
.forum-threadlist__actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 0 14px;
	border: 1px solid var(--border);
	border-radius: 999px;
	color: var(--text);
	background: transparent;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.forum-threadlist__actions a:hover,
.forum-threadlist__actions .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.forum-threadlist__rows {
	display: grid;
}

.forum-thread {
	display: grid;
	grid-template-columns: 46px minmax(0, 1fr) 170px 220px;
	gap: 18px;
	align-items: center;
	padding: 24px 28px;
	border-bottom: 1px solid var(--border);
}

.forum-thread:last-child {
	border-bottom: 0;
}

.forum-thread__status {
	display: grid;
	place-items: center;
	gap: 6px;
}

.forum-thread__title {
	font-family: var(--font-title);
	font-size: 25px;
	line-height: 1.15;
}

.forum-thread__title a {
	color: var(--text);
}

.forum-thread__title a:hover {
	color: var(--accent);
}

.forum-thread__scene {
	margin-top: 8px;
	color: var(--text-muted);
	font-size: 12px;
}

.forum-thread__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	color: var(--text-muted);
	font-size: 12px;
}

.forum-thread__stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.forum-thread__stats a,
.forum-thread__stats div {
	display: grid;
	place-items: center;
	min-height: 54px;
	border: 1px solid var(--border);
	color: var(--text);
}

.forum-thread__stats strong {
	font-family: var(--font-title);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
}

.forum-thread__stats span {
	color: var(--text-muted);
	font-family: var(--font-ui);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.forum-thread__lastpost {
	display: grid;
	gap: 4px;
	justify-items: end;
	color: var(--text-muted);
	font-size: 12px;
	text-align: right;
}

.forum-thread__lastpost a {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.forum-threadlist__sort,
.forum-threadlist__tools {
	padding: 20px 24px;
	border-top: 1px solid var(--border);
}

.forum-threadlist__sort form,
.forum-threadlist__tools form {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
}

.forum-threadlist__sort select,
.forum-threadlist__tools select,
.forum-threadlist__tools input.textbox {
	height: 36px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.forum-threadlist__sort .button,
.forum-threadlist__tools .button,
.forum-threadlist__sort input[type="submit"],
.forum-threadlist__tools input[type="submit"] {
	height: 36px;
	padding: 0 14px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.forum-threadlist__sort .button:hover,
.forum-threadlist__tools .button:hover,
.forum-threadlist__sort input[type="submit"]:hover,
.forum-threadlist__tools input[type="submit"]:hover {
	color: var(--accent);
	border-color: var(--accent);
}

/* ==========================================================
   10. POSTS & EDITOR
   ========================================================== */

.infopost {
  margin: var(--space-lg) 0;
  padding: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 10px 30px rgba(0,0,0,.04);
}

.infopostheader {
  padding: 18px;
  font-family: var(--font-title);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.1;
  border-bottom: 1px solid rgba(201,168,76,.18);
}

.infopostcontent {
  padding: var(--space-lg);
  color: var(--text-muted);
  line-height: 1.9;
}

.book-post {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 0;
  margin: 42px 0;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.book-post__author {
  position: relative;
  box-sizing: border-box;
  padding: 32px 24px;
  background: linear-gradient( 180deg, color-mix(in srgb, var(--surface-muted) 82%, transparent), color-mix(in srgb, var(--surface) 96%, transparent) );
  border-right: 1px solid var(--border);
  text-align: center;
}

.book-post__author::after {
  content: "";
  position: absolute;
  top: 0;
  right: -1px;
  width: 22px;
  height: 100%;
  background: linear-gradient(90deg, rgba(0, 0, 0, .08), transparent);
  pointer-events: none;
}

.book-post__page {
  position: relative;
  min-height: 420px;
  padding: 34px 42px 26px;
  background: linear-gradient(90deg, rgba(0, 0, 0, .045), transparent 34px), var(--surface);
}

.book-post__avatar, .book-post__avatar .author_avatar, .book-post__avatar a {
  display: block;
  width: 250px;
  max-width: 250px;
  margin: 0 auto;
}

.book-post__avatar img, .book-post__author .author_avatar img, .book-post__author .book-post__avatar a img {
  display: block;
  width: 250px !important;
  height: 230px !important;
  min-width: 250px !important;
  min-height: 230px !important;
  max-width: 250px !important;
  max-height: 230px !important;
  object-fit: cover;
  padding: 6px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  box-shadow: var(--shadow-soft);
}

.book-post__name {
  display: block;
  margin-top: 18px;
  font-family: var(--font-title);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
}

.book-post__name a {
  color: var(--text);
}

.book-post__rank {
  margin-top: 8px;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.5;
}

.book-post__rank img, .book-post__stats img, .character-card__details img, .character-field__value img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: 100px !important;
  max-height: 100px !important;
  object-fit: contain;
  margin: 12px auto 0;
}

.book-post__stats {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

.book-post__author-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-top: 20px;
}

.book-post__head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--border);
}

.book-post__date {
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 12px;
  text-align: right;
}

.book-post__body {
  max-width: 75ch;
  color: var(--text);
  font-size: 15px;
  line-height: 1.9;
  text-align: justify;
}

.book-post__body p {
  margin: 0 0 1.2em;
}

.book-post__body img {
  max-width: 100%;
  height: auto;
}

.book-post__body blockquote, .book-post__body .quote_body {
  margin: 24px 0;
  padding: 18px 22px;
  background: var(--surface-muted);
  border-left: 3px solid var(--accent);
  color: var(--text-muted);
}

.book-post__body code {
  padding: 2px 5px;
  background: var(--surface-muted);
  border: 1px solid var(--border);
}

.book-post__page .signature {
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 13px;
}

.book-post__footer {
  margin-top: 34px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.book-post__meta {
  margin-bottom: 14px;
  color: var(--text-muted);
  font-size: 11px;
}

.book-post__controls, .book-post__author-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.book-post__controls {
  justify-content: flex-end;
  z-index: 20;
}

.book-post__controls a, .book-post__author-buttons a, .book-post__controls input, .book-post__author-buttons input {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.book-post__controls a:hover, .book-post__author-buttons a:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}

.thread-bottom {
  width: min(1180px, calc(100% - 48px));
  margin: 42px auto 56px;
  display: grid;
  gap: 18px;
}

.thread-bottom__tools, .thread-bottom__forms, .thread-bottom__browsing {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
  padding: 24px;
}

.thread-bottom__tools h3 {
  margin: 0 0 16px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.thread-bottom__tool-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.thread-bottom__tool-list li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.thread-bottom__tool-list a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.thread-bottom__tool-list a:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.thread-bottom__forms {
  display: grid;
  gap: 18px;
  align-content: start;
}

.thread-bottom__forms form {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0 !important;
}

.thread-bottom__forms strong, .thread-bottom__forms .smalltext {
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.thread-bottom__forms select {
  width: 100%;
  height: 38px;
  padding: 0 12px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}

.thread-bottom__forms input[type="submit"], .thread-bottom__forms .button {
  height: 38px;
  padding: 0 16px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.thread-bottom__forms input[type="submit"]:hover, .thread-bottom__forms .button:hover {
  color: var(--accent);
  border-color: var(--accent);
}

.thread-bottom__browsing {
  color: var(--text-muted);
  font-size: 13px;
}

.thread-bottom__browsing .smalltext {
  color: inherit;
  font-size: inherit;
}

.thread-bottom__browsing a {
  color: var(--accent);
}

.compose-page {
  width: min(1180px, calc(100% - 48px));
  margin: 48px auto;
}

.compose-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.compose-panel__head {
  padding: 30px 34px 24px;
  border-bottom: 1px solid var(--border);
}

.compose-panel__head h1 {
  margin: 0;
  color: var(--text);
  font-family: var(--font-title);
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 400;
  line-height: 1;
}

.compose-panel__body {
  display: grid;
  gap: 24px;
  padding: 30px 34px;
}

.compose-field {
  display: grid;
  gap: 10px;
}

.compose-field label {
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.compose-field input.textbox {
  width: 100%;
  height: 42px;
  padding: 0 14px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
  font-family: var(--font-body);
}

.compose-field input.textbox:focus, .compose-field textarea:focus {
  outline: none;
  border-color: var(--accent);
}

.compose-editor {
  display: grid;
  gap: 14px;
}

.compose-editor textarea, .compose-field textarea {
  width: 100%;
  min-height: 420px;
  padding: 20px 22px;
  resize: vertical;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.8;
}

.compose-options {
  display: grid;
  color: var(--text-muted);
  font-size: 13px;
  margin-top: 18px;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}

.compose-options table, .compose-options tbody, .compose-options tr, .compose-options td {
  display: block;
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.compose-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
  padding: 22px 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.compose-actions select {
  height: 38px;
  padding: 0 12px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}

.compose-actions .button, .compose-actions input[type="submit"] {
  height: 38px;
  padding: 0 16px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.compose-actions .button:hover, .compose-actions input[type="submit"]:hover {
  color: var(--accent);
  border-color: var(--accent);
}

.compose-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 28px;
  align-items: stretch;
}

.compose-editor-main {
  display: grid;
  gap: 10px;
  position: relative;
}

.compose-editor-smilies {
  padding-left: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 460px;
  padding: 22px 14px;
  border-left: 1px solid var(--border);
  text-align: center;
}

.compose-editor-smilies .smalltext {
  display: block;
  margin-bottom: 12px;
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.compose-editor-smilies img {
  display: inline-block;
  margin: 3px;
  vertical-align: middle;
}

.compose-editor-main textarea, .compose-editor-layout textarea {
  width: 100%;
  min-height: 460px;
  padding: 20px 22px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 6px;
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.8;
  resize: vertical;
}

.compose-editor-smilies strong, .compose-editor-smilies .smalltext strong {
  display: block;
  margin-bottom: 16px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.compose-editor-smilies a {
  display: inline-block;
  margin-top: 10px;
  color: var(--link);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.compose-editor-main #showData, .compose-editor-main .showData {
  display: flex !important;
  justify-content: flex-end;
  align-items: center;
  width: auto !important;
  min-width: 0 !important;
  max-width: max-content !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-ui) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .08em;
  line-height: 1.2 !important;
  text-align: right !important;
  text-transform: uppercase;
}

.compose-editor-main #showData.warningClass, .compose-editor-main .showData.warningClass {
  color: var(--accent) !important;
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, transparent) !important;
}

.compose-editor-main #showData::before, .compose-editor-main .showData::before {
  content: "Zeichenzähler · ";
  color: var(--text-muted);
}

.compose-attachments {
  margin: 18px 0 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.compose-attachments summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: auto;
  padding: 0;
  list-style: none;
  cursor: pointer;
}

.compose-attachments summary::-webkit-details-marker {
  display: none;
}

.compose-attachments summary h2 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 10px 18px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.compose-attachments summary h2::before {
  content: "+";
  color: var(--accent);
  font-size: 15px;
  line-height: 1;
}

.compose-attachments[open] summary h2::before {
  content: "−";
}

.compose-attachments summary::after {
  content: "Dateien anzeigen";
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.compose-attachments[open] summary::after {
  content: "Dateien ausblenden";
}

.compose-attachments__quota, .compose-attachments__body {
  margin-top: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.compose-attachments__quota {
  padding: 12px 18px;
  color: var(--text-muted);
  font-size: 12px;
}

.compose-attachments__quota a {
  color: var(--accent);
}

.compose-attachments__body {
  padding: 18px;
}

.compose-attachments__body table, .compose-attachments__body tbody, .compose-attachments__body tr, .compose-attachments__body td {
  display: block;
  width: 100%;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}

.compose-attachments__body input[type="file"], .compose-attachments__body input.textbox, .compose-attachments__body input[type="text"] {
  width: 100%;
  max-width: 100%;
  margin-bottom: 12px;
  padding: 10px 12px;
  background: var(--surface-soft);
  color: var(--text);
  border: 1px solid var(--border);
}

.compose-attachments__body .button, .compose-attachments__body input[type="submit"] {
  min-height: 34px;
  padding: 0 14px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.compose-attachments__body .button:hover, .compose-attachments__body input[type="submit"]:hover {
  color: var(--accent);
  border-color: var(--accent);
}

.compose-options summary {
  list-style: none;
  cursor: pointer;
}

.compose-options summary::-webkit-details-marker {
  display: none;
}

.compose-options__summary span {
  display: inline-flex;
  gap: 10px;
  padding: 10px 18px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.compose-options__summary span::before {
  content: "+";
  color: var(--accent);
}

.compose-options[open] .compose-options__summary span::before {
  content: "−";
}

.compose-options__body {
  margin-top: 16px;
  display: grid;
  gap: 18px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--border);
}

.compose-options__group h3 {
  margin: 0 0 10px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.compose-options__items {
  display: grid;
  gap: 8px;
  color: var(--text-muted);
  font-size: 13px;
}

.compose-review {
  margin-top: 36px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.compose-review__head {
  padding: 26px 30px 20px;
  border-bottom: 1px solid var(--border);
  text-align: center;
}

.compose-review__head h2 {
  margin: 0;
  color: var(--text);
  font-family: var(--font-title);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 400;
  line-height: 1;
}

.compose-review__posts {
  display: grid;
}

.compose-review-post {
  padding: 28px 34px;
}

.compose-review-post + .compose-review-post {
  border-top: 1px solid var(--border);
}

.compose-review-post__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.compose-review-post__head strong {
  color: var(--accent);
}

.compose-review-post__body {
  max-width: 82ch;
  margin: 0 auto;
  color: var(--text);
  font-size: 15px;
  line-height: 1.9;
  text-align: justify;
  hyphens: auto;
}

.compose-review-post__body img {
  max-width: 100%;
  height: auto;
}

.book-post, .book-post__page, .book-post__footer, .book-post__controls {
  position: relative;
  overflow: visible !important;
}

.popup_menu {
  position: absolute;
  min-width: 190px;
  padding: 6px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
  z-index: 999999 !important;
}

.popup_menu {
    position: fixed !important;
}

/* ==========================================================
   11. MEMBERLIST
   ========================================================== */

.fts-memberlist-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-memberlist-hero,
.fts-memberlist-table,
.fts-memberlist-search {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-memberlist-hero {
	padding: 34px 38px;
}

.fts-memberlist-hero h1,
.fts-memberlist-search__head h2 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-memberlist-alpha {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 24px;
}

.fts-memberlist-alpha a {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 30px;
	height: 30px;

	border: 1px solid var(--border);
	color: var(--text);

	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
}

.fts-memberlist-alpha a:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-memberlist-pages {
	text-align: center;
}

.fts-memberlist-table__head,
.fts-member-row {
	display: grid;
	grid-template-columns: 70px minmax(0, 1.4fr) 150px 150px 90px 90px;
	gap: 14px;
	align-items: center;
}

.fts-memberlist-table__head {
	padding: 14px 22px;
	border-bottom: 1px solid var(--border);

	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-memberlist-table__head a {
	color: var(--accent);
}

.fts-memberlist-table__body {
	display: grid;
}

.fts-member-row {
	padding: 18px 22px;
	border-bottom: 1px solid var(--border);
}

.fts-member-row:last-child {
	border-bottom: 0;
}

.fts-member-row__avatar img {
	width: 52px;
	height: 52px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.fts-member-row__name {
	font-family: var(--font-title);
	font-size: 24px;
	line-height: 1.1;
}

.fts-member-row__name a {
	color: var(--text);
}

.fts-member-row__name a:hover {
	color: var(--accent);
}

.fts-member-row__title {
	margin-top: 6px;
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.5;
}

.fts-member-row__title img {
	max-height: 28px;
	width: auto;
	display: block;
	margin-top: 6px;
}

.fts-member-row__meta,
.fts-member-row__stat {
	display: grid;
	gap: 3px;
	text-align: center;
}

.fts-member-row__meta span,
.fts-member-row__stat span {
	color: var(--text-muted);
	font-family: var(--font-ui);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fts-member-row__meta strong {
	color: var(--text);
	font-size: 12px;
	font-weight: 400;
}

.fts-member-row__stat strong {
	color: var(--accent);
	font-family: var(--font-title);
	font-size: 28px;
	font-weight: 400;
	line-height: 1;
}

.fts-memberlist-search__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;

	padding: 28px 32px;
	border-bottom: 1px solid var(--border);
}

.fts-memberlist-search__head a {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fts-memberlist-search__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	padding: 24px 32px;
}

.fts-memberlist-search__field {
	display: grid;
	gap: 8px;
}

.fts-memberlist-search__field label {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-memberlist-search__field span,
.fts-memberlist-search__radios {
	color: var(--text-muted);
	font-size: 12px;
}

.fts-memberlist-search input.textbox,
.fts-memberlist-search select {
	height: 38px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.fts-memberlist-search__actions {
	display: flex;
	justify-content: flex-end;
	padding: 18px 32px;
	border-top: 1px solid var(--border);
}

.fts-memberlist-search .button {
	height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-memberlist-search .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-memberlist-table {
	display: none;
}

.fts-memberlist-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 22px;
}

.fts-member-card {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
	overflow: hidden;
}

.fts-member-card__avatar {
	position: relative;
	width: 100%;
	height: 230px;
	background: var(--surface-soft);
	overflow: hidden;
}

.fts-member-card__avatar img {
	width: 250px;
	height: 230px;
	display: block;
	margin: 0 auto;
	object-fit: cover;
}

.fts-member-card__hover {
	position: absolute;
	inset: 0;
	padding: 22px;

	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 18px;

	background: color-mix(in srgb, var(--surface) 92%, transparent);
	border-top: 1px solid var(--border);

	opacity: 0;
	transform: translateY(12px);
	transition: .25s ease;
}

.fts-member-card:hover .fts-member-card__hover {
	opacity: 1;
	transform: translateY(0);
}

.fts-member-card__shorttext {
	color: var(--text-muted);
	font-size: 13px;
	line-height: 1.7;
	text-align: justify;
	hyphens: auto;

	max-height: 135px;
	overflow: auto;
	padding-right: 6px;
}

.fts-member-card__accounts {
	border-top: 1px solid var(--border);
	padding-top: 12px;
}

.fts-member-card__accounts summary {
	cursor: pointer;

	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-member-card__accounts div {
	margin-top: 10px;
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.6;
}

.fts-member-card__accounts a {
	color: var(--accent);
}

.fts-member-card__body {
	padding: 24px;
}

.fts-member-card__body h2 {
	margin: 0 0 10px;

	font-family: var(--font-title);
	font-size: 34px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
}

.fts-member-card__body h2 a {
	color: var(--text);
}

.fts-member-card__body h2 a:hover {
	color: var(--accent);
}

.fts-member-card__title {
	min-height: 28px;
	margin-bottom: 18px;

	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.5;
	text-align: center;
}

.fts-member-card__title img {
	display: block;
	max-height: 28px;
	width: auto;
	margin: 8px auto 0;
}

.fts-member-card__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;

	background: var(--border);
	border: 1px solid var(--border);
}

.fts-member-card__stats div {
	padding: 14px 10px;

	background: var(--surface-soft);
	text-align: center;
}

.fts-member-card__stats strong {
	display: block;

	color: var(--text);
	font-family: var(--font-title);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.1;
}

.fts-member-card__stats span {
	display: block;
	margin-top: 4px;

	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fts-member-card__accounts {
	margin-top: 12px;
	border-top: 1px solid var(--border);
	padding-top: 12px;
}

.fts-member-card__accounts summary {
	list-style: none;
	cursor: pointer;

	display: flex;
	align-items: center;
	justify-content: space-between;

	min-height: 32px;
	padding: 0 10px;

	border: 1px solid var(--border);
	background: var(--surface);

	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-member-card__accounts summary::-webkit-details-marker {
	display: none;
}

.fts-member-card__accounts summary::after {
	content: "+";
	color: var(--accent);
	font-size: 13px;
}

.fts-member-card__accounts[open] summary::after {
	content: "−";
}

.fts-member-card__accounts {
	position: relative;
}

.fts-member-card__accounts div {
	margin-top: 8px;
	padding: 12px;

	display: flex;
	flex-direction: column;
	gap: 6px;

	background: var(--surface);
	border: 1px solid var(--border);

	text-align: center;
}

.fts-member-card__accounts div a {
	display: block;
	width: 100%;

	text-align: center;
	color: var(--text);
}

.fts-member-card__accounts div a:hover {
	color: var(--accent);
}

.fts-member-card__accounts a {
	display: block;
	color: var(--text);
}

.fts-member-card__accounts a:hover {
	color: var(--accent);
}

.fts-member-card__accounts-list {
	display: grid;
	gap: 8px;
	text-align: center;
}

.fts-member-card__accounts-list ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fts-member-card__accounts-list li {
	margin: 0;
	padding: 0;
	list-style: none;
	white-space: normal !important;
}

.fts-member-card__accounts-list li span:first-child {
	display: none;
}

.fts-member-card__accounts-list a {
	display: inline-block;
	color: var(--accent);
	font-size: 12px;
	font-weight: 700;
}

/* ==========================================================
   12. PROFILE & CHARACTER CARD
   ========================================================== */

.fts-profile {
  padding: var(--space-xl) 0;
}

.fts-profile-quote {
  margin: var(--space-lg) auto;
  max-width: 680px;
  padding: var(--space-md) var(--space-lg);
  border: 1px solid rgba(201,168,76,.3);
  position: relative;
  font-family: var(--font-title);
  font-style: italic;
  font-size: 18px;
  line-height: 1.75;
  color: var(--text-muted);
}

.fts-profile-quote::before, .fts-profile-quote::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border-color: var(--gold);
  border-style: solid;
  opacity: 0.65;
}

.fts-profile-quote::before {
  top: -1px;
  left: -1px;
  border-width: 2px 0 0 2px;
}

.fts-profile-quote::after {
  bottom: -1px;
  right: -1px;
  border-width: 0 2px 2px 0;
}

.fts-profile-quote-open, .fts-profile-quote-close {
  font-family: var(--font-title);
  font-size: 48px;
  color: var(--gold);
  opacity: 0.45;
  line-height: 0;
  vertical-align: -0.4em;
}

.fts-profile-quote-open {
  margin-right: 4px;
}

.fts-profile-quote-close {
  margin-left: 4px;
}

.fts-profile-meta {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
  font-family: var(--font-ui);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.fts-profile-meta-sep {
  color: var(--gold);
  opacity: 0.45;
}

.fts-profile-tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: var(--space-md);
}

.fts-profile-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 322px;
  gap: var(--space-lg);
  margin-bottom: var(--space-lg);
  align-items: start;
}

.fts-profile-primary, .fts-profile-secondary {
  display: grid;
  gap: var(--space-lg);
  align-content: start;
}

.fts-profile-card {
  padding: var(--space-lg);
}

.fts-profile-data {
  display: grid;
  gap: 0;
}

.fts-profile-data > div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.fts-profile-data > div:last-child {
  border-bottom: none;
}

.fts-profile-data strong {
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .1em;
  flex-shrink: 0;
}

.fts-profile-images-card {
  padding: 0;
  overflow: hidden;
}

.fts-profile-avatar img {
  width: 100%;
  height: 250px;
  object-fit: cover;
  display: block;
  border-bottom: 1px solid var(--border);
}

.fts-profile-gif {
  width: 100%;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}

.fts-profile-gif img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

.fts-profile-deco {
  padding: var(--space-md);
  text-align: center;
}

.fts-profile-deco img, #fts-wappen {
  max-width: 90px;
  max-height: 90px;
  width: auto;
  height: auto;
  display: inline-block;
}

.fts-character-stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--space-md) 12px;
}

.fts-character-stat strong {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-profile-fields-half {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-lg);
  margin-bottom: var(--space-lg);
}

.fts-profile-field {
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--border);
}

.fts-profile-field:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.fts-profile-field h3 {
  margin: 0 0 8px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-profile-field-content {
  color: var(--text-muted);
  line-height: 1.85;
  font-size: 14px;
}

.fts-profile-field-content:empty {
  display: none;
}

.fts-profile-field-fid28, .fts-profile-field-fid23, .fts-profile-field-fid24, .fts-profile-field-fid25, .fts-profile-field-fid26 {
  display: none;
}

.fts-profile-attached {
  display: grid;
  gap: 10px;
}

.fts-profile-attached table {
  width: 100%;
}

.fts-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: var(--space-md);
}

.character-card__details {
  margin-top: 22px;
  text-align: center;
}

.character-card__shorttext {
  margin: 22px 0;
  text-align: center;
}

.character-card__label, .character-field__label {
  display: block;
  margin-bottom: 6px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.character-card__value, .character-field__value {
  display: block;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.6;
}

.character-card__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 24px;
  border: 1px solid var(--border);
}

.character-stat {
  padding: 14px 8px;
  text-align: center;
}

.character-stat + .character-stat {
  border-left: 1px solid var(--border);
}

.character-stat__number {
  display: block;
  color: var(--text);
  font-family: var(--font-title);
  font-size: 28px;
  line-height: 1;
}

.character-stat__label {
  display: block;
  margin-top: 4px;
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.character-card__shorttext {
	margin-top: 22px;
	padding-top: 22px;

	border-top: 1px solid var(--border);

	display: flex;
	flex-direction: column;

	height: 420px;
}

.character-card__label {
	margin-bottom: 14px;

	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;

	letter-spacing: .14em;
	text-transform: uppercase;
	text-align: center;
}

.character-card__value {
	flex: 1;

	padding-right: 8px;

	overflow-y: auto;
	overflow-x: hidden;

	color: var(--text-muted);

	font-size: 13px;
	line-height: 1.7;

	text-align: justify;
	hyphens: auto;
}

.character-card__value::-webkit-scrollbar {
	width: 6px;
}

.character-card__value::-webkit-scrollbar-track {
	background: transparent;
}

.character-card__value::-webkit-scrollbar-thumb {
	background: var(--border);
	border-radius: 999px;
}

.character-card__value::-webkit-scrollbar-thumb:hover {
	background: var(--accent);
}

.character-card__value {
	scrollbar-width: thin;
	scrollbar-color: var(--border) transparent;
}

.character-card__gif {
	margin: 22px 0;
	padding: 0;

	text-align: center;
}

.character-card__gif img {
	display: block;

	width: 250px !important;
	max-width: 100% !important;

	height: auto !important;
	max-height: none !important;

	margin: 0 auto;

	object-fit: contain !important;

	border: 1px solid var(--border);
}

/* ==========================================================
   13. USERCP
   ========================================================== */

.fts-field > label, .fts-usercp fieldset > label {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-usercp input.textbox, .fts-usercp input[type="text"], .fts-usercp input[type="password"], .fts-usercp select, .fts-usercp textarea, .fts-field input.textbox, .fts-field textarea, .fts-field select {
  max-width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.65);
  color: var(--text);
  font-family: var(--font-body);
}

.fts-usercp {
  padding: var(--space-xl) 0;
}

.fts-usercp-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: start;
}

.fts-usercp-sidebar, .fts-usercp-content {
  min-width: 0;
}

.fts-usercp-summary, .fts-usercp-form {
  padding: var(--space-lg);
}

.fts-usercp-summary-grid {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: center;
}

.fts-usercp-userdata {
  color: var(--text-muted);
}

.fts-usercp-userdata .largetext {
  display: inline-block;
  margin-bottom: var(--space-xs);
  color: var(--text);
  font-family: var(--font-title);
  font-size: 28px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.fts-usercp-userdata strong {
  color: var(--gold);
  font-weight: 500;
}

.fts-usercp .thead {
  background: transparent;
  color: var(--gold);
  border: 0;
}

.fts-usercp .tborder {
  background: transparent;
  border: 1px solid var(--border);
}

.fts-usercp .trow1, .fts-usercp .trow2 {
  background: transparent;
  color: var(--text);
}

.fts-usercp-nav-panel {
  padding: 18px;
  overflow: hidden;
}

.fts-usercp-nav-title, .fts-cp-nav-heading {
  margin-bottom: 10px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.fts-cp-nav-section {
  margin-top: 18px;
}

.fts-usercp-nav img, .fts-usercp-nav .expcolimage {
  display: none;
}

.fts-cp-button, .fts-usercp-nav a {
  display: block;
  margin-bottom: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(196, 154, 70, 0.35);
  background: rgba(255, 255, 255, 0.34);
  color: var(--link);
  font-family: var(--font-ui);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}

.fts-cp-button:hover, .fts-usercp-nav a:hover {
  background: rgba(196, 154, 70, 0.16);
  color: var(--gold);
}

.fts-usercp fieldset {
  margin: 0 0 var(--space-lg);
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.28);
  border-radius: 0;
}

.fts-usercp legend {
  padding: 0 8px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.fts-usercp .as_usercp, .fts-usercp .as_usercp_options, .fts-usercp .as_usercp_users, .fts-usercp .as_usercp_privacy {
  background: rgba(8, 15, 35, 0.72) !important;
  border: 1px solid rgba(212,175,55,.22) !important;
  border-radius: 0 !important;
}

.fts-usercp fieldset table, .fts-usercp fieldset tbody, .fts-usercp fieldset tr, .fts-usercp fieldset td {
  background: transparent !important;
  border: 0 !important;
}

.fts-usercp fieldset td, .fts-usercp fieldset label, .fts-usercp fieldset span {
  color: var(--text-muted);
}

.fts-usercp fieldset strong, .fts-usercp fieldset b {
  color: var(--text);
}

.fts-usercp fieldset input[type="submit"], .fts-usercp fieldset button {
  background: transparent !important;
  color: var(--gold) !important;
  border: 1px solid rgba(212,175,55,.55) !important;
  border-radius: 0 !important;
  padding: 9px 14px;
  font-family: var(--font-ui);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.storm-relas-ucp-head {
  padding: 13px 16px;
  background: var(--sapphire);
  color: var(--quicksand);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-align: center;
}

.storm-relas-ucp-body {
  padding: var(--space-lg);
}

.ucp-option-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  padding: 24px 28px;
  margin-bottom: 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.ucp-option-card__content {
  flex: 1;
}

.ucp-option-card__content h3 {
  margin: 0 0 8px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ucp-option-card__content p {
  margin: 0;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.7;
}

.ucp-option-card__controls {
  display: flex;
  gap: 18px;
  flex-shrink: 0;
}

.ucp-option-card__controls label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
}

.ucp-option-card__controls label:hover {
  border-color: var(--accent);
}

.ucp-option-card__controls span {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ==========================================================
   14. PRIVATE MESSAGES
   ========================================================== */

.fts-pm-tools {
  padding: 18px 24px;
  margin-bottom: var(--space-md);
  border-bottom: 1px solid var(--border);
}

.fts-pm-tools a {
  color: var(--link);
  text-decoration: none;
}

.fts-pm-list {
  padding: var(--space-lg);
}

.fts-pm-list-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}

.fts-pm-search, .fts-pm-actions, .fts-pm-footer {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fts-pm-actions, .fts-pm-footer {
  margin-top: var(--space-md);
}

.fts-pm-footer {
  justify-content: space-between;
}

.fts-pm-table, .fts-folder-list table, .fts-alerts-table {
  width: 100%;
  border-collapse: collapse;
}

.fts-pm-table th {
  padding: 10px 0;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: left;
  border-bottom: 1px solid var(--border);
}

.fts-pm-table td, .fts-folder-list td {
  padding: 10px 0;
  border-bottom: 1px solid rgba(196,154,70,.18);
  background: transparent !important;
  color: var(--text-muted);
}

.fts-pm-table a {
  color: var(--link);
  text-decoration: none;
}

.fts-pm-table a:hover {
  color: var(--gold);
}

/* ==========================================================
   15. ALERTS
   ========================================================== */

.fts-checkline, .fts-checklist label, .fts-alert-setting {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--text-muted);
  line-height: 1.5;
}

.fts-alert td {
  padding: 16px;
  background: transparent;
  border-bottom: 1px solid rgba(212,175,55,.15);
}

.fts-alert-avatar {
  width: 72px;
}

.fts-alert-avatar img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(212,175,55,.25);
}

.fts-alert-content a {
  color: var(--text);
  text-decoration: none;
  line-height: 1.6;
}

.fts-alert-content a:hover {
  color: var(--gold);
}

.fts-alert-meta {
  width: 220px;
  text-align: right;
}

.fts-alert-time {
  display: block;
  margin-bottom: 10px;
  color: var(--text-muted);
  font-size: 12px;
}

.fts-alert-actions, .fts-alerts-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fts-alert-actions {
  justify-content: flex-end;
}

.fts-alerts-actions {
  justify-content: flex-end;
}

.fts-alerts-panel {
  padding: var(--space-lg);
}

.fts-alerts-actions a, .fts-alert-actions a {
  padding: 7px 10px;
  border: 1px solid rgba(196,154,70,.35);
  color: var(--link);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
}

.fts-alerts-actions a:hover, .fts-alert-actions a:hover {
  background: rgba(196,154,70,.16);
  color: var(--gold);
}

.fts-alerts-top {
  margin-bottom: var(--space-md);
  text-align: right;
}

.fts-alert-setting-row td {
  padding: 12px 0;
  border-bottom: 1px solid rgba(196,154,70,.15);
  background: transparent !important;
}

.fts-alert-setting {
  align-items: center;
  gap: 12px;
  color: var(--text);
  cursor: pointer;
}

.fts-alert-setting input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--gold);
}

/* ==========================================================
   16. SEARCH
   ========================================================== */

.fts-search-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-lg);
}

.fts-search-box {
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.22);
}

.fts-search-box h2 {
  margin: 0 0 var(--space-md);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.fts-search input.textbox, .fts-search select, .fts-search textarea {
  max-width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.65);
  color: var(--text);
  font-family: var(--font-body);
}

.fts-search input.textbox {
  width: 100%;
}

.fts-search-small {
  width: 60px !important;
}

.fts-search-forums select {
  width: 100%;
  min-height: 280px;
}

.fts-search-results-table {
  width: 100%;
  background: transparent;
  border: 1px solid var(--border);
}

.fts-search-results-table .tcat {
  padding: 10px;
  background: var(--surface-soft);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}

.fts-search-results-table .tcat a {
  color: var(--gold);
}

.fts-search-results-table .trow1, .fts-search-results-table .trow2 {
  background: transparent;
  border-bottom: 1px solid rgba(201,168,76,.16);
}

.fts-search-results-table td {
  padding: 10px;
  color: var(--text-muted);
}

.fts-search-results-top {
  margin-bottom: var(--space-md);
  text-align: right;
}

.fts-search-results-bottom {
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  margin-top: var(--space-md);
}

.fts-lexicon-search form {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fts-lexicon-search input[type="text"] {
  width: 210px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.65);
  color: var(--text);
  font-family: var(--font-body);
}

.fts-lexicon-search input[type="submit"] {
  min-height: 36px;
}

.fts-lexicon-search-results {
  display: grid;
  gap: var(--space-sm);
}

.fts-lexicon-search-results a {
  color: var(--link);
}

.fts-lexicon-search-results a:hover {
  color: var(--gold);
}

.fts-lexicon-search-card {
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: var(--surface);
}

.fts-lexicon-search-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(201,168,76,.15);
}

.fts-lexicon-search-title {
  color: var(--link);
  font-family: var(--font-title);
  font-size: 24px;
  font-weight: 400;
}

.fts-lexicon-search-title:hover {
  color: var(--gold);
}

.fts-lexicon-search-category {
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-lexicon-search-preview {
  color: var(--text-muted);
  line-height: 1.8;
}

.fts-thread-search {
  margin-bottom: 24px;
}

.fts-thread-search form {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
}

.fts-thread-search__input {
  width: 260px;
  height: 38px;
  padding: 0 14px;
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 14px;
}

.fts-thread-search__input:focus {
  outline: none;
  border-color: var(--accent);
}

.fts-thread-search__button {
  height: 38px;
  padding: 0 16px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: .25s ease;
}

.fts-thread-search__button:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

/* ==========================================================
   17. LOGIN & REGISTRATION
   ========================================================== */

.fts-login-page {
	width: min(620px, calc(100% - 48px));
	margin: 48px auto;
}

.fts-login-form,
.fts-login-modal {
	padding: 34px 38px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-login-form__head,
.fts-login-modal__head {
	margin-bottom: 24px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--border);
}

.fts-login-form__head h1,
.fts-login-modal__head h2 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(36px, 5vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-login-form__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 24px;
	padding-top: 18px;
	border-top: 1px solid var(--border);
}

.fts-login-form .textbox,
.fts-login-modal .textbox {
	width: 100%;
}

.fts-register-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-register-hero,
.fts-register-form {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-register-hero {
	padding: 34px 38px;
}

.fts-register-hero h1 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-register-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--border);
}

.fts-register-panel {
	padding: 32px 34px;
	background: var(--surface);
}

.fts-register-panel h2 {
	margin: 0 0 24px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: 38px;
	font-weight: 400;
	line-height: 1;
}

.fts-register-two {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.fts-register-form .textbox,
.fts-register-form select,
.fts-register-form textarea {
	width: 100%;
	min-height: 40px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
	box-sizing: border-box;
}

.fts-register-actions {
	display: flex;
	justify-content: flex-end;
	padding: 22px 34px;
	border-top: 1px solid var(--border);
}

.fts-agreement-page {
	width: var(--container);
	margin: 48px auto;
}

.fts-agreement-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-agreement-head {
	padding: 34px 38px 26px;
	border-bottom: 1px solid var(--border);
}

.fts-agreement-head h1 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-agreement-content {
	padding: 34px 38px;
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-agreement-content p {
	margin: 0 0 18px;
}

.fts-agreement-content p:last-child {
	margin-bottom: 0;
}

.fts-agreement-content strong {
	color: var(--accent);
}

.fts-agreement-actions {
	display: flex;
	justify-content: flex-end;
	padding: 22px 38px;
	border-top: 1px solid var(--border);
}

/* ==========================================================
   19. LEXICON
   ========================================================== */

.fts-lexicon {
  padding: var(--space-xl) 0;
}

.fts-lexicon-adminbar {
  position: sticky;
  top: 84px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  width: 100%;
  margin-bottom: var(--space-xl);
  padding: 12px 16px;
  background: rgba(253,250,246,.9);
  border: 1px solid rgba(201,168,76,.35);
  backdrop-filter: blur(14px);
}

.fts-lexicon-adminbar-brand, .fts-lexicon-adminbar-links a {
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-lexicon-adminbar-brand {
  color: var(--gold);
}

.fts-lexicon-adminbar-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.fts-lexicon-adminbar-links a:hover {
  color: var(--gold);
}

.fts-lexicon-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg);
  align-items: start;
  width: 100%;
}

.fts-lexicon-card {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: var(--space-lg);
  box-shadow: 0 12px 30px rgba(0,0,0,.04);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  height: 100%;
}

.fts-lexicon-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--space-sm);
  padding-bottom: var(--space-sm);
  border-bottom: 1px solid rgba(201,168,76,.18);
}

.fts-lexicon-card-head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--text);
}

.fts-lexicon-card-options {
  font-size: 11px;
  white-space: nowrap;
  display: flex;
  gap: 6px;
  align-items: center;
}

.fts-lexicon-card-options a {
  color: var(--gold);
}

.fts-lexicon-card-options a:hover {
  color: var(--link);
}

.fts-lexicon-card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fts-lexicon-entry {
  padding: var(--space-xl) 0;
}

.fts-lexicon-entry-card {
  max-width: 100%;
}

.fts-lexicon-entry-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid rgba(201,168,76,.2);
}

.fts-lexicon-entry-head h1 {
  margin: 0;
  font-family: var(--font-title);
  font-size: clamp(34px,4vw,54px);
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fts-lexicon-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--border);
  color: var(--gold);
  font-size: 22px;
  text-decoration: none;
}

.fts-lexicon-close:hover {
  border-color: var(--gold);
  background: rgba(201,168,76,.08);
}

.fts-lexicon-entry-options {
  font-family: var(--font-ui);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .12em;
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: var(--space-lg);
}

.fts-lexicon-entry-options a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid rgba(201,168,76,.35);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-lexicon-entry-content {
  max-width: 85ch;
  font-size: 15px;
  line-height: 1.9;
}

.fts-lexicon-item {
  padding: 10px 0;
  border-bottom: 1px solid rgba(201,168,76,.12);
}

.fts-lexicon-item:last-child {
  border-bottom: 0;
}

.fts-lexicon-item-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.fts-lexicon-item-main a {
  color: var(--link);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
}

.fts-lexicon-item-main a:hover {
  color: var(--gold);
}

.fts-lexicon-subitem {
  padding: 6px 0 6px 18px;
  position: relative;
}

.fts-lexicon-subitem::before {
  content: "—";
  position: absolute;
  left: 0;
  color: rgba(201,168,76,.6);
}

.fts-lexicon-subitem a {
  color: var(--text-muted);
  font-size: 13px;
}

.fts-lexicon-subitem a:hover {
  color: var(--gold);
}

.fts-lexicon-option {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid rgba(201,168,76,.35);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}

.fts-lexicon-option:hover {
  background: rgba(201,168,76,.12);
  border-color: var(--gold);
  color: var(--text);
}

.fts-lexicon-option-danger:hover {
  border-color: #b85c5c;
  color: #b85c5c;
}

.fts-lexicon-entry-options a:hover {
  background: rgba(201,168,76,.12);
  border-color: var(--gold);
  color: var(--text);
}

.fts-lexicon-form-card {
  width: 100%;
}

.fts-lexicon-form {
  display: grid;
  gap: var(--space-md);
}

.fts-lexicon-form input.textbox, .fts-lexicon-form select, .fts-lexicon-form textarea {
  width: 100%;
  max-width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.65);
  color: var(--text);
  font-family: var(--font-body);
}

.fts-lexicon-intro {
  margin-bottom: var(--space-lg);
  color: var(--text-muted);
  line-height: 1.8;
}

.fts-lexicon-contents {
  display: grid;
  gap: var(--space-md);
}

.fts-lexicon-contents > div {
  padding: var(--space-md);
  border: 1px solid rgba(201,168,76,.15);
  background: rgba(255,255,255,.12);
}

.fts-lexicon-letter {
  border: 1px solid var(--border);
  background: var(--surface);
}

.fts-lexicon-letter-head {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(201,168,76,.18);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.fts-lexicon-letter-body {
  padding: var(--space-md);
  display: grid;
  gap: 6px;
}

.fts-lexicon-content-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  padding: 8px 0;
  border-bottom: 1px solid rgba(201,168,76,.08);
}

.fts-lexicon-content-item:last-child {
  border-bottom: 0;
}

.fts-lexicon-content-link {
  color: var(--link);
  font-size: 14px;
  line-height: 1.6;
}

.fts-lexicon-content-link:hover {
  color: var(--gold);
}

.fts-lexicon-content-category {
  flex-shrink: 0;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* ==========================================================
   20. FACECLAIM
   ========================================================== */

.fts-faceclaim-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  display: grid;
  gap: var(--space-md);
}

.fts-faceclaim-block {
  border: 1px solid var(--border);
  background: rgba(255,255,255,.18);
}

.fts-faceclaim-block h2 {
  margin: 0;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(201,168,76,.28);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.fts-faceclaim-list {
  padding: var(--space-md);
  color: var(--text-muted);
  line-height: 1.9;
}

.fts-faceclaim-list a {
  color: var(--link);
}

.fts-faceclaim-list a:hover {
  color: var(--gold);
}

.fts-faceclaim-columns, .fts-faceclaim-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fts-faceclaim-columns {
  margin-bottom: var(--space-md);
  border: 1px solid var(--border);
}

.fts-faceclaim-gender {
  padding: 12px 14px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-align: center;
  text-transform: uppercase;
}

.fts-faceclaim-gender:first-child, .fts-faceclaim-cols > div:first-child {
  border-right: 1px solid var(--border);
}

.fts-faceclaim-row {
  border: 1px solid var(--border);
  background: rgba(255,255,255,.18);
}

.fts-faceclaim-row h2 {
  margin: 0;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(201,168,76,.28);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.fts-faceclaim-cols > div {
  padding: var(--space-md);
  line-height: 1.9;
  color: var(--text-muted);
}

.fts-faceclaim-cols a {
  color: var(--link);
}

.fts-faceclaim-cols a:hover {
  color: var(--gold);
}

/* ==========================================================
   21. FAMILY
   ========================================================== */

.fts-family-page {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: var(--space-lg);
  align-items: start;
  padding: var(--space-lg) 0;
}

.fts-family-nav {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 0;
  overflow: hidden;
}

.fts-family-nav-head {
  padding: var(--space-sm) var(--space-md);
  border-bottom: 2px solid rgba(201,168,76,.35);
  background: var(--surface);
}

.fts-family-nav-head--sub {
  margin-top: var(--space-sm);
  border-top: 1px solid var(--border);
}

.fts-family-nav-links {
  display: flex;
  flex-direction: column;
}

.fts-family-nav-links a {
  display: block;
  padding: 9px var(--space-md);
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 12px;
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  transition: color .15s, background .15s;
}

.fts-family-nav-links a:last-child {
  border-bottom: none;
}

.fts-family-nav-links a:hover {
  color: var(--gold);
  background: rgba(201,168,76,.06);
}

.fts-family-nav-section {
  border-top: 1px solid var(--border);
}

/* ==========================================================
   22. LISTS
   ========================================================== */

.fts-checkline input, .fts-checklist input {
  margin-top: 4px;
}

.fts-checklist {
  display: grid;
  gap: 8px;
}

.fts-folder-list input.textbox {
  width: 100%;
  box-sizing: border-box;
}

.fts-res-list {
  display: grid;
  gap: var(--space-md);
}

.fts-res-mod-list {
  display: grid;
  gap: var(--space-sm);
}

.fts-lists-page {
	width: var(--container);
	margin: 48px auto;
}

.fts-lists-content {
	padding: 34px 38px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-lists-content h1 {
	margin: 0 0 18px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(34px, 4vw, 58px);
	font-weight: 400;
	line-height: 1;
}

.fts-lists-description {
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-lists-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 18px;
	margin-top: 26px;
}

.fts-list-card a {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: center;

	min-height: 130px;
	padding: 24px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);

	color: var(--text);
	font-family: var(--font-title);
	font-size: 32px;
	font-weight: 400;
	line-height: 1.1;
	text-align: center;

	transition: .25s ease;
}

.fts-list-card a::before {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px solid transparent;
	pointer-events: none;
	transition: .25s ease;
}

.fts-list-card a:hover {
	color: var(--accent);
	border-color: var(--accent);
	transform: translateY(-3px);
}

.fts-list-card a:hover::before {
	border-color: color-mix(in srgb, var(--accent) 35%, transparent);
}

.fts-list-card span {
	display: block;
	max-width: 100%;
}

.lists,
.lists_content,
.lists_content-description {
	width: 100%;
}

.lists_content-description {
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-lists-entries {
	display: grid;
	gap: 14px;
	margin-top: 28px;
}

.fts-lists-entries .lists_content-bit {
	display: grid;
	gap: 14px;
}

.fts-lists-entries a {
	color: var(--accent);
}

.fts-credits-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 10px 18px;
}

.fts-credits-list span {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--border);
	color: var(--text);
	font-size: 13px;
}

.fts-credits-list em {
	color: var(--text-muted);
	font-style: normal;
	text-align: right;
}

.fts-checklist {
	display: grid;
	gap: 10px;
	margin-bottom: 24px;
	color: var(--text-muted);
	font-size: 13px;
	line-height: 1.6;
}

/* ==========================================================
   23. JOBLISTE
   ========================================================== */

.fts-joblist-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-joblist-desc {
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-joblist-actions {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.fts-job-form,
.fts-job-join {
    width: 100%;
}

.fts-joblist-actions a,
.fts-joblist-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0 16px;
	border: 1px solid var(--border);
	border-radius: 999px;
	color: var(--text);
	background: var(--surface);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fts-joblist-actions a:hover,
.fts-joblist-actions .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-joblist-head {
	padding: 30px 34px 22px;
	border-bottom: 1px solid var(--border);
}

.fts-joblist-filter {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 22px 34px;
	border-bottom: 1px solid var(--border);
}

.fts-joblist-filter label {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-joblist-filter select {
	height: 38px;
	min-width: 240px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.fts-joblist-filter .button,
.fts-joblist-filter input[type="submit"] {
	height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-joblist-filter .button:hover,
.fts-joblist-filter input[type="submit"]:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-joblist-pages {
	padding: 18px 34px;
	text-align: center;
}

.fts-joblist-results {
	padding: 0 34px 34px;
}

.fts-job-form {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-job-form__head {
	padding: 26px 30px 18px;
	border-bottom: 1px solid var(--border);
}

.fts-job-form__head h2 {
	margin: 0;
	font-family: var(--font-title);
	font-size: 36px;
	font-weight: 400;
}

.fts-job-form__grid {
	display: grid;
	grid-template-columns: 1fr 1.4fr 1fr;
	gap: 18px;
	padding: 24px 30px;
}

.fts-job-form__field {
	display: grid;
	gap: 8px;
}

.fts-job-form__field label {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-job-form textarea,
.fts-job-form select {
	width: 100%;
	min-height: 42px;
	padding: 10px 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
	font-family: var(--font-body);
}

.fts-job-form textarea#desc {
	min-height: 90px;
}

.fts-job-form__actions {
	display: flex;
	justify-content: flex-end;
	padding: 18px 30px;
	border-top: 1px solid var(--border);
}

.fts-job-form .button {
	min-height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-job-form .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-job-join {
	display: grid;
	grid-template-columns: 70px 1fr;
	align-items: center;
	gap: 22px;

	padding: 28px 34px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-job-join__icon {
	width: 56px;
	height: 56px;

	display: flex;
	align-items: center;
	justify-content: center;

	border-radius: 50%;
	border: 1px solid var(--border);

	color: var(--accent);
	font-size: 22px;

	background: var(--surface-soft);
}

.fts-job-join__title {
	margin-bottom: 16px;

	font-family: var(--font-title);
	font-size: 40px;
	line-height: 1;
	color: var(--text);
}

.fts-job-join__fields {
	display: grid;
	grid-template-columns: 1fr 1fr auto;
	gap: 16px;
	align-items: end;
}

.fts-job-join__field {
	display: grid;
	gap: 8px;
}

.fts-job-join__field label {
	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-job-join input[type="text"],
.fts-job-join select {
	height: 46px;
	padding: 0 14px;

	background: var(--surface-soft);
	border: 1px solid var(--border);

	color: var(--text);
	font-family: var(--font-body);
}

.fts-job-join .button {
	height: 46px;
	padding: 0 18px;

	border-radius: 999px;
	border: 1px solid var(--border);

	background: transparent;
	color: var(--text);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fts-job-join .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

/* ==========================================================
   24. INPLAY SCENES
   ========================================================== */

.scenemgr-indexbox {
  border: 1px solid rgba(201,168,76,.25);
  background: rgba(255,255,255,.02);
}

.scenemgr-indexbox > summary {
  padding: 18px 20px;
  border-bottom: 1px solid rgba(201,168,76,.25);
  font-family: var(--font-title);
  font-size: 20px;
}

.smgr-charblock {
  border-top: 1px solid rgba(201,168,76,.15);
}

.smgr-charblock > summary {
  padding: 16px 20px;
  transition: all .25s ease;
}

.smgr-charblock > summary:hover {
  background: rgba(201,168,76,.05);
}

.smgr-charblock .thead {
  background: transparent;
  border-top: 1px solid rgba(201,168,76,.25);
  border-bottom: 1px solid rgba(201,168,76,.25);
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
}

.smgr-charblock .trow1, .smgr-charblock .trow2 {
  background: transparent;
  border-bottom: 1px solid rgba(201,168,76,.08);
}

.smgr-charblock td {
  border-right: 1px solid rgba(201,168,76,.08);
}

.smgr-charblock td:last-child {
  border-right: none;
}

.smgr-charblock td strong a {
  color: var(--link);
  font-size: 18px;
}

.smgr-charblock td strong a:hover {
  color: var(--accent);
}

.smgr-index-sub {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(201,168,76,.08);
  line-height: 1.7;
}

.smgr-status {
  border: 1px solid rgba(201,168,76,.25);
  background: rgba(201,168,76,.08);
  color: var(--accent);
  padding: 5px 12px;
  border-radius: 30px;
}

.scenemgr-indexbox .tfoot {
  border-top: 1px solid rgba(201,168,76,.25);
  padding: 14px 20px !important;
}

.scenemgr-indexbox .tfoot a {
  color: var(--accent);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 11px;
}

.scene-info {
	margin: 0 0 28px;
	padding: 0 0 18px;
	border-bottom: 1px solid var(--border);
}

.scene-info__body {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 18px 28px;
}

.scene-info__row {
	display: grid;
	gap: 4px;
	align-content: start;
}

.scene-info__row strong {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.scene-info__row span {
	color: var(--text);
	font-size: 14px;
	line-height: 1.5;
}

.scene-info__row--characters {
	grid-column: 1;
}

.scene-info__row--setting {
	grid-column: 2;
}

.scene-info__row--date {
	grid-column: 3;
}

.scene-info__body > :not(.scene-info__row--characters):not(.scene-info__row--setting):not(.scene-info__row--date) {
	grid-column: 1 / -1;
}

.scene-info__field {
	display: grid;
	gap: 4px;
}

.scene-info__field strong {
	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 9px;
	font-weight: 800;

	letter-spacing: .14em;
	text-transform: uppercase;
}

.scene-info__field span {
	color: var(--text);
	font-size: 14px;
	line-height: 1.5;
}

.fts-scenes-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-scenes-panel__head {
	display: flex;
	justify-content: space-between;
	align-items: end;
	gap: 20px;

	padding: 28px 34px;
	border-bottom: 1px solid var(--border);
}

.fts-scenes-sort {
	display: flex;
	gap: 10px;
	align-items: center;
}

.fts-scenes-sort select {
	height: 38px;
	padding: 0 12px;

	background: var(--surface-soft);
	color: var(--text);

	border: 1px solid var(--border);
}

.fts-scenes-sort .button {
	height: 38px;
	padding: 0 16px;

	background: transparent;
	color: var(--text);

	border: 1px solid var(--border);
	border-radius: 999px;

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fts-scenes-sort .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-scenes-characters {
	padding: 28px 34px;
}

.fts-scenes-settings {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-scenes-settings__head {
	padding: 26px 32px 18px;
	border-bottom: 1px solid var(--border);
}

.fts-scenes-settings__head h2 {
	margin: 0;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(30px, 4vw, 46px);
	font-weight: 400;
	line-height: 1;
}

.fts-scenes-settings__body {
	display: grid;
	gap: 18px;
	padding: 26px 32px;
}

.fts-scenes-settings__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 140px;
	gap: 24px;
	align-items: center;
}

.fts-scenes-settings__row strong {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-scenes-settings__row p,
.fts-scenes-settings__footer p {
	margin: 6px 0 0;
	color: var(--text-muted);
	font-size: 13px;
	line-height: 1.7;
}

.fts-scenes-settings input[type="number"] {
	width: 100%;
	height: 40px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.fts-scenes-settings__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 18px;

	padding-top: 18px;
	border-top: 1px solid var(--border);
}

.fts-scenes-settings .button {
	min-height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-scenes-settings .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-scenes-overview-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-scenes-filter {
	padding: 30px 34px;
}

.fts-scenes-filter__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.fts-scenes-filter__field {
	display: grid;
	gap: 8px;
}

.fts-scenes-filter__field label {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-scenes-filter select,
.fts-scenes-filter input.textbox,
.fts-scenes-filter .textbox {
	width: 100%;
	height: 40px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.fts-scenes-filter__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--border);
}

.fts-scenes-filter .button {
	height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-scenes-filter .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-scenes-overview-list__head {
	padding: 28px 34px 22px;
	border-bottom: 1px solid var(--border);
}

.fts-scenes-overview-sort {
	padding: 18px 34px;
	border-bottom: 1px solid var(--border);
}

.fts-scenes-overview-results {
	padding: 28px 34px;
}

.fts-scenes-overview-pages {
	padding: 18px 34px 28px;
	text-align: center;
}

/* ==========================================================
   25. INPLAY QUOTES
   ========================================================== */

.fts-quote {
  margin: 50px 0;
}

.fts-quote__inner {
  position: relative;
  padding: 42px;
  background: var(--surface);
  border: 1px solid var(--border);
  text-align: center;
}

.fts-quote__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-quote__meta span {
  color: var(--accent);
}

.fts-quote__meta a {
  color: var(--text-muted);
}

.fts-quote__meta a:hover {
  color: var(--accent);
}

.fts-quote__author {
  margin: 0 0 22px;
  font-family: var(--font-title);
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 400;
  line-height: 1;
  color: var(--text);
}

.fts-quote__author::first-letter {
  color: var(--accent);
}

.fts-quote__text {
  max-width: 850px;
  margin: 0 auto 24px;
  color: var(--text-muted);
  font-size: 17px;
  line-height: 1.9;
  font-style: italic;
  border: 0;
}

.fts-quote__text::before {
  content: "❝";
  display: block;
  margin-bottom: 14px;
  color: var(--accent);
  font-size: 42px;
  line-height: 1;
}

.fts-quote__scene {
  color: var(--text-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fts-quote-card {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fts-quote-author {
  color: var(--gold);
  font-family: var(--font-title);
  font-size: 28px;
  text-align: center;
}

.fts-quote-text {
  margin: 0;
  padding: 0;
  border: none;
  color: var(--text);
  font-size: 15px;
  line-height: 1.9;
  font-style: normal;
}

.fts-quote-scene {
  color: var(--text-muted);
  font-size: 13px;
}

.fts-quote-link {
  margin-top: auto;
}

.fts-quote-link a {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 11px;
}

#quickreply_multiquote {
  margin-top: 10px;
  padding: 12px 14px;
  background: var(--surface-soft);
  border: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 12px;
}

.ip-quotes-pop {
	position: fixed;
	inset: 0;
	z-index: 99999;

	display: none;

	background: rgba(0,0,0,.65);
	backdrop-filter: blur(3px);
}

.ip-quotes-pop:target {
	display: grid;
	place-items: center;
}

.ip-quotes-popup {
	width: min(700px, calc(100vw - 40px));

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: 0 25px 60px rgba(0,0,0,.35);
}

.ip-quotes-popup__head {
	padding: 24px 28px;
	border-bottom: 1px solid var(--border);
}

.ip-quotes-popup__head h3 {
	margin: 0;

	color: var(--text);
	font-family: var(--font-title);
	font-size: 42px;
	font-weight: 400;
	line-height: 1;
}

.ip-quotes-popup__body {
	padding: 28px;
	display: grid;
	gap: 12px;
}

.ip-quotes-popup__body label {
	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.ip-quotes-popup textarea {
	width: 100%;
	min-height: 220px;

	padding: 16px;

	background: var(--surface-soft);
	color: var(--text);

	border: 1px solid var(--border);

	font-family: inherit;
	font-size: 14px;
	line-height: 1.8;

	resize: vertical;
}

.ip-quotes-popup__footer {
	display: flex;
	justify-content: flex-end;

	padding: 20px 28px;
	border-top: 1px solid var(--border);
}

.ip-quotes-popup .button {
	height: 40px;
	padding: 0 18px;

	background: transparent;
	color: var(--text);

	border: 1px solid var(--border);
	border-radius: 999px;

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ip-quotes-popup .button:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-quotes-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-quotes-filter {
	padding: 28px 34px;
}

.fts-quotes-filter__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.fts-quotes-filter__field {
	display: grid;
	gap: 8px;
}

.fts-quotes-filter__field label {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-quotes-filter select {
	width: 100%;
	height: 40px;
	padding: 0 12px;
	background: var(--surface-soft);
	color: var(--text);
	border: 1px solid var(--border);
}

.fts-quotes-filter__actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--border);
}

.fts-quotes-filter .button,
.fts-quotes-filter input[type="submit"] {
	height: 38px;
	padding: 0 16px;
	background: transparent;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: 999px;
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
}

.fts-quotes-filter .button:hover,
.fts-quotes-filter input[type="submit"]:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.fts-quotes-list {
	padding: 34px 38px;
}

.fts-quote-entry {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 22px;

	padding: 24px 0;
	border-bottom: 1px solid var(--border);
}

.fts-quote-entry:first-child {
	padding-top: 0;
}

.fts-quote-entry:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.fts-quote-entry__avatar img {
	width: 90px;
	height: 90px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.fts-quote-entry__head {
	display: flex;
	justify-content: space-between;
	gap: 16px;

	margin-bottom: 14px;

	color: var(--text-muted);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-quote-entry__head strong {
	color: var(--accent);
}

.fts-quote-entry blockquote {
	margin: 0;
	padding: 0;

	border: 0;

	color: var(--text);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-quote-entry__foot {
	margin-top: 16px;
	padding-top: 12px;

	border-top: 1px solid var(--border);

	color: var(--text-muted);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fts-quote-entry__foot a {
	color: var(--accent);
}

/* ==========================================================
   26. PLAYER DIRECTORY
   ========================================================== */

.fts-playerdirectory-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-playerdirectory-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}

.fts-playerdirectory-stats > div {
	padding: 18px;
	background: var(--surface-soft);
	border: 1px solid var(--border);
	text-align: center;

	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.fts-playerdirectory-panel {
	padding: 30px 34px;
}

.fts-playerdirectory-list {
	display: grid;
	gap: 18px;
}

.fts-playerdirectory-pages {
	margin-top: 24px;
	text-align: center;
}

.fts-player-card {
	background: var(--surface-soft);
	border: 1px solid var(--border);
	padding: 26px;
}

.fts-player-card + .fts-player-card {
	margin-top: 18px;
}

.fts-player-card__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;

	padding-bottom: 18px;
	margin-bottom: 18px;

	border-bottom: 1px solid var(--border);
}

.fts-player-card__head h2 {
	margin: 0;

	color: var(--text);

	font-family: var(--font-title);
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 400;
	line-height: 1;
}

.fts-player-card__count {
	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-player-card__meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;

	margin-bottom: 24px;
}

.fts-player-card__meta-item {
	padding: 12px 14px;

	background: var(--surface);
	border: 1px solid var(--border);
}

.fts-player-card__meta-item span {
	display: block;

	margin-bottom: 4px;

	color: var(--accent);

	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.fts-player-card__meta-item strong {
	color: var(--text);
	font-size: 13px;
	font-weight: 400;
}

.fts-player-card__characters {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.fts-player-card__characters {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 14px;
}

.fts-player-character {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 14px;
	align-items: center;

	padding: 14px;

	background: var(--surface);
	border: 1px solid var(--border);
}

.fts-player-character__avatar img {
	width: 90px;
	height: 120px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.fts-player-character__body h3 {
	margin: 0 0 8px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
}

.fts-player-character__stat {
	color: var(--text-muted);
	font-size: 12px;
	line-height: 1.5;
}

.fts-player-character__link {
	margin-top: 10px;
}

.fts-player-character__link a {
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* ==========================================================
   27. TEAM & CREDITS
   ========================================================== */

.fts-credits-page {
	width: var(--container);
	margin: 48px auto;
}

.fts-credits-panel {
	padding: 38px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-credits-panel h1 {
	margin: 0 0 24px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-credits-intro {
	max-width: 86ch;
	margin-bottom: 30px;
	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	text-align: justify;
	hyphens: auto;
}

.fts-credits-intro strong {
	color: var(--accent);
}

.fts-credits-grid {
	display: grid;
	gap: 18px;
}

.fts-credits-card {
	padding: 26px 28px;
	background: var(--surface-soft);
	border: 1px solid var(--border);
}

.fts-credits-card h2 {
	margin: 0 0 16px;
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.fts-credits-card p {
	margin: 0;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 1.8;
	text-align: justify;
}

.fts-credits-card a {
	color: var(--accent);
}

.fts-team-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-team-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}

.fts-team-card {
	padding: 28px;
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-team-card img {
	display: block;
	width: 110px;
	height: 110px;
	margin: 0 auto 20px;
	object-fit: cover;
	border-radius: 50%;
	border: 1px solid var(--border);
	filter: grayscale(100%);
}

.fts-team-card h2 {
	margin: 0 0 18px;
	color: var(--text);
	font-family: var(--font-title);
	font-size: 42px;
	font-weight: 400;
	line-height: 1;
	text-align: center;
}

.fts-team-card h3 {
	margin: 24px 0 10px;
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-team-card p,
.fts-team-card li {
	color: var(--text-muted);
	font-size: 14px;
	line-height: 1.8;
	text-align: justify;
}

.fts-team-card ul {
	margin: 0;
	padding-left: 18px;
}

.fts-team-card a {
	color: var(--accent);
}

.fts-team-card--former {
	opacity: .85;
}

/* ==========================================================
   28. CONTACT
   ========================================================== */

.fts-contact-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-contact-hero,
.fts-contact-form {
	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-contact-hero {
	padding: 34px 38px;
}

.fts-contact-hero h1 {
	margin: 0 0 16px;

	color: var(--text);
	font-family: var(--font-title);
	font-size: clamp(38px, 5vw, 68px);
	font-weight: 400;
	line-height: 1;
}

.fts-contact-hero p {
	margin: 0;

	color: var(--text-muted);
	font-size: 15px;
	line-height: 1.9;
	max-width: 70ch;
}

.fts-contact-form {
	padding: 34px 38px;

	display: grid;
	gap: 24px;
}

.fts-contact-form .textbox,
.fts-contact-form .textarea,
.fts-contact-form select {
	width: 100%;

	padding: 12px 14px;

	background: var(--surface-soft);
	color: var(--text);

	border: 1px solid var(--border);
	box-sizing: border-box;
}

.fts-contact-form .textarea {
	min-height: 220px;
	resize: vertical;
}

.fts-contact-submit {
	display: flex;
	justify-content: flex-end;
	padding-top: 10px;
	border-top: 1px solid var(--border);
}

.fts-contact-submit .button {
	min-width: 180px;
}

/* ==========================================================
   29. STATS
   ========================================================== */

.fts-boardstats {
  margin: 54px 0;
}

.fts-boardstats__head {
  text-align: center;
  margin-bottom: 24px;
}

.fts-boardstats__head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 400;
}

.fts-boardstats__head a {
  color: var(--text);
}

.fts-boardstats__head a::first-letter {
  color: var(--accent);
}

.fts-boardstats__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.fts-boardstats__box {
  padding: 22px 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.7;
}

.fts-boardstats__box h3 {
  margin: 0 0 12px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-boardstats__box .tcat, .fts-boardstats__box .trow1, .fts-boardstats__box td {
  display: block;
  padding: 0;
  background: transparent;
  border: 0;
}

.fts-boardstats__box table, .fts-boardstats__box tbody, .fts-boardstats__box tr {
  display: block;
  width: 100%;
}

.fts-boardstats__box .smalltext {
  font-size: inherit;
  color: inherit;
}

.fts-boardstats__link {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--accent);
  font-size: 12px;
}

.fts-boardstats__box--sisters {
  grid-column: 1 / -1;
  text-align: center;
}

.fts-boardstats__footer {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  padding: 14px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.fts-boardstats__footer a {
  color: var(--accent);
}

.fts-stats-page {
	width: var(--container);
	margin: 48px auto;
	display: grid;
	gap: 24px;
}

.fts-stats-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.fts-stats-card {
	padding: 28px 32px;
}

.fts-stats-card--wide {
	grid-column: 1 / -1;
}

.fts-stats-card h2,
.fts-stats-popular h3 {
	margin: 0 0 18px;
	color: var(--accent);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.fts-stats-card p {
	margin: 0 0 10px;
	color: var(--text-muted);
	font-size: 14px;
	line-height: 1.7;
}

.fts-stats-card strong {
	color: var(--text);
}

.fts-stats-popular header {
	padding: 30px 34px 22px;
	border-bottom: 1px solid var(--border);
}

.fts-stats-popular__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: var(--border);
}

.fts-stats-popular__grid > div {
	padding: 28px 32px;
	background: var(--surface);
}

.fts-stats-popular a {
	color: var(--accent);
}

/* ==========================================================
   30. ACCOUNTSWITCHER
   ========================================================== */

.fts-usernav a, .fts-usernav-list a, .fts-accountswitcher {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 0 16px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all .25s ease;
}

.fts-accountswitcher {
  position: relative;
}

.fts-as-header {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.fts-as-current {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.fts-as-current img {
  width: 18px;
  height: 18px;
  object-fit: cover;
  border-radius: 50%;
}

.fts-as-menu {
  position: relative;
  display: inline-block;
}

.fts-as-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 16px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.fts-as-button:hover {
  background: var(--surface-soft);
  color: var(--accent);
}

.fts-as-popup {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  min-width: 220px;
  background: var(--surface);
  border: 1px solid var(--border);
  z-index: 1000;
  box-shadow: 0 10px 30px rgba(0,0,0,.15);
}

.fts-as-popup ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.fts-as-popup li {
  margin: 0;
  padding: 0;
}

.fts-as-popup a {
  display: block;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
  text-transform: none;
  letter-spacing: 0;
}

.fts-as-popup a:last-child {
  border-bottom: 0;
}

.fts-as-popup {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 9999;

	display: none;

	width: 260px;
	padding: 10px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-as-popup li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.fts-as-popup a,
.fts-as-popup .switchlink {
	display: flex;
	align-items: center;
	gap: 10px;

	width: 100%;
	min-height: 42px;
	padding: 8px 10px;

	color: var(--text);
	background: transparent;
	border: 1px solid transparent;

	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.fts-as-popup a:hover,
.fts-as-popup .switchlink:hover {
	color: var(--accent);
	background: var(--surface-soft);
	border-color: var(--border);
}

.fts-as-popup img {
	width: 28px;
	height: 28px;
	object-fit: cover;
	border: 1px solid var(--border);
}

.fts-as-popup .avatar {
	flex-shrink: 0;
}

.as_head_drop {
	margin: 0;
	padding: 0;
	list-style: none;
}

.as_head_drop .switchlink {
	display: flex;
	align-items: center;
	gap: 12px;

	padding: 10px 12px;

	color: var(--text);
	background: transparent;

	border: 1px solid transparent;
}

.as_head_drop .switchlink:hover {
	background: var(--surface-soft);
	border-color: var(--border);
	color: var(--accent);
}

.as_head_drop img {
	width: 34px;
	height: 34px;

	object-fit: cover;

	border: 1px solid var(--border);
	flex-shrink: 0;
}

.fts-as-popup,
.accountswitcher_header_popup {
	position: absolute;
	z-index: 99999;

	min-width: 260px;
	padding: 14px;

	background: var(--surface);
	border: 1px solid var(--border);
	box-shadow: var(--shadow-soft);
}

.fts-as-popup ul,
.accountswitcher_header_popup ul {
	display: grid;
	gap: 8px;

	margin: 0;
	padding: 0;

	list-style: none;
}

.as_head_drop .switchlink {
	display: flex;
	align-items: center;
	gap: 10px;

	width: 100%;
	padding: 9px 10px;

	background: var(--surface-soft);
	border: 1px solid var(--border);

	color: var(--text);
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.as_head_drop .switchlink:hover {
	color: var(--accent);
	border-color: var(--accent);
}

.as_head_drop img {
	width: 32px;
	height: 32px;
	object-fit: cover;
	border: 1px solid var(--border);
}

/* ==========================================================
   31. POPUPS
   ========================================================== */

.popup_item_container {
  display: block;
}

.popup_item {
  display: block;
  padding: 9px 12px;
  color: var(--text) !important;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.popup_item:hover {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  color: var(--accent) !important;
}

[id^="edit_post_"][id$="_popup"] {
  z-index: 999999 !important;
  position: absolute !important;
}

.jquery-modal.current {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================
   32. THEME OVERRIDES
   ========================================================== */

[data-theme="dark"] body {
  background: linear-gradient(rgba(7, 9, 15, 0.38), rgba(7, 9, 15, 0.58)), url(/images/background_dark.png) center top / cover fixed;
}

[data-theme="dark"] .fts-panel {
  box-shadow: 0 18px 70px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .fts-usercp input.textbox, [data-theme="dark"] .fts-usercp input[type="text"], [data-theme="dark"] .fts-usercp input[type="password"], [data-theme="dark"] .fts-usercp select, [data-theme="dark"] .fts-usercp textarea, [data-theme="dark"] .fts-field input.textbox, [data-theme="dark"] .fts-field textarea, [data-theme="dark"] .fts-field select {
  background: rgba(8, 15, 35, 0.85);
  color: #eae4da;
  border-color: rgba(212, 175, 55, 0.25);
}

[data-theme="dark"] .fts-topbar {
  background: rgba(13, 20, 35, 0.88);
}

[data-theme="dark"] .fts-hero-box {
  background: linear-gradient(90deg, rgba(13, 20, 35, 0.44), rgba(13, 20, 35, 0.18)), url(/images/head_dark.png) center / cover;
}

[data-theme="dark"] .fts-inplay {
  background: rgba(7, 9, 15, 0.84);
}

[data-theme="dark"] .fts-usercp fieldset {
  background: rgba(8, 15, 35, 0.72);
  border-color: rgba(212,175,55,.22);
}

[data-theme="dark"] .fts-search-box {
  background: rgba(8,15,35,.72);
}

[data-theme="dark"] .fts-search input.textbox, [data-theme="dark"] .fts-search select, [data-theme="dark"] .fts-search textarea {
  background: rgba(8,15,35,.85);
  color: var(--text);
  border-color: rgba(212,175,55,.25);
}

[data-theme="dark"] .fts-faceclaim-block {
  background: rgba(8,15,35,.72);
}

[data-theme="dark"] .fts-faceclaim-row {
  background: rgba(8,15,35,.72);
}

[data-theme="dark"] .fts-lexicon-adminbar {
  background: rgba(13,20,35,.9);
}

[data-theme="dark"] .fts-lexicon-search input[type="text"] {
  background: rgba(8,15,35,.85);
  border-color: rgba(212,175,55,.25);
}

[data-theme="dark"] .fts-lexicon-form input.textbox, [data-theme="dark"] .fts-lexicon-form select, [data-theme="dark"] .fts-lexicon-form textarea {
  background: rgba(8,15,35,.85);
  border-color: rgba(212,175,55,.25);
}

[data-theme="dark"] .site-footer__panel, .theme-dark .site-footer__panel, body.dark .site-footer__panel {
  background: rgba(8, 14, 27, .92);
  border-color: rgba(201, 168, 76, .24);
}

[data-theme="dark"] .site-footer__selects select, [data-theme="dark"] .site-footer__selects input[type="submit"], [data-theme="dark"] .site-footer__selects button, [data-theme="dark"] .site-footer__nav a, [data-theme="dark"] .site-footer__nav li a, [data-theme="dark"] .site-footer__top, .theme-dark .site-footer__selects select, .theme-dark .site-footer__selects input[type="submit"], .theme-dark .site-footer__selects button, .theme-dark .site-footer__nav a, .theme-dark .site-footer__nav li a, .theme-dark .site-footer__top, body.dark .site-footer__selects select, body.dark .site-footer__selects input[type="submit"], body.dark .site-footer__selects button, body.dark .site-footer__nav a, body.dark .site-footer__nav li a, body.dark .site-footer__top {
  background: rgba(5, 10, 22, .45);
  color: var(--ivory);
  border-color: rgba(201, 168, 76, .38);
}

[data-theme="light"] .site-footer__panel, .theme-light .site-footer__panel, body.light .site-footer__panel {
  background: rgba(245, 240, 233, .92);
  border-color: rgba(87, 73, 53, .22);
}

[data-theme="light"] .site-footer__selects select, [data-theme="light"] .site-footer__selects input[type="submit"], [data-theme="light"] .site-footer__selects button, [data-theme="light"] .site-footer__nav a, [data-theme="light"] .site-footer__nav li a, [data-theme="light"] .site-footer__top, .theme-light .site-footer__selects select, .theme-light .site-footer__selects input[type="submit"], .theme-light .site-footer__selects button, .theme-light .site-footer__nav a, .theme-light .site-footer__nav li a, .theme-light .site-footer__top, body.light .site-footer__selects select, body.light .site-footer__selects input[type="submit"], body.light .site-footer__selects button, body.light .site-footer__nav a, body.light .site-footer__nav li a, body.light .site-footer__top {
  background: rgba(255, 255, 255, .42);
  color: var(--text);
  border-color: rgba(87, 73, 53, .32);
}

[data-theme="dark"] .fts-forum-card, .theme-dark .fts-forum-card, body.dark .fts-forum-card {
  background: rgba(8, 14, 27, .92);
  border-color: rgba(201, 168, 76, .32);
}

[data-theme="dark"] .fts-forum-lastpost, [data-theme="dark"] .fts-forum-stats span, .theme-dark .fts-forum-lastpost, .theme-dark .fts-forum-stats span, body.dark .fts-forum-lastpost, body.dark .fts-forum-stats span {
  background: rgba(5, 10, 22, .55);
}

[data-theme="light"] .fts-forum-card, .theme-light .fts-forum-card, body.light .fts-forum-card {
  background: rgba(245, 240, 233, .92);
  border-color: rgba(87, 73, 53, .20);
}

[data-theme="light"] .fts-forum-lastpost, [data-theme="light"] .fts-forum-stats span, .theme-light .fts-forum-lastpost, .theme-light .fts-forum-stats span, body.light .fts-forum-lastpost, body.light .fts-forum-stats span {
  background: rgba(255, 255, 255, .55);
}

[data-theme="dark"] .book-post, .theme-dark .book-post, body.dark .book-post {
  background: rgba(8, 14, 27, .94);
  border-color: rgba(201, 168, 76, .24);
}

[data-theme="dark"] .book-post__author, .theme-dark .book-post__author, body.dark .book-post__author {
  background: linear-gradient( 180deg, rgba(13, 22, 42, .96), rgba(8, 14, 27, .96) );
}

[data-theme="dark"] .book-post__page, .theme-dark .book-post__page, body.dark .book-post__page {
  background: linear-gradient(90deg, rgba(0, 0, 0, .22), transparent 38px), rgba(8, 14, 27, .94);
}

[data-theme="light"] .book-post, .theme-light .book-post, body.light .book-post {
  background: rgba(245, 240, 233, .96);
  border-color: rgba(87, 73, 53, .20);
}

[data-theme="light"] .book-post__author, .theme-light .book-post__author, body.light .book-post__author {
  background: linear-gradient( 180deg, rgba(239, 231, 216, .96), rgba(245, 240, 233, .96) );
}

[data-theme="light"] .book-post__page, .theme-light .book-post__page, body.light .book-post__page {
  background: linear-gradient(90deg, rgba(87, 73, 53, .08), transparent 38px), rgba(250, 247, 241, .96);
}

/* ==========================================================
   33. RESPONSIVE
   ========================================================== */

@media (max-width: 900px) {
  .fts-profile-main-grid, .fts-profile-fields-half {
    grid-template-columns: 1fr;
  }

  .fts-character-stats {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .fts-tab-btn {
    padding: 8px 14px;
    font-size: 11px;
  }

  .fts-profile-hero-name {
    font-size: clamp(32px, 10vw, 56px);
  }
}

@media (max-width: 1023px) {
  .fts-nav {
    display: none;
  }

  .fts-hero-box, .fts-grid-2, .fts-grid-3, .fts-post {
    grid-template-columns: 1fr;
  }

  .fts-inplay {
    align-self: stretch;
  }
}

@media (max-width: 900px) {
  .fts-usercp-layout, .fts-usercp-summary-grid, .fts-form-grid, .fts-editor-layout, .fts-profile-intro, .fts-profile-main-grid {
    grid-template-columns: 1fr;
  }

  .fts-pm-list-head, .fts-pm-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 767px) {
  :root {
    --container: min(100% - 28px, 1240px);
  }

  .fts-topbar, .fts-topbar-inner {
    height: 60px;
  }

  .fts-logo {
    font-size: 18px;
  }

  .fts-actions {
    gap: 6px;
  }

  .fts-icon-btn {
    width: 34px;
    height: 34px;
  }

  .fts-hero {
    padding: var(--space-lg) 0;
  }

  .fts-panel {
    padding: var(--space-md);
  }

  .fts-title {
    font-size: 34px;
    letter-spacing: 0.08em;
  }

  .fts-memberbar-inner {
    grid-template-columns: 1fr;
    align-items: flex-start;
  }

  .fts-usernav, .fts-usernav-list {
    justify-content: flex-start;
  }

  .fts-subnav-inner {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .fts-forum-card {
    grid-template-columns: 1fr;
  }

  .fts-forum-meta {
    text-align: left;
  }
}

@media (max-width: 700px) {
  .fts-family-page {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .fts-search-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .fts-maps-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 800px) {
  .fts-faceclaim-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .fts-faceclaim-columns, .fts-faceclaim-cols {
    grid-template-columns: 1fr;
  }

  .fts-faceclaim-gender:first-child, .fts-faceclaim-cols > div:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }
}

@media (max-width: 1000px) {
  .fts-lexicon-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .fts-lexicon-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1320px) {
  .site-footer__top {
    right: 12px;
  }
}

@media (max-width: 900px) {
  .site-footer__panel {
    padding: 22px 18px 16px;
  }

  .site-footer__selects {
    justify-content: flex-start;
  }

  .site-footer__nav {
    justify-content: flex-start;
  }

  .site-footer__meta {
    flex-direction: column;
    text-align: center;
  }

  .site-footer__top {
    position: fixed;
    right: 18px;
    bottom: 18px;
    top: auto;
    transform: rotate(45deg);
    z-index: 50;
  }
}

@media (max-width: 850px) {
  .fts-forum-card {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 22px;
  }

  .fts-forum-card__side {
    align-content: start;
  }

  .fts-index-category__head .expcolimage {
    display: none;
  }
}

@media (max-width: 850px) {
  .thread-page {
    width: min(100% - 28px, 1180px);
    margin-top: 28px;
  }

  .thread-page__top, .thread-page__bottom, .thread-book__header, .thread-book__footer {
    flex-direction: column;
    align-items: flex-start;
  }

  .thread-page__actions {
    justify-content: flex-start;
  }

  .book-post {
    grid-template-columns: 1fr;
  }

  .book-post__author {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .book-post__author::after {
    display: none;
  }

  .book-post__page {
    padding: 28px 22px 22px;
  }

  .book-post__head {
    flex-direction: column;
  }

  .book-post__date {
    text-align: left;
  }

  .book-post__controls {
    justify-content: flex-start;
  }
}

@media (max-width: 850px) {
  .fts-boardstats__grid {
    grid-template-columns: 1fr;
  }

  .fts-boardstats__footer {
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 850px) {
  .fts-quickreply {
    width: min(100% - 28px, 1180px);
  }

  .fts-quickreply__body {
    grid-template-columns: 1fr;
    padding: 24px 20px;
  }

  .fts-quickreply__head {
    padding: 24px 20px 18px;
  }

  .fts-quickreply__footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 850px) {
  .thread-bottom {
    width: min(100% - 28px, 1180px);
  }

  .thread-bottom__forms form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 850px) {
  .compose-page {
    width: min(100% - 28px, 1180px);
  }

  .compose-panel__head, .compose-panel__body {
    padding-left: 22px;
    padding-right: 22px;
  }
}

@media (max-width: 900px) {
  .compose-editor-layout {
    grid-template-columns: 1fr;
  }

  .compose-editor-smilies {
    padding-left: 0;
    padding-top: 20px;
    border-left: 0;
    border-top: 1px solid var(--border);
  }
}

@media (max-width: 850px) {
  .compose-attachments summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .compose-attachments summary::after {
    margin-left: 18px;
  }
}

@media (max-width: 850px) {
  .compose-review-post {
    padding: 24px 20px;
  }
}

@media (max-width: 800px) {
  .ucp-option-card {
    flex-direction: column;
    align-items: flex-start;
  }

  .ucp-option-card__controls {
    width: 100%;
  }
}

@media (max-width: 700px) {
	.scene-info__body {
		grid-template-columns: 1fr;
	}

	.scene-info__row,
	.scene-info__body > * {
		grid-column: auto !important;
	}
}

@media (max-width: 850px) {
	.fts-lists-page {
		width: min(100% - 28px, 1180px);
		margin: 32px auto;
	}

	.fts-lists-content {
		padding: 24px 20px;
	}
}

@media (max-width: 560px) {
	.fts-lists-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.forum-meta {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 950px) {
	.forum-thread {
		grid-template-columns: 40px minmax(0, 1fr);
	}

	.forum-thread__stats,
	.forum-thread__lastpost {
		grid-column: 2;
		justify-items: start;
		text-align: left;
	}
}

@media (max-width: 850px) {
	.fts-joblist-page {
		width: min(100% - 28px, 1180px);
	}

	.fts-joblist-hero,
	.fts-joblist-head,
	.fts-joblist-filter,
	.fts-joblist-results,
	.fts-joblist-pages {
		padding-left: 22px;
		padding-right: 22px;
	}
}

@media (max-width: 900px) {

	.fts-job-join {
		grid-template-columns: 1fr;
	}

	.fts-job-join__fields {
		grid-template-columns: 1fr;
	}

	.fts-job-join__submit {
		justify-self: start;
	}
}

@media (max-width: 950px) {
	.fts-memberlist-table__head {
		display: none;
	}

	.fts-member-row {
		grid-template-columns: 60px minmax(0, 1fr);
	}

	.fts-member-row__meta,
	.fts-member-row__stat {
		text-align: left;
		grid-column: 2;
	}

	.fts-memberlist-search__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 750px) {
	.fts-scenes-settings__row,
	.fts-scenes-settings__footer {
		grid-template-columns: 1fr;
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (max-width: 800px) {
	.fts-playerdirectory-stats {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	.fts-credits-panel {
		padding: 26px 22px;
	}

	.fts-credits-list span {
		display: block;
	}
}

@media (max-width: 700px) {
	.fts-contact-hero,
	.fts-contact-form {
		padding: 24px;
	}
}

@media (max-width: 900px) {
	.fts-scenes-filter__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 750px) {
	.fts-quotes-filter__grid {
		grid-template-columns: 1fr;
	}

	.fts-quotes-hero,
	.fts-quotes-filter,
	.fts-quotes-list {
		padding-left: 22px;
		padding-right: 22px;
	}
}

@media (max-width: 650px) {
	.fts-quote-entry {
		grid-template-columns: 1fr;
	}

	.fts-quote-entry__avatar img {
		width: 70px;
		height: 70px;
	}
}

@media (max-width: 900px) {
	.fts-register-grid,
	.fts-register-two {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 850px) {
	.fts-stats-grid,
	.fts-stats-popular__grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 650px) {
	.fts-memberlist-cards {
		grid-template-columns: 1fr;
	}

	.fts-member-card__avatar,
	.fts-member-card__avatar img {
		height: 230px;
	}
}

/* ==========================================================
   99. LEGACY / SONSTIGES
   ========================================================== */

.fts-inline-link {
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 11px;
  font-weight: 600;
}

.fts-inline-link:hover {
  color: var(--text);
}

.fts-inline-fields {
  display: flex;
  gap: 8px;
  margin: 8px 0 14px;
}

.fts-category {
  display: grid;
  gap: var(--space-md);
}

.fts-post {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--space-lg);
}

.fts-post-author {
  background: var(--surface-soft);
}

.fts-avatar {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border: 1px solid var(--border);
  border-radius: 0;
}

.fts-post-body {
  max-width: 76ch;
  font-size: 15.5px;
  line-height: 1.85;
}

.fts-post-title {
  margin: 0 0 var(--space-lg);
  font-size: 34px;
}

.fts-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 18px;
  align-items: start;
}

.fts-editor-smilies {
  order: 2;
}

.fts-editor-smilies table {
  width: 100%;
}

.fts-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 22px;
  border: 1px solid rgba(201,168,76,.3);
  background: transparent;
  color: var(--link);
  font-family: var(--font-ui);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  cursor: pointer;
  transition: background .18s, color .18s, border-color .18s;
}

.fts-tab-btn i {
  font-size: 15px;
}

.fts-tab-btn:hover {
  color: var(--gold);
  background: rgba(201,168,76,.08);
  border-color: rgba(201,168,76,.5);
}

.fts-tab-content {
  display: none;
}

.fts-tab-content.fts-tab-active {
  display: block;
}

.fts-collapse-toggle {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  width: 100%;
  padding: 0;
  margin-bottom: var(--space-md);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  color: inherit;
}

.fts-collapse-label {
  flex: 1;
  font-family: var(--font-title);
  font-size: 22px;
  font-weight: 400;
  color: var(--text);
}

.fts-collapse-icon {
  color: var(--gold);
  font-size: 18px;
  transition: transform .22s;
  flex-shrink: 0;
}

.fts-stat-scale {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 10px;
  text-align: center;
}

.fts-stat-bar {
  position: relative;
  height: 6px;
  margin-top: 4px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(201,168,76,.2);
}

.fts-stat-bar i {
  position: absolute;
  top: -5px;
  width: 12px;
  height: 16px;
  transform: translateX(-50%);
  background: var(--gold);
}

.fts-plugin-box:empty::before {
  content: "Noch keine Inhalte vorhanden.";
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 13px;
}

.fts-footer {
  margin-top: var(--space-2xl);
  padding: var(--space-xl) 0;
  background: var(--royal-blue);
  color: var(--quicksand);
  font-family: var(--font-ui);
  font-size: 13px;
}

.storm-relation-card {
  margin-bottom: var(--space-md);
  background: var(--surface-soft);
  border: 1px solid var(--border);
  padding: var(--space-md);
}

.storm-relation-name {
  margin-bottom: var(--space-sm);
  font-family: var(--font-ui);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.storm-relation-name a {
  color: var(--gold);
}

.storm-relation-content {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: var(--space-md);
  align-items: start;
}

.storm-relation-image img {
  width: 90px;
  height: 90px;
  object-fit: cover;
  display: block;
  border: 1px solid var(--border);
}

.storm-relation-text {
  color: var(--text-muted);
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.8;
}

.storm-relation-request {
  margin-top: 30px;
}

.storm-relation-request-box {
  background: var(--surface);
  border: 1px solid var(--border);
  padding: var(--space-md);
}

.storm-relation-row {
  margin-bottom: 18px;
}

.storm-relation-label {
  margin-bottom: 6px;
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
}

.storm-relation-comment {
  width: 100%;
  min-height: 120px;
  resize: vertical;
}

.storm-sort {
  max-width: 80px;
}

.storm-relation-submit {
  text-align: center;
  margin-top: 20px;
}

.storm-relas-ucp {
  background: var(--surface);
  border: 1px solid var(--border);
}

.storm-relas-intro {
  margin: 0 0 var(--space-lg);
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.9;
}

.storm-relas-section {
  margin-top: var(--space-lg);
}

.storm-relas-addcat {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: var(--space-md);
}

.storm-relas-categories {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: var(--space-md);
}

.storm-relas-category-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  background: rgba(201,168,76,.04);
  border: 1px solid var(--border);
}

.storm-relas-category-name {
  color: var(--text);
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.storm-relas-category-delete {
  margin: 0;
}

.storm-relas-delete-btn {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid rgba(201,168,76,.25);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
}

.storm-relas-delete-btn:hover {
  color: #b85c5c;
  border-color: #b85c5c;
}

.storm-relas-entry-form {
  margin: 0 0 var(--space-lg);
}

.storm-relas-entry {
  border: 1px solid var(--border);
  background: rgba(255,255,255,.22);
}

.storm-relas-entry-head {
  display: flex;
  justify-content: space-between;
  gap: var(--space-md);
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
}

.storm-relas-entry-name {
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.storm-relas-entry-name a {
  color: var(--link);
}

.storm-relas-entry-meta {
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.storm-relas-entry-body {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: var(--space-md);
  padding: var(--space-md);
}

.storm-relas-entry-sort label, .storm-relas-entry-comment label {
  display: block;
  margin-bottom: 6px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.storm-relas-entry-options {
  padding: 0 var(--space-md) var(--space-md);
  color: var(--text-muted);
  font-size: 13px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.storm-relas-entry-options label {
  margin-right: 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.storm-relas-entry-actions {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: var(--space-md);
  border-top: 1px solid var(--border);
}

.storm-relas-danger:hover {
  color: #b85c5c !important;
  border-color: #b85c5c !important;
}

.storm-relation-category {
  display: block;
  margin: 0 0 var(--space-md);
  padding: 0 0 8px;
  background: transparent !important;
  border-bottom: 1px solid rgba(201,168,76,.25);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
  text-transform: uppercase;
}

.fts-maps-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: var(--space-lg);
  align-items: start;
}

.fts-maps-menu {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.18);
}

.fts-maps-menu-head {
  color: var(--gold);
  background: rgba(201,168,76,.08);
}

.fts-maps-stage {
  min-height: 520px;
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.16);
  text-align: center;
  overflow: auto;
}

.maps-tab {
  display: none;
}

.maps-tab img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border: 1px solid rgba(201,168,76,.25);
}

.fts-reservations {
  padding: var(--space-xl) 0;
}

.fts-reservations-panel {
  display: grid;
  gap: var(--space-lg);
}

.fts-reservations-tabs, .res_tab {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.fts-reservations-tabs a, .res_tab a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--border);
  color: var(--link);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-reservations-tabs a:hover, .res_tab a:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(201,168,76,.08);
}

.fts-res-tabcontent {
  display: none;
}

.fts-res-tabcontent[style*="block"] {
  display: block;
}

.fts-res-category {
  display: grid;
  gap: var(--space-md);
}

.fts-res-category-head {
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--border);
  text-align: center;
}

.fts-res-category-head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: 34px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.fts-res-bit {
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.18);
}

.fts-res-bit h3 {
  margin: 0 0 var(--space-sm);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.fts-res-bit-users {
  color: var(--text-muted);
  line-height: 1.9;
}

.fts-res-mod {
  margin-top: var(--space-lg);
}

.fts-res-mod-head {
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--border);
  text-align: center;
}

.fts-res-mod-head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fts-res-mod-note {
  margin: var(--space-md) 0;
  padding: var(--space-md);
  border: 1px solid rgba(201,168,76,.25);
  background: rgba(201,168,76,.06);
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.8;
}

.fts-res-mod-note p {
  margin: 0 0 10px;
}

.fts-res-mod-note p:last-child {
  margin-bottom: 0;
}

.fts-res-mod-entry {
  padding: var(--space-md);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.18);
}

.fts-res-mod-entry-head {
  margin-bottom: 10px;
}

.fts-res-mod-type {
  display: inline-block;
  padding: 4px 10px;
  border: 1px solid rgba(201,168,76,.3);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-res-mod-entry-body {
  margin-bottom: var(--space-md);
  color: var(--text);
}

.fts-res-mod-entry-body strong {
  color: var(--link);
  font-weight: 600;
}

.fts-res-mod-entry-dates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-md);
  margin-bottom: var(--space-md);
  padding-top: var(--space-md);
  border-top: 1px solid var(--border);
}

.fts-res-mod-entry-dates span {
  display: block;
  margin-bottom: 4px;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-res-mod-entry-dates strong {
  display: block;
  color: var(--text-muted);
  font-weight: 400;
}

.fts-res-mod-entry-actions {
  text-align: center;
}

.fts-res-delete:hover {
  color: #b85c5c !important;
  border-color: #b85c5c !important;
}

.fts-reservations-tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: var(--space-lg);
}

.res_tablinks {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 22px;
  border: 1px solid rgba(201,168,76,.45);
  background: transparent;
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
  appearance: none;
  border-radius: 0;
}

.fts-index-category {
  margin: 46px 0;
}

.fts-index-category__head {
  position: relative;
  text-align: center;
  margin-bottom: 24px;
}

.fts-index-category__head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 400;
  line-height: 1;
  color: var(--text);
}

.fts-index-category__head h2::first-letter {
  color: var(--accent);
}

.fts-index-category__head h2 a {
  color: inherit;
}

.fts-index-category__head .smalltext {
  margin-top: 8px;
  color: var(--text-muted);
  font-size: 13px;
}

.fts-index-category__head .expcolimage {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: .65;
}

.fts-subcategory-title {
  margin: 42px 0 20px;
  text-align: center;
}

.fts-subcategory-title span {
  font-family: var(--font-title);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 400;
  color: var(--text);
}

.fts-subcategory-title span::first-letter {
  color: var(--accent);
}

.thread-book {
  background: transparent;
}

.thread-book__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  margin-bottom: 28px;
  padding: 0 4px 20px;
  border-bottom: 1px solid var(--border);
}

.thread-book__kicker {
  margin-bottom: 8px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.thread-book__header h1 {
  margin: 0;
  color: var(--text);
  font-family: var(--font-title);
  font-size: clamp(34px, 5vw, 62px);
  font-weight: 400;
  line-height: 1;
}

.thread-book__mode {
  white-space: nowrap;
  color: var(--text-muted);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.thread-book__mode:hover {
  color: var(--accent);
}

.thread-book__posts {
  width: 100%;
}

.thread-book__footer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.thread-book__nav {
  color: var(--text-muted);
  font-size: 12px;
}

.thread-book__nav a {
  color: var(--accent);
}

.character-field {
  margin: 18px 0;
  text-align: center;
}

.whosonline a {
  color: var(--text);
}

.whosonline a:hover {
  color: var(--accent);
}

.fts-sisters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.fts-sisters img {
  display: block;
  max-width: 88px;
  height: auto;
  border: 1px solid var(--border);
  opacity: .82;
  transition: .2s ease;
}

.fts-sisters img:hover {
  opacity: 1;
  transform: translateY(-2px);
  border-color: var(--accent);
}

.fts-factions {
  margin: 40px 0 60px;
}

.fts-factions__head {
  text-align: center;
  margin-bottom: 24px;
}

.fts-factions__head h2 {
  margin: 0;
  font-family: var(--font-title);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 400;
  color: var(--text);
}

.fts-factions__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 12px;
}

.fts-faction {
  padding: 18px 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  text-align: center;
  transition: .25s ease;
}

.fts-faction:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
}

.fts-faction img {
  display: block;
  width: 70px;
  height: 70px;
  object-fit: contain;
  margin: 0 auto 10px;
}

.fts-faction__count {
  display: block;
  font-family: var(--font-title);
  font-size: 32px;
  line-height: 1;
  color: var(--accent);
}

.fts-faction__name {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.fts-quickreply {
  width: min(1180px, calc(100% - 48px));
  margin: 48px auto;
}

.fts-quickreply__panel {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-soft);
}

.fts-quickreply__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 32px 20px;
  border-bottom: 1px solid var(--border);
}

.fts-quickreply__head h2 {
  margin: 0;
  color: var(--text);
  font-family: var(--font-title);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 400;
  line-height: 1;
}

.fts-quickreply__body {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 24px;
  padding: 28px 32px 30px;
}

.fts-quickreply__note {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.7;
}

.fts-quickreply__note strong {
  display: block;
  margin-bottom: 8px;
  color: var(--accent);
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.fts-quickreply__options {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 22px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
  font-size: 12px;
}

.fts-quickreply__options label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.fts-quickreply__footer {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.fts-modtools__label {
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.fts-modtools__controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fts-tab-btn.active {
  color: var(--gold);
  background: rgba(201,168,76,.12);
  border-color: var(--gold);
}

.maps-tab.active {
  display: block;
}

.res_tablinks:hover, .res_tablinks.active {
  background: rgba(201,168,76,.12);
  border-color: var(--gold);
  color: var(--text);
}

.as-name {
	font-family: var(--font-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.closepop {
	position: fixed;
	inset: 0;
	z-index: -1;
}

.blocker {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  z-index: 1000;
  background-color: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
}

.blocker.behind {
  background-color: transparent;
}

.koenigslandcolor {
	color: #eea2fd;
	display: inline;
}

.fruehlingslandcolor {
	color: #9ed0ac;
	display: inline;
}

.sommerlandcolor {
	color: #f4a997;
	display: inline;
}

.herbstlandcolor {
	color: #ef9666;
	display: inline;
}

.winterlandcolor {
	color: #CAC9FD;
	display: inline;
}

.heimatloscolor {
	color: #65A797;
	display: inline;
}

.elfencolor {
	color: #C9D6E3;
	display: inline;
}

strong,
b {
	color: var(--strong-color);
	font-weight: 700;
}

a strong,
a b,
strong a,
b a {
	color: inherit;
}
