/* ==========================================================================
   Userpanel „Mein Konto“ – Post, Steckbrief, Inventar, Stall, Adressbuch.
   Baut auf site.css auf; eigene Klassen tragen das Präfix .panel-
   ========================================================================== */

/* Seltenheitsfarben der Erfolge (nur hier gebraucht) */
.is-common { --rar: var(--ink-3); }
.is-uncommon { --rar: var(--ok); }
.is-rare { --rar: var(--frost); }
.is-epic { --rar: #b58cff; }
.is-legendary { --rar: var(--ember); }

/* ---------- Kopf über Konto- und Charakterseiten ---------- */
.panel-top {
  position: relative; isolation: isolate; overflow: hidden; background: var(--night-0);
  padding: calc(var(--header-h) + clamp(20px, 4vw, 40px)) 0 clamp(26px, 4vw, 42px);
}
.panel-top-bg { position: absolute; inset: 0; z-index: -2; }
.panel-top-bg picture, .panel-top-bg img { width: 100%; height: 100%; }
.panel-top-bg img { object-fit: cover; object-position: 50% 30%; opacity: 0.42; }
.panel-top::after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(90% 120% at 10% 0%, transparent 30%, rgba(4, 7, 11, 0.7) 85%),
    linear-gradient(180deg, rgba(4, 7, 11, 0.55) 0%, rgba(4, 7, 11, 0.25) 45%, var(--night-1) 100%);
}
.panel-top-inner { display: grid; gap: 18px; }
.panel-id { display: flex; align-items: center; flex-wrap: wrap; gap: 14px clamp(14px, 3vw, 24px); }
.panel-id-text { flex: 1 1 220px; min-width: 0; }
.panel-id-text .kicker { margin-bottom: 6px; }
.panel-name { font-size: clamp(1.9rem, 5vw, 3.1rem); line-height: 1.06; overflow-wrap: anywhere; }
.panel-sub {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 10px;
  color: var(--ink-2); font: 600 0.9rem/1.3 var(--f-label); letter-spacing: 0.1em; text-transform: uppercase;
}
.panel-sub > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.panel-sub-nick { font: italic 400 1.08rem/1.2 var(--f-letter); letter-spacing: 0; text-transform: none; color: var(--ink-2); }

/* Monogramm (es gibt keine Charakterbilder) */
.panel-mono {
  --mono: 108, 200, 255;
  flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
  font: 700 1.1rem/1 var(--f-display); letter-spacing: 0.04em; color: rgb(var(--mono));
  background: radial-gradient(circle at 30% 25%, rgba(var(--mono), 0.34), rgba(var(--mono), 0.08) 62%, rgba(7, 11, 17, 0.9));
  border: 1px solid rgba(var(--mono), 0.38);
  box-shadow: 0 0 0 4px rgba(var(--mono), 0.06), 0 12px 26px -14px rgba(var(--mono), 0.6);
}
.panel-mono.is-v1 { --mono: 234, 168, 85; }
.panel-mono.is-v2 { --mono: 146, 214, 190; }
.panel-mono.is-lg { width: clamp(62px, 12vw, 86px); height: clamp(62px, 12vw, 86px); font-size: clamp(1.35rem, 3vw, 1.85rem); }
.panel-mono.is-sm { width: 36px; height: 36px; font-size: 0.82rem; }

.panel-avatar {
  flex: none; width: 72px; height: 72px; border-radius: 50%; object-fit: cover;
  border: 2px solid rgba(108, 200, 255, 0.45);
  box-shadow: 0 0 0 5px rgba(108, 200, 255, 0.08), 0 14px 30px -12px rgba(0, 0, 0, 0.85);
}
.panel-avatar.is-fallback { display: grid; place-items: center; background: var(--night-4); color: var(--ink-3); }
.panel-logout { margin: 0; }

/* Charakter-Umschalter */
.panel-switch { position: relative; flex: 1 1 100%; }
.panel-switch > summary { list-style: none; }
.panel-switch > summary::-webkit-details-marker { display: none; }
.panel-switch-chev { transition: transform 0.25s var(--ease); }
.panel-switch[open] .panel-switch-chev { transform: rotate(180deg); }
.panel-switch-list {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 40; margin: 0; padding: 6px; list-style: none;
  background: var(--night-3); border: 1px solid var(--line-2); border-radius: var(--r); box-shadow: var(--shadow-2);
}
.panel-switch-list a { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: var(--r-s); color: var(--ink); }
.panel-switch-list a:hover, .panel-switch-list a:focus-visible { background: var(--night-4); color: var(--ink); }
.panel-switch-list b { display: block; line-height: 1.25; }
.panel-switch-list small { display: block; color: var(--ink-3); font-size: 0.8rem; }
@media (min-width: 700px) {
  .panel-switch { flex: none; }
  .panel-switch-list { left: auto; min-width: 290px; }
  .panel-logout { margin-left: auto; }
}

/* ---------- Gerüst: Navigation + Inhalt ---------- */
.panel-layout { padding-bottom: clamp(56px, 8vw, 100px); }
.panel-main { min-width: 0; }
.panel-nav {
  position: sticky; top: var(--header-h); z-index: 20;
  margin: 0 calc(var(--gutter) * -1) clamp(18px, 3vw, 26px); padding: 10px var(--gutter);
  background: rgba(7, 11, 17, 0.9); border-bottom: 1px solid var(--line);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.panel-nav-back { display: none; }
.panel-tabs a { flex: none; }
.panel-tabs .icon { opacity: 0.85; }
@media (min-width: 1024px) {
  .panel-layout { display: grid; grid-template-columns: 238px minmax(0, 1fr); gap: 44px; align-items: start; padding-top: 30px; }
  .panel-nav {
    top: calc(var(--header-h) + 24px); margin: 0; padding: 0; border: 0; background: none;
    -webkit-backdrop-filter: none; backdrop-filter: none; display: grid; gap: 12px;
  }
  .panel-nav-back {
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 4px; color: var(--ink-3);
    font: 600 0.82rem/1 var(--f-label); letter-spacing: 0.14em; text-transform: uppercase;
  }
  .panel-nav-back:hover { color: var(--frost); }
  .panel-tabs { flex-direction: column; overflow: visible; padding: 6px; gap: 2px; }
  .panel-tabs a { height: 48px; padding: 0 14px; gap: 12px; }
  .panel-tabs .count { margin-left: auto; }
}

/* ---------- Überschriften, Hinweise, Leerzustände ---------- */
.panel-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 18px; }
.panel-h { display: flex; align-items: center; gap: 12px; font-size: clamp(1.6rem, 3.4vw, 2.15rem); }
.panel-h-icon { flex: none; color: var(--frost); }
.panel-h-count {
  font: 600 0.95rem/1 var(--f-label); letter-spacing: 0.06em; color: var(--ink-3);
  background: var(--night-3); border: 1px solid var(--line); border-radius: 99px; padding: 6px 11px;
}
.panel-head-meta { display: flex; gap: 8px; }
.panel-sub-h {
  margin: 28px 0 12px; font: 600 0.84rem/1 var(--f-label); letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-3);
}
.panel-block { margin-top: clamp(38px, 5vw, 58px); }
.panel-lead { color: var(--ink-2); margin: -6px 0 18px; }
.panel-hint, .panel-stale { display: flex; align-items: flex-start; gap: 8px; margin-top: 18px; color: var(--ink-3); font-size: 0.88rem; }
.panel-hint .icon, .panel-stale .icon { flex: none; margin-top: 3px; }
.panel-stale { margin-top: clamp(32px, 5vw, 48px); padding-top: 16px; border-top: 1px dashed var(--line-2); }
.panel-empty { padding: clamp(36px, 6vw, 64px) 20px; border: 1px dashed var(--line-2); border-radius: var(--r-l); background: rgba(11, 17, 25, 0.5); }
.panel-empty-title { color: var(--ink); font: 700 1.25rem/1.3 var(--f-display); }
.panel-empty-text { max-width: 54ch; }
.panel-down { padding-top: calc(var(--header-h) + 48px); }
.panel-grid-2 { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 760px) { .panel-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.panel-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.panel-card-head h3 { display: flex; align-items: center; gap: 10px; font-size: 1.2rem; }
.panel-card-head h3 .icon { color: var(--frost); flex: none; }

/* Balken */
.panel-bar { display: block; height: 6px; border-radius: 99px; background: var(--night-5); overflow: hidden; }
.panel-bar > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--frost-lo), var(--frost-hi)); transition: width 1s var(--ease-out); }
.panel-bar.is-ember > span { background: linear-gradient(90deg, var(--ember-lo), var(--ember-hi)); }

/* Faktenliste (Karte, Zeit) */
.panel-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin: 0; }
.panel-facts.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel-facts dt { font: 600 0.72rem/1.2 var(--f-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.panel-facts dd { margin: 5px 0 0; color: var(--ink); font-size: 1.04rem; line-height: 1.3; }
.panel-facts dd small { display: block; color: var(--ink-3); font-size: 0.8rem; }

/* ---------- Anmeldeseite ---------- */
.panel-hero { padding-bottom: clamp(52px, 7vw, 96px); }
.panel-login { display: grid; gap: clamp(28px, 5vw, 56px); align-items: center; }
.panel-login-card { display: grid; gap: 16px; max-width: 540px; margin-top: 28px; padding: clamp(22px, 3vw, 32px); }
.panel-login-title { font-size: 1.5rem; }
.panel-login-intro { color: var(--ink-2); }
.panel-checks { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; color: var(--ink-2); font-size: 0.95rem; }
.panel-checks li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; }
.panel-checks .icon { color: var(--ok); margin-top: 3px; }
.panel-login-legal { color: var(--ink-3); font-size: 0.86rem; }
.panel-login-legal a { text-decoration: underline; text-decoration-color: rgba(108, 200, 255, 0.4); }
.panel-login-art { position: relative; justify-self: center; width: min(78vw, 340px); }
.panel-login-art::before {
  content: ''; position: absolute; inset: 12% 8% 0; z-index: -1; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(108, 200, 255, 0.22), transparent); filter: blur(10px);
}
/* freigestelltes Bild: den Platzhalter-Hintergrund aus picture() ausblenden */
.panel-mailbox img { background-color: transparent !important; width: 100%; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.75)); animation: panel-float 8s ease-in-out infinite; }
@keyframes panel-float { 50% { transform: translateY(-10px) rotate(-0.6deg); } }
.panel-login-note { margin-top: clamp(28px, 4vw, 40px); }
@media (min-width: 960px) {
  .panel-login { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
  .panel-login-art { width: min(100%, 470px); }
}

/* ---------- Kontoübersicht ---------- */
.panel-account-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: clamp(34px, 5vw, 52px); }
.panel-account-stats .stat-value { font-size: clamp(1.8rem, 4vw, 2.7rem); }
.panel-account-stats > * { padding: clamp(18px, 3vw, 30px); }
@media (min-width: 900px) { .panel-account-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.panel-chars { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.panel-char { display: grid; gap: 18px; align-content: start; }
.panel-char-head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.panel-char-title { flex: 1 1 160px; min-width: 0; }
.panel-char-title h3 { font-size: 1.35rem; overflow-wrap: anywhere; }
.panel-char-title p { color: var(--ink-3); font-size: 0.92rem; margin-top: 2px; }
.panel-char-link { color: var(--ink); }
.panel-char-link:hover { color: var(--frost-hi); }
.panel-char-unread:hover { color: var(--ember-hi); }
.panel-char-actions { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 16px; border-top: 1px solid var(--line); }
.panel-btn-count { min-width: 22px; padding: 3px 7px; border-radius: 99px; background: rgba(3, 18, 31, 0.85); color: var(--frost-hi); font-size: 0.74rem; letter-spacing: 0; }
.panel-chars.is-solo { grid-template-columns: minmax(0, 1fr); }
.panel-char.is-solo .panel-facts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.panel-char.is-solo .panel-mono { width: 64px; height: 64px; font-size: 1.4rem; }

/* ---------- Steckbrief ---------- */
.panel-dossier { display: grid; gap: 18px; align-content: start; }
.panel-kv { grid-template-columns: minmax(96px, auto) minmax(0, 1fr); gap: 10px 18px; }
.panel-kv dd { overflow-wrap: anywhere; }
.panel-desc {
  margin: 0; padding: 14px 16px; max-height: 15em; overflow: auto; white-space: pre-line; overflow-wrap: anywhere;
  border-left: 3px solid var(--frost-lo); border-radius: 0 var(--r-s) var(--r-s) 0; background: var(--night-2);
  color: var(--ink-2); font-size: 1.06rem; line-height: 1.6;
}
.panel-address {
  display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 12px; padding: 16px; border-radius: var(--r);
  color: var(--paper-ink);
  background: radial-gradient(120% 90% at 50% 0%, rgba(255, 250, 235, 0.5), transparent 60%), linear-gradient(180deg, var(--paper), var(--paper-2));
  box-shadow: inset 0 0 40px rgba(120, 80, 30, 0.2), 0 16px 30px -20px rgba(0, 0, 0, 0.9);
}
.panel-address .panel-letterhead { width: 150px; justify-self: center; }
.panel-address-text { display: grid; gap: 4px; width: 100%; }
.panel-address-label { font: 600 0.72rem/1 var(--f-label); letter-spacing: 0.18em; text-transform: uppercase; color: var(--paper-ink-2); }
.panel-address small { color: var(--paper-ink-2); font-size: 0.84rem; line-height: 1.45; }
.panel-copy { margin: 2px 0 4px; background: rgba(42, 26, 11, 0.07); border-color: rgba(42, 26, 11, 0.28); color: var(--paper-ink); }
.panel-copy code { font: 1.15rem/1.2 var(--f-type); }
.panel-copy .icon-btn { width: 40px; height: 40px; background: rgba(255, 250, 235, 0.55); border-color: rgba(42, 26, 11, 0.3); color: var(--paper-ink); }
.panel-copy .icon-btn:hover { color: var(--paper-red); border-color: var(--paper-red); }
.panel-copy.is-copied .icon-btn { color: #1f7a4d; border-color: #1f7a4d; }
@media (min-width: 440px) {
  .panel-address { grid-template-columns: 130px minmax(0, 1fr); align-items: center; gap: 16px; }
  .panel-address .panel-letterhead { width: 130px; }
}

/* Briefkopf-Ausschnitt aus dem echten Telegrammbogen (nur Logo, ohne den Stempel oben rechts) */
.panel-letterhead {
  display: block; aspect-ratio: 264 / 170; width: 200px;
  background: url('/img/telegram-paper-1200.webp') 9.7% 93.8% / 287.9% auto no-repeat;
  -webkit-mask-image: radial-gradient(ellipse closest-side, #000 48%, rgba(0, 0, 0, 0.55) 74%, transparent 100%);
  mask-image: radial-gradient(ellipse closest-side, #000 48%, rgba(0, 0, 0, 0.55) 74%, transparent 100%);
  mix-blend-mode: multiply;
}

/* Geld-Kacheln */
.panel-money { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.panel-coin { display: grid; gap: 4px; align-content: start; padding: 16px 16px 18px; }
.panel-coin-icon {
  display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 6px; border-radius: 10px;
  color: var(--frost); background: var(--frost-wash); border: 1px solid rgba(108, 200, 255, 0.22);
}
.panel-coin-label { font: 600 0.72rem/1.2 var(--f-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3); }
.panel-coin-value { font: 700 clamp(1.2rem, 3.2vw, 1.55rem)/1.15 var(--f-display); color: var(--ink); overflow-wrap: anywhere; }
.panel-coin-note { font-size: 0.82rem; color: var(--ink-3); }
a.panel-coin-note { color: var(--ember); }
a.panel-coin-note:hover { color: var(--ember-hi); }
.panel-coin.is-dark .panel-coin-icon { color: var(--ink-2); background: var(--night-5); border-color: var(--line-2); }
.panel-coin.is-ember .panel-coin-icon { color: var(--ember); background: var(--ember-wash); border-color: rgba(234, 168, 85, 0.3); }
.panel-coin.is-ember .panel-coin-value { color: var(--ember-hi); }
.panel-banks > summary {
  display: inline-flex; align-items: center; gap: 4px; min-height: 28px; list-style: none; cursor: pointer;
  color: var(--frost); font-size: 0.84rem;
}
.panel-banks > summary::-webkit-details-marker { display: none; }
.panel-banks[open] > summary .icon { transform: rotate(180deg); }
.panel-banks ul { display: grid; gap: 5px; margin: 6px 0 0; padding: 8px 0 0; list-style: none; border-top: 1px solid var(--line); font-size: 0.86rem; }
.panel-banks li { display: flex; justify-content: space-between; gap: 8px; color: var(--ink-2); }
.panel-banks li .num { color: var(--ink); text-align: right; }
.panel-banks li small { display: block; color: var(--ink-3); }

/* Fähigkeiten */
.panel-levels { margin-top: 16px; }
.panel-level-list { display: grid; gap: 16px 24px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 185px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-level {
  display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; grid-template-areas: 'icon name val' 'icon bar bar';
  gap: 7px 12px; align-items: center;
}
.panel-level-icon {
  grid-area: icon; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
  color: var(--frost); background: var(--frost-wash); border: 1px solid rgba(108, 200, 255, 0.2);
}
.panel-level-name { grid-area: name; color: var(--ink); font-weight: 600; }
.panel-level-val { grid-area: val; color: var(--ink-3); font: 500 0.9rem/1 var(--f-label); letter-spacing: 0.04em; white-space: nowrap; }
.panel-level-val b { color: var(--frost-hi); font-size: 1.05rem; }
.panel-level .panel-bar { grid-area: bar; }
.panel-level.is-off .panel-level-icon { color: var(--ink-4); background: var(--night-3); border-color: var(--line); }

/* Statistik */
.panel-stats { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 142px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-stat {
  display: grid; gap: 6px; align-content: start; padding: 16px; border-radius: var(--r); border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(24, 35, 49, 0.75), rgba(13, 20, 29, 0.75));
}
.panel-stat-icon { color: var(--frost); }
.panel-stat-value { font: 700 1.7rem/1 var(--f-display); color: var(--ink); }
.panel-stat-label { font: 600 0.72rem/1.3 var(--f-label); letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-3); }

/* Erfolge */
.panel-ach-summary { display: grid; gap: 12px; }
.panel-ach-count { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; }
.panel-ach-count b { font: 700 clamp(2.2rem, 5vw, 2.8rem)/1 var(--f-display); color: var(--ember-hi); }
.panel-ach-count span { color: var(--ink-2); }
.panel-ach-claim { display: flex; align-items: flex-start; gap: 8px; color: var(--ember); font-size: 0.92rem; }
.panel-ach-claim .icon { flex: none; margin-top: 3px; }
.panel-rarity {
  justify-self: start; display: inline-block; padding: 5px 9px; border-radius: 99px; white-space: nowrap;
  font: 700 0.66rem/1 var(--f-label); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--rar, var(--ink-3)); border: 1px solid currentColor;
  background: color-mix(in srgb, var(--rar, var(--ink-3)) 12%, transparent);
}
.panel-next { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-next-item { display: grid; gap: 6px; padding: 16px 18px; }
.panel-next-item b { color: var(--ink); font-size: 1.06rem; }
.panel-next-item small { color: var(--ink-3); }
.panel-next-prog { justify-self: end; color: var(--ink-2); font-size: 0.84rem; }
.panel-ach-list { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-ach {
  display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 4px 12px; align-items: center; padding: 12px 14px;
  border-radius: var(--r-s); background: var(--night-2); border: 1px solid var(--line); border-left: 3px solid var(--rar, var(--line-2));
}
.panel-ach-icon {
  grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
  color: var(--rar, var(--ink-3)); background: color-mix(in srgb, var(--rar, var(--ink-3)) 14%, transparent);
}
.panel-ach-text { min-width: 0; }
.panel-ach-text b { display: block; color: var(--ink); line-height: 1.3; }
.panel-ach-text small { color: var(--ink-3); font-size: 0.82rem; }
.panel-ach-side { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.panel-ach-side small { color: var(--ink-4); font-size: 0.76rem; }
.panel-more { margin-top: 10px; }
.panel-more > summary { list-style: none; }
.panel-more > summary::-webkit-details-marker { display: none; }
.panel-more[open] > summary { display: none; }
@media (min-width: 520px) {
  .panel-ach { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .panel-ach-icon { grid-row: auto; }
  .panel-ach-side { display: grid; justify-items: end; gap: 4px; }
}

/* Versicherung & Rechnungen */
.panel-ins-tier { font: 700 1.3rem/1.2 var(--f-display); color: var(--ink); margin-bottom: 4px; }
.panel-ins p + p { margin-top: 8px; }
.panel-ins.is-none { border-color: rgba(255, 111, 111, 0.3); background: linear-gradient(180deg, rgba(255, 111, 111, 0.08), rgba(13, 20, 29, 0.92)); }
.panel-ins.is-expired { border-color: rgba(255, 111, 111, 0.25); }
.panel-ins.is-none p:first-of-type { color: var(--ink-2); }
.panel-cover { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.panel-cover li {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 99px;
  background: var(--night-4); color: var(--ink-3); font-size: 0.82rem;
}
.panel-cover li.is-on { background: var(--ok-wash); color: var(--ok); }
.panel-ins-foot { margin-top: 12px; color: var(--ink-3); font-size: 0.85rem; }
.panel-bill-list { display: grid; margin: 0; padding: 0; list-style: none; }
.panel-bill-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.panel-bill-list li:first-child { border-top: 0; padding-top: 0; }
.panel-bill-main { min-width: 0; }
.panel-bill-main b { display: block; color: var(--ink); }
.panel-bill-main small { color: var(--ink-3); font-size: 0.84rem; overflow-wrap: anywhere; }
.panel-bill-side { display: grid; justify-items: end; text-align: right; flex: none; }
.panel-bill-side .num { color: var(--ember-hi); font-size: 1.05rem; }
.panel-bill-side small { color: var(--ink-4); font-size: 0.76rem; }

/* ---------- Post ---------- */
.panel-addr-chip {
  display: inline-flex; align-items: center; gap: 10px; padding: 4px 4px 4px 14px; border-radius: 99px;
  color: var(--paper-ink); background: linear-gradient(180deg, var(--paper), var(--paper-2));
  box-shadow: 0 10px 22px -14px rgba(0, 0, 0, 0.9), inset 0 0 12px rgba(120, 80, 30, 0.18);
}
.panel-addr-chip span { font: 600 0.68rem/1 var(--f-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-ink-2); }
.panel-addr-chip code { font: 1rem/1 var(--f-type); color: var(--paper-ink); }
.panel-addr-chip .icon-btn { width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 250, 235, 0.5); border-color: rgba(42, 26, 11, 0.25); color: var(--paper-ink); }
.panel-addr-chip .icon-btn:hover { color: var(--paper-red); border-color: var(--paper-red); }

.panel-folders a { flex: 1 0 auto; justify-content: center; }
.panel-folder-n { color: var(--ink-4); font-size: 0.8rem; letter-spacing: 0.04em; }
.panel-folders [aria-current='page'] .panel-folder-n { color: var(--ink-3); }
.panel-folder-info { margin: 12px 2px; color: var(--ink-3); font-size: 0.88rem; }
.panel-bird-note { margin-bottom: 14px; }
.panel-bird-note .icon { flex: none; margin-top: 3px; color: var(--ember); }

.panel-mail {
  margin: 0; padding: 0; list-style: none; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r);
  background: linear-gradient(180deg, rgba(24, 35, 49, 0.6), rgba(13, 20, 29, 0.6));
}
.panel-mail > li + li { border-top: 1px solid var(--line); }
.panel-mail-row {
  position: relative; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 14px;
  padding: 16px clamp(14px, 2.4vw, 20px); color: var(--ink-2); transition: background-color 0.2s;
}
.panel-mail-row:hover, .panel-mail-row:focus-visible { background: var(--frost-wash); color: var(--ink-2); }
.panel-mail-row:focus-visible { outline-offset: -3px; }
.panel-mail-row.is-unread { background: linear-gradient(90deg, rgba(234, 168, 85, 0.07), transparent 60%); }
.panel-mail-row.is-unread::before {
  content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 0 3px 3px 0; background: var(--ember);
}
.panel-mail-seal {
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  background: var(--night-4); color: var(--ink-3); border: 1px solid var(--line-2);
}
.is-unread .panel-mail-seal { background: var(--ember-wash); color: var(--ember); border-color: rgba(234, 168, 85, 0.4); }
.panel-mail-seal.is-bird { color: var(--ember); }
.panel-mail-main { display: grid; gap: 3px; min-width: 0; }
.panel-mail-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; }
.panel-mail-who { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-weight: 600; }
.panel-mail-who.is-anon { font-style: italic; font-weight: 500; color: var(--ink-2); }
.panel-mail-date { flex: none; color: var(--ink-3); font: 0.8rem/1.4 var(--f-type); white-space: nowrap; }
.panel-mail-subject { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font: 400 1.14rem/1.35 var(--f-letter); }
.panel-mail-subject em { color: var(--ink-3); }
.is-unread .panel-mail-subject { color: var(--ember-hi); }
.panel-mail-preview {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  color: var(--ink-3); font-size: 0.93rem; line-height: 1.5; overflow-wrap: anywhere;
}
.panel-mail-preview.is-lead { font-family: var(--f-letter); font-size: 1.04rem; color: var(--ink-2); }
.panel-mail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 4px; color: var(--ink-4); font-size: 0.8rem; }
.panel-mail-meta .badge { height: 22px; padding: 0 8px; font-size: 0.66rem; }
.panel-mail-zone { display: inline-flex; align-items: center; gap: 4px; }
.pager .panel-pager-gap { min-width: 20px; padding: 0; border: 0; }
@media (max-width: 420px) {
  .panel-mail-row { grid-template-columns: minmax(0, 1fr); }
  .panel-mail-seal { display: none; }
}

/* Leeres Postfach auf Papier */
.panel-paper-empty { display: grid; justify-items: center; gap: 10px; padding: clamp(30px, 6vw, 52px) 24px; text-align: center; }
.panel-paper-empty .panel-letterhead { width: min(240px, 72%); }
.panel-paper-empty-title { font: italic 400 1.4rem/1.3 var(--f-letter); color: var(--paper-ink); }
.panel-paper-empty-text { max-width: 44ch; color: var(--paper-ink-2); font-size: 0.96rem; }

/* ---------- Leseansicht: Telegramm auf Papier ---------- */
.panel-letter-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 800px; margin: 0 auto 6px; }
.panel-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 0.92rem/1 var(--f-label); letter-spacing: 0.1em; text-transform: uppercase; }
.panel-letter-nav { display: flex; align-items: center; gap: 8px; }
.panel-letter-nav .icon-btn { width: 44px; height: 44px; }
.panel-letter-nav .icon-btn.is-disabled { opacity: 0.35; }
.panel-letter-pos { margin-right: 4px; color: var(--ink-3); font-size: 0.92rem; }

.panel-letter { max-width: 800px; margin: 10px auto 0; padding: clamp(26px, 5.5vw, 58px) clamp(22px, 6vw, 64px) clamp(24px, 5vw, 48px); }
.panel-letter::after {
  /* feines Papierkorn */
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0.18; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .3 0 0 0 0 .12 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
}
.panel-letter-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.panel-letter-head .panel-letterhead { width: clamp(150px, 40vw, 236px); margin-left: -6px; }
.panel-stamp {
  position: relative; flex: none; display: grid; place-content: center; justify-items: center; gap: 1px;
  width: clamp(86px, 22vw, 98px); height: clamp(86px, 22vw, 98px); margin-right: -4px; border-radius: 50%;
  border: 2px solid currentColor; color: var(--paper-red); transform: rotate(9deg); opacity: 0.82; mix-blend-mode: multiply;
  font: clamp(0.46rem, 1.5vw, 0.54rem)/1.1 var(--f-type); letter-spacing: 0.02em; text-transform: uppercase; text-align: center; white-space: nowrap;
}
.panel-stamp::before { content: ''; position: absolute; inset: 4px; border: 1px solid currentColor; border-radius: 50%; }
.panel-stamp b { font: 400 clamp(1.5rem, 4.4vw, 1.95rem)/1 var(--f-western); color: inherit; }
.panel-letter-meta {
  display: grid; gap: 5px; margin: 18px 0 0; padding-top: 16px; border-top: 2px double rgba(60, 30, 10, 0.42);
  font: clamp(0.94rem, 2.8vw, 1.02rem)/1.45 var(--f-type); color: var(--paper-ink);
}
.panel-letter-meta > div { display: flex; flex-wrap: wrap; gap: 0 12px; }
.panel-letter-meta dt { min-width: 6.4em; color: var(--paper-ink-2); }
.panel-letter-meta dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.panel-letter-meta .is-anon dd { font-style: italic; letter-spacing: 0.06em; }
.panel-letter-subject {
  margin: 20px 0 14px; padding-top: 18px; border-top: 2px double rgba(60, 30, 10, 0.42);
  font: 400 clamp(1.5rem, 4.6vw, 1.95rem)/1.2 var(--f-letter); color: var(--paper-ink); overflow-wrap: anywhere; text-wrap: balance;
}
.panel-letter.is-bird .panel-letter-subject { font-style: italic; color: var(--paper-ink-2); }
.panel-letter-body {
  font: 400 clamp(1.12rem, 3.3vw, 1.24rem)/1.62 var(--f-letter); color: var(--paper-ink);
  white-space: pre-wrap; overflow-wrap: anywhere; min-height: 4em;
}
.panel-letter-foot { margin-top: clamp(26px, 5vw, 40px); padding-top: 14px; border-top: 2px double rgba(60, 30, 10, 0.35); text-align: center; }
.panel-letter-motto { font: italic 400 0.98rem/1.45 var(--f-letter); color: var(--paper-ink-2); }
.panel-letter-est { margin-top: 6px; font: 0.76rem/1 var(--f-type); letter-spacing: 0.34em; color: var(--paper-ink-2); }
.panel-letter-after { display: grid; gap: 8px; max-width: 800px; margin: 18px auto 0; color: var(--ink-3); font-size: 0.9rem; }
.panel-letter-after p { display: flex; align-items: flex-start; gap: 8px; }
.panel-letter-after .icon { flex: none; margin-top: 3px; }

/* ---------- Adressbuch ---------- */
.panel-filter { max-width: 440px; margin: 0 0 16px; }
.panel-filter .input { height: 46px; }
.panel-filter-none { margin-top: 10px; }
.panel-contacts { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-contact { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px; }
.panel-contact-mono {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  font: 700 1.1rem/1 var(--f-display); color: var(--paper-ink); background: linear-gradient(180deg, var(--paper), var(--paper-2));
}
.panel-contact h3 { font-size: 1.12rem; overflow-wrap: anywhere; }
.panel-contact-code { display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.panel-contact-code code { font: 1rem/1.2 var(--f-type); color: var(--ember-hi); overflow-wrap: anywhere; }
.panel-contact-code .icon-btn { width: 36px; height: 36px; }
.panel-contact-notes { margin-top: 8px; color: var(--ink-2); font: italic 400 1rem/1.5 var(--f-letter); white-space: pre-line; overflow-wrap: anywhere; }

/* ---------- Inventar ---------- */
.panel-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; padding: 0; list-style: none; }
.panel-chips li {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 99px;
  background: var(--night-3); border: 1px solid var(--line); color: var(--ink-2); font-size: 0.92rem;
}
.panel-chips .icon { color: var(--frost); flex: none; }
.panel-chips b { color: var(--ink); }
.panel-chips li:has(> a) { padding: 0; }
.panel-chips a { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 14px; border-radius: inherit; color: inherit; }
.panel-chips a:hover { color: var(--ink); background: var(--frost-wash); }
.panel-jump { display: flex; gap: 6px; margin: 0 0 8px; padding-bottom: 6px; overflow-x: auto; scrollbar-width: none; }
.panel-jump::-webkit-scrollbar { display: none; }
.panel-jump a {
  flex: none; padding: 8px 12px; border-radius: 99px; border: 1px solid var(--line-2); color: var(--ink-2);
  font: 600 0.8rem/1 var(--f-label); letter-spacing: 0.08em; text-transform: uppercase;
}
.panel-jump a:hover { color: var(--frost); border-color: var(--frost); }
.panel-jump a span { margin-left: 4px; color: var(--ink-4); }
.panel-cat { margin-top: 26px; scroll-margin-top: calc(var(--header-h) + 84px); }
.panel-cat-h {
  display: flex; align-items: center; gap: 10px; margin-bottom: 12px; scroll-margin-top: calc(var(--header-h) + 84px);
  font: 600 0.9rem/1.2 var(--f-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-2);
}
.panel-cat-h .icon { flex: none; color: var(--frost); }
.panel-cat-h > span { color: var(--ink-4); letter-spacing: 0.04em; }
.panel-items { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-item {
  display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; align-items: start; padding: 12px;
  border-radius: var(--r); background: var(--night-2); border: 1px solid var(--line);
}
.panel-item.is-weapon { border-color: rgba(234, 168, 85, 0.22); background: linear-gradient(180deg, rgba(234, 168, 85, 0.05), var(--night-2)); }
.panel-thumb {
  position: relative; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 12px;
  background: radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.08), transparent 70%), var(--night-4); border: 1px solid var(--line-2);
}
.panel-thumb-img { width: 56px; height: 56px; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.5)); }
.panel-thumb-icon { color: var(--ink-3); }
.panel-qty {
  position: absolute; right: -6px; bottom: -6px; min-width: 26px; height: 22px; padding: 0 6px; border-radius: 99px;
  background: var(--frost); color: var(--night-0); font: 700 0.76rem/22px var(--f-label); text-align: center;
  box-shadow: 0 0 0 2px var(--night-2);
}
.panel-item-main { display: grid; gap: 3px; min-width: 0; }
.panel-item-name { color: var(--ink); font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.panel-item-main small { color: var(--ink-3); font-size: 0.82rem; line-height: 1.4; }
.panel-item-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.panel-serial { font: 0.8rem/1.3 var(--f-type); color: var(--ember); overflow-wrap: anywhere; }
.panel-fresh { display: grid; gap: 4px; margin-top: 4px; }
.panel-fresh-label { color: var(--ink-3); font-size: 0.76rem; }
.panel-fresh.is-ok .panel-bar > span { background: var(--ok); }
.panel-fresh.is-mid .panel-bar > span { background: var(--warn); }
.panel-fresh.is-low .panel-bar > span { background: var(--ember); }
.panel-fresh.is-crit .panel-bar > span, .panel-fresh.is-dead .panel-bar > span { background: var(--bad); }
.panel-fresh.is-dead .panel-fresh-label { color: var(--bad); }
.panel-item-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.panel-item-tags .badge { height: 22px; font-size: 0.66rem; }
@media (max-width: 519px) {
  .panel-items { gap: 8px; }
  .panel-item { grid-template-columns: 54px minmax(0, 1fr); gap: 12px; padding: 10px; }
  .panel-thumb { width: 54px; height: 54px; border-radius: 10px; }
  .panel-thumb-img { width: 48px; height: 48px; }
}
@media (min-width: 760px) { .panel-jump { flex-wrap: wrap; overflow: visible; } }

/* ---------- Stall & Besitz ---------- */
.panel-assets { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); margin: 0; padding: 0; list-style: none; }
.panel-asset { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; align-items: center; padding: 16px; }
.panel-asset-icon {
  display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; color: var(--ember);
  background: radial-gradient(circle at 30% 20%, rgba(234, 168, 85, 0.26), rgba(234, 168, 85, 0.05) 70%);
  border: 1px solid rgba(234, 168, 85, 0.25);
}
.panel-asset-main { min-width: 0; }
.panel-asset-name { display: block; color: var(--ink); font: 700 1.14rem/1.25 var(--f-display); overflow-wrap: anywhere; }
.panel-asset-main small { display: block; margin-top: 2px; color: var(--ink-3); font-size: 0.88rem; }
.panel-asset-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.panel-asset-badges .badge { height: 24px; font-size: 0.68rem; }
.panel-asset.is-hurt { border-color: rgba(255, 111, 111, 0.3); }
.panel-asset-empty { font-size: 0.95rem; }

/* ---------- Druck: nur der Brief ---------- */
@media print {
  .panel-top, .panel-nav, .panel-letter-bar, .panel-letter-after, .panel-stale, .panel-hint { display: none !important; }
  .panel-layout { display: block; padding: 0; }
  .panel-letter { box-shadow: none; max-width: none; }
  .panel-letter::after { display: none; }
}
