/*
 * Cheshire - Theme "Modern" (Vergleichs-Layout #Peter-Wunsch 12.08.2026)
 * Gleiche Cheshire-Violett-Palette wie Theme "Klassisch", aber Card-Optik,
 * mehr Weissraum/Radius/Schatten statt dichter Tabellenzeilen.
 * Aktivierung: ?cheshire_theme=modern (30 Tage Cookie), siehe Bootstrap.php.
 * No inline styles in PHP files - all CSS lives here.
 * @see assets/themes/classic.css, assets/cheshire.css (Original/Default)
 */

/* Theme-Baukasten Etappe 2 (Peter-Freigabe 21.08.2026): CSS-Variablen fuer
   Primaer-/Akzentfarbe + Inhaltsbreite, Default = bisheriger Wert dieses
   Themes (keine optische Aenderung ohne aktive AdminCP-Einstellung). Wird
   bei Bedarf per :root-Override-Block ueberschrieben, siehe
   Cheshire\Services\Theme::cssVarsBlock(). */
:root{--cheshire-primary:#4A2B70;--cheshire-accent:#9B59B6;--cheshire-content-width:960px}

/* ── Reset & base ── */
.cheshire-wrap *{box-sizing:border-box}
.cheshire-wrap{font-family:sans-serif;line-height:1.5;color:var(--cheshire-text,#333);background:var(--cheshire-bg,transparent);max-width:var(--cheshire-content-width,960px);margin:0 auto;background-image:var(--cheshire-bg-image,none);background-size:var(--cheshire-bg-size,auto);background-repeat:var(--cheshire-bg-repeat,no-repeat);background-attachment:var(--cheshire-bg-attachment,scroll);background-position:center top}

/* #141 Hybrid-Betrieb: eigene Seiten-Huelle (_layout.htt) hat kein WBCE-Theme
   als Basis, daher minimaler eigener Reset — nur unter #cheshire-standalone
   (Body-ID nur im Hybrid-Modus vorhanden), Integriert-Modus bleibt unberuehrt. */
#cheshire-standalone{margin:0;font-family:sans-serif;line-height:1.5;color:var(--cheshire-text,#333);background:var(--cheshire-surface-alt,#f7f8fa)}
#cheshire-standalone *{box-sizing:border-box}
#cheshire-standalone-main{max-width:var(--cheshire-content-width,960px);margin:0 auto;padding:1rem}

/* ── Breadcrumb ── */
.cheshire-breadcrumb{font-size:.85rem;color:var(--cheshire-text-muted,#666);margin-bottom:1rem}
/* Zusammenstellung-Restpunkt TP4 (Peter-Feedback #408): eigene Farbe per
   --cheshire-breadcrumb statt reiner Ableitung, siehe Theme::cssVarsBlock() */
/* Nachbesserung 13.09.2026, siehe Kommentar in cheshire.css: kein Fallback
   mehr auf --cheshire-accent, eigener fester Theme-Default. */
.cheshire-breadcrumb a{color:var(--cheshire-breadcrumb,#9B59B6);text-decoration:none}
.cheshire-breadcrumb a:hover{text-decoration:underline}
/* Peter-Wunsch: gleiche Navi auch am Seitenende, damit man nach dem
   Scrollen nicht orientierungslos dasteht (Forum-/Thread-Ansicht). */
.cheshire-breadcrumb-bottom{margin-top:1.5rem;margin-bottom:0;padding-top:.8rem;border-top:1px solid var(--cheshire-border-strong,#e2e6ea)}
.cheshire-back-to-top{float:right}

/* ── Editor ── */
.cheshire-editor-toolbar{display:flex;gap:.25rem;margin-bottom:.25rem}
.cheshire-editor-toolbar button{border:1px solid var(--cheshire-border-strong,#ccc);background:var(--cheshire-surface-alt,#f5f5f5);border-radius:3px;padding:.25rem .5rem;cursor:pointer}
.cheshire-editor-toolbar button:hover{background:var(--cheshire-surface-alt,#e8e8e8)}
.CodeMirror{border:1px solid var(--cheshire-border-strong,#ccc);border-radius:3px}
textarea.cheshire-editor{border:1px solid var(--cheshire-border-strong,#ccc);border-radius:3px;padding:.5rem;width:100%}

.cheshire-category{margin-bottom:1.5rem}
.cheshire-category-title{font-size:1.1rem;font-weight:700;padding:.5rem 0;border-bottom:2px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem}
.cheshire-category-toggle{background:none;border:none;color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));cursor:pointer;font-size:.85rem;padding:0 .2rem}
/* Weg 1 (Design & Layout, 31.08.2026): siehe ContentDisplay.php */
.cheshire-category-description{font-size:.82rem;color:var(--cheshire-text-muted,#666);margin:0 0 .5rem}
.cheshire-badge-thread-count{background:var(--cheshire-surface-alt,#f0f4f8);color:var(--cheshire-text-muted,#666);font-size:.72rem;padding:.1rem .4rem;border-radius:3px;margin-left:auto;font-weight:400}

/* ── Forum row ── */
/* Peter-Wunsch (18.09.2026): erste Spalte ist jetzt der Auf/Zu-Pfeil
   (.cheshire-forum-expand), analog zur Kategorie-Ebene -- siehe Markup-
   Reihenfolge in ForumController.php. */
.cheshire-forum-row{display:grid;grid-template-columns:auto 2rem 1fr auto auto;gap:.5rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--cheshire-border,#eee)}
/* Weg 1 (Design & Layout, 31.08.2026): "Kompakte Darstellung", siehe ContentDisplay.php */
.cheshire-forum-row-compact{padding:.3rem 0;font-size:.9em}
.cheshire-forum-row-compact .cheshire-forum-icon{font-size:.8em}
.cheshire-forum-row-compact .cheshire-forum-description{display:none}
.cheshire-forum-name{font-weight:600;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none}
.cheshire-forum-name:hover{text-decoration:underline}
.cheshire-forum-description{font-size:.82rem;color:var(--cheshire-text-muted,#666);margin:.1rem 0 0}
.cheshire-forum-stats{display:flex;gap:.35rem;justify-content:flex-end;align-items:center}
/* Design-Runde 2, Thema 1 (Peter-Mockup-Feedback 01.09.2026): Themen-/
   Beitraege-Zahlen als Badges statt Fliesstext, gleiches Muster wie
   .cheshire-badge-thread-count auf der Kategorie-Ebene. */
.cheshire-forum-badge{font-size:.72rem;padding:.15rem .55rem;border-radius:10px;white-space:nowrap;font-weight:400}
.cheshire-forum-badge-threads{background:var(--cheshire-surface-alt,#f5f5f5);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-forum-badge-posts{background:var(--cheshire-surface-alt,#f5f5f5);color:var(--cheshire-text-muted,#666)}
/* Bugfix (Peter-Bugreport 13.09.2026, "Ich habe bei Modern naemlich noch
   Text!"): Backlog #491/#547 -- Posts/Views-Badges in der Themen-Liste
   existierten bisher nur in cheshire.css, hier komplett gefehlt (nicht die
   Vorschau, siehe cheshire.css-Kommentar). Gleiches Muster/Farbton wie
   .cheshire-forum-badge oben. */
.cheshire-thread-stats{display:flex;gap:.4rem;flex-wrap:nowrap}
.cheshire-thread-badge{font-size:.72rem;padding:.15rem .5rem;border-radius:10px;white-space:nowrap;font-weight:400;background:var(--cheshire-surface-alt,#f5f5f5);color:var(--cheshire-text-muted,#666)}
.cheshire-forum-lastpost{font-size:.78rem;color:var(--cheshire-text-faint,#999);text-align:right;white-space:nowrap;min-width:11rem}
.cheshire-forum-expand{text-align:left}
.cheshire-forum-toggle{background:var(--cheshire-surface-alt,#f4eefa);border:1px solid var(--cheshire-border-strong,#d7bfe8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));cursor:pointer;font-size:.75rem;padding:.15rem .5rem;border-radius:4px}
.cheshire-forum-toggle:hover{background:var(--cheshire-surface-alt,#ecdff5)}
.cheshire-forum-mini-threads{padding:.3rem 0 .6rem 2.5rem;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-mini-thread-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;font-size:.85rem;padding:.25rem 0}
.cheshire-mini-thread-row a{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none;font-weight:600}
.cheshire-mini-thread-row a:hover{text-decoration:underline}
.cheshire-mini-thread-stats{display:flex;gap:.3rem;flex-wrap:nowrap}
.cheshire-mini-thread-lastpost{margin-left:auto;font-size:.75rem;color:var(--cheshire-text-faint,#999);white-space:nowrap}
.cheshire-mini-thread-more{display:inline-block;margin-top:.3rem;font-size:.8rem;color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));text-decoration:none}
.cheshire-mini-thread-more:hover{text-decoration:underline}

/* ── Thread list ── */
.cheshire-thread-row{display:grid;grid-template-columns:1fr auto auto auto;gap:.5rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-thread-title{font-weight:600;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none}
.cheshire-thread-title:hover{text-decoration:underline}
.cheshire-badge-solved{background:#27AE60;color:#fff;font-size:.72rem;padding:.1rem .4rem;border-radius:3px;margin-left:.4rem}
.cheshire-badge-unread{background:#E67E22;color:#fff;font-size:.72rem;padding:.1rem .4rem;border-radius:3px;margin-left:.4rem}
/* Design-Runde 4 TP5 (Peter-Wunsch 19.09.2026): Neu/Gelöst-Zaehler im
   Kategorie-Kopf, per JS-Klasse (.cheshire-category-collapsed) nur
   sichtbar, solange die Kategorie eingeklappt ist. */
.cheshire-cat-status-badges{display:none;margin-left:.4rem}
.cheshire-category-collapsed .cheshire-cat-status-badges{display:inline-flex;gap:.3rem}
.cheshire-cat-status-badges .cheshire-badge-solved{margin-left:0}
/* Peter-Wunsch 20.09.2026: "+Neues Thema"-Icon-Link direkt in der Forum-
   Zeile, neben den neu/gelöst-Badges (siehe ForumController.php). Rund,
   kompakt, Primaerfarbe wie .cheshire-btn-new, aber als Icon statt Text. */
.cheshire-forum-new-icon{display:inline-flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;margin-left:.4rem;background:var(--cheshire-primary,#2E4057);color:#fff;border-radius:50%;font-size:.7rem;text-decoration:none;line-height:1;vertical-align:middle}
.cheshire-forum-new-icon:hover{background:var(--cheshire-accent,#3D6B8C);color:#fff}
.cheshire-badge-closed{background:#7f8c8d;color:#fff;font-size:.72rem;padding:.1rem .4rem;border-radius:3px;margin-left:.4rem}

/* ── Verschieben/Massenbearbeitung (1.30) ── */
.cheshire-move-thread-form{display:inline-block;margin-left:.6rem;font-size:.85rem}
.cheshire-move-thread-form select{padding:.2rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px}
.cheshire-bulk-move-bar{position:sticky;bottom:0;background:var(--cheshire-warning-bg,#fff3cd);border:1px solid var(--cheshire-warning-border,#ffc107);border-radius:6px;padding:.6rem .9rem;margin:.8rem 0;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.cheshire-bulk-move-bar input[type="number"],.cheshire-bulk-move-bar input[type="text"]{padding:.25rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px}
/* Chip-Design (Peter-Wunsch 20.09.2026): siehe cheshire.css fuer Erklaerung. */
.cheshire-tag{display:inline-flex;align-items:center;gap:.3rem;background:var(--cheshire-surface,#fff);border:2px solid var(--tag-color,var(--cheshire-accent,#9B59B6));color:var(--tag-color,var(--cheshire-accent,#9B59B6));font-size:.72rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;margin:.1rem;text-decoration:none}
.cheshire-icon-sticky,.cheshire-icon-type{color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));margin-right:.15rem}
/* Gruppe 5 (18.09.2026: "Sticky-Umrandung"): siehe cheshire.css fuer Erklaerung. */
.cheshire-thread-row-sticky,.cheshire-mini-thread-row-sticky{border-left:3px solid var(--cheshire-accent,#9B59B6);background:var(--cheshire-surface-alt,#f7f8fa);padding-left:.5rem;border-radius:4px}
.cheshire-thread-lastpost,.cheshire-lastpost,.cheshire-lastpost-empty{font-size:.78rem;color:var(--cheshire-text-faint,#999);text-align:right;white-space:nowrap}
.cheshire-lastpost a{color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));text-decoration:none}
.cheshire-lastpost a:hover{text-decoration:underline}
.cheshire-lastpost-jump{display:inline-block;margin-left:.3rem;text-decoration:none;opacity:.7;font-size:.95em}
.cheshire-lastpost-jump:hover{opacity:1;text-decoration:none}
@media (max-width:700px){
    .cheshire-forum-row{grid-template-columns:auto 2rem 1fr auto}
    .cheshire-forum-lastpost{display:none}
    .cheshire-forum-mini-threads{padding-left:.5rem}
    .cheshire-mini-thread-lastpost{display:none}
    .cheshire-thread-row{grid-template-columns:1fr auto auto}
    .cheshire-thread-lastpost{display:none}
}

/* ── Pagination-Profil-Override (Peter-Reminder Juli 2026) ── */
.cheshire-pagination-pref{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin:.8rem 0 1.2rem;padding:.7rem 1rem;background:var(--cheshire-surface-alt,#f4f6f8);border-radius:6px}
.cheshire-pagination-pref select{padding:.3rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px}

/* ── Consent / legal checkboxes ──
   !important on layout props: WBCE Flat Theme's global form CSS applies
   its own label/input[checkbox] rules (block labels, full-width inputs)
   that otherwise break this layout. Used for registration consent and
   upload copyright confirmation. */
.cheshire-consent-box{margin:1rem 0;padding:.8rem 1rem;background:var(--cheshire-surface-alt,#f8f9fa);border:1px solid var(--cheshire-border-strong,#dee2e6);border-radius:6px}
.cheshire-consent-item{display:flex!important;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;cursor:pointer;font-weight:400;line-height:1.4}
.cheshire-consent-item:last-child{margin-bottom:0}
.cheshire-consent-item input[type="checkbox"]{margin-top:.2rem;flex-shrink:0;width:auto!important;min-width:16px;height:16px}
.cheshire-consent-item span{flex:1 1 auto}
@media (max-width:480px){
    .cheshire-consent-item{gap:.4rem;font-size:.88rem}
}

/* ── Post ── */
.cheshire-post{border:1px solid var(--cheshire-border,#eee);border-radius:6px;margin-bottom:1rem;overflow:hidden}
.cheshire-post-author{background:var(--cheshire-surface-alt,#f5f5f5);padding:.5rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);display:flex;align-items:flex-start;gap:.5rem}
/* Design-Runde 4 TP2 (Peter-Wunsch 19.09.2026): Avatar-Spalte, siehe
   cheshire.css fuer ausfuehrlichen Kommentar -- identisches Muster in
   allen 3 Theme-Dateien, da diese CSS-Dateien nicht kaskadieren. */
.cheshire-post-avatar{flex:0 0 auto;display:block;line-height:0}
.cheshire-post-avatar img{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--cheshire-border,#ddd)}
@media (max-width:480px){.cheshire-post-avatar img{width:28px;height:28px}}
/* Design-Runde 2, Thema 2: Name+Rolle vs. Zeit/Beitraege-Link getrennte
   Zeilen statt einer flachen Reihe (Peter-Mockup-Feedback 01.09.2026). */
.cheshire-post-author-block{display:flex;flex-direction:column;gap:.15rem}
.cheshire-post-author-name{font-size:.88rem;font-weight:600;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.cheshire-post-author-meta{font-size:.76rem;color:var(--cheshire-text-faint,#999);display:flex;align-items:center;gap:.35rem}
.cheshire-post-author-meta .cheshire-btn-userposts{color:inherit;text-decoration:none}
.cheshire-post-author-meta .cheshire-btn-userposts:hover{text-decoration:underline}
.cheshire-meta-dot{opacity:.6}
/* Design-Runde 2, Thema 5 (Peter-Mockup-Feedback 01.09.2026): verwaltende
   Aktionen (Bearbeiten/Loeschen/Loesung/Bearbeitet-Hinweis/Addon-Tools)
   rechtsbuendig in derselben Zeile wie Autor/Datum -- "oben rechts in die
   Zeile des Posts". Elementare Aktionen (Like/Zitieren/Antworten/Melden)
   bleiben in .cheshire-post-actions unten. */
.cheshire-post-actions-top{margin-left:auto;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;flex-shrink:0}
/* Design-Runde 4 TP3: siehe cheshire.css fuer Kommentar. */
.cheshire-post-body{padding:.8rem;background:var(--cheshire-surface,#fff)}
/* TP3 (22.09.2026): Sicherheitsnetz fuer direkt im Beitragstext eingefuegte
   Bilder (TipTap/Markdown/ITG) -- Anhaenge sind bereits ueber
   image_thumb_w/h gedeckelt, Inline-Bilder bisher nicht. */
.cheshire-post-body img{max-width:100%;height:auto}
/* Peter-Feedback 11.09.2026 (Quote-Redesign), nachgezogen aus cheshire.css --
   Bug (Peter-Feedback 11.09.2026, "merkwuerdig", hartes Reload half nicht):
   jedes Theme ist eine EIGENSTAENDIGE CSS-Datei (siehe Bootstrap::$themeCssFile),
   cheshire.css wird nur beim Default-Theme geladen -- bei aktivem Modern/
   Classic-Theme fehlten Blockquote-/Badge-Styles daher komplett, kein
   Cache-Problem. Siehe cheshire.css fuer ausfuehrliche Kommentare. */
.cheshire-post-body blockquote{border-left:3px solid var(--cheshire-accent,#9B59B6);margin:.6rem 0;padding:.5rem .9rem;background:var(--cheshire-surface-alt,#f4eefa);color:var(--cheshire-text-muted,#555);border-radius:0 4px 4px 0}
.cheshire-post-body blockquote[data-author]::before{content:"Zitat von " attr(data-author) ":";display:block;font-weight:600;font-size:.82rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));margin-bottom:.3rem}
/* Peter-Feedback 12.09.2026: Badge muss wie das volle Zitat "gerahmt" sein.
   [replyref=ID:N] nutzt dieselben Klassen, eigener Rahmenfarbton via
   .cheshire-replyref-badge. Siehe cheshire.css fuer ausfuehrliche Kommentare. */
.cheshire-quoteref-badge{position:relative;display:block;margin:.6rem 0;padding:.5rem .9rem;background:var(--cheshire-surface-alt,#f4eefa);border-left:3px solid var(--cheshire-accent,#9B59B6);border-radius:0 4px 4px 0}
.cheshire-replyref-badge{border-left-color:var(--cheshire-primary,#4A2B70)}
.cheshire-quoteref-jump{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none}
.cheshire-quoteref-jump:hover{text-decoration:underline}
.cheshire-quoteref-author-deleted{font-style:italic;color:var(--cheshire-text-muted,#666)}
.cheshire-quoteref-unavailable{display:block;margin:.6rem 0;padding:.5rem .9rem;font-size:.82rem;font-style:italic;color:var(--cheshire-text-muted,#666);background:var(--cheshire-surface-alt,#f0f0f0);border-left:3px dashed var(--cheshire-border-strong,#d7bfe8);border-radius:0 4px 4px 0}
.cheshire-quoteref-popup{visibility:hidden;opacity:0;position:absolute;left:0;bottom:calc(100% + .4rem);z-index:20;width:280px;max-width:80vw;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#d7bfe8);border-radius:6px;box-shadow:var(--cheshire-shadow-sm,0 4px 16px rgba(0,0,0,.15));padding:.6rem .8rem;font-size:.82rem;line-height:1.4;color:var(--cheshire-text,#333);transition:opacity .12s ease}
.cheshire-quoteref-badge:hover .cheshire-quoteref-popup,.cheshire-quoteref-badge:focus-within .cheshire-quoteref-popup{visibility:visible;opacity:1}
.cheshire-post-actions{padding:.4rem .8rem;border-top:1px solid var(--cheshire-border,#eee);font-size:.82rem}
.cheshire-btn-like,.cheshire-btn-quote,.cheshire-btn-reply,.cheshire-btn-copy{background:var(--cheshire-surface-alt,#f4eefa);border:1px solid var(--cheshire-border-strong,#d7bfe8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.2rem .6rem;border-radius:4px;cursor:pointer;font-size:.82rem;margin-right:.3rem}
.cheshire-btn-like:hover,.cheshire-btn-quote:hover,.cheshire-btn-reply:hover,.cheshire-btn-copy:hover{background:var(--cheshire-surface-alt,#ecdff5)}
.cheshire-like-count-static{display:inline-block;color:var(--cheshire-text-muted,#667);padding:.2rem .6rem;font-size:.82rem;margin-right:.3rem}
/* Gruppe 7 (18.09.2026, "Post-Export/Speichern-Symbol"): Export-Button + Dropdown-Menue (TXT/Markdown/PDF) */
.cheshire-export-wrap{position:relative;display:inline-block}
.cheshire-btn-export{background:var(--cheshire-surface-alt,#f4eefa);border:1px solid var(--cheshire-border-strong,#d7bfe8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.2rem .6rem;border-radius:4px;cursor:pointer;font-size:.82rem;margin-right:.3rem}
.cheshire-btn-export:hover{background:var(--cheshire-surface-alt,#ecdff5)}
/* oeffnet nach OBEN (bottom statt top) -- .cheshire-post hat overflow:hidden
   (abgerundete Ecken), die Aktionsleiste sitzt direkt am unteren Rand, ein
   nach unten oeffnendes Menu wuerde dort abgeschnitten (gleiche Logik wie
   .cheshire-quoteref-popup weiter oben in dieser Datei) */
.cheshire-export-menu{display:none;position:absolute;left:0;bottom:calc(100% + .3rem);z-index:20;min-width:160px;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#d7bfe8);border-radius:6px;box-shadow:var(--cheshire-shadow-sm,0 4px 16px rgba(0,0,0,.15));padding:.3rem 0}
.cheshire-export-menu.cheshire-export-open{display:block}
.cheshire-export-menu a{display:block;padding:.35rem .8rem;font-size:.82rem;color:var(--cheshire-text,#333);text-decoration:none}
.cheshire-export-menu .cheshire-btn-copy{display:block;padding:.35rem .8rem;font-size:.82rem;color:var(--cheshire-text,#333);text-decoration:none;background:none;border:0;width:100%;text-align:left;cursor:pointer;margin:0;font-family:inherit}
.cheshire-export-menu a:hover{background:var(--cheshire-surface-alt,#ecdff5)}

/* ── Quick reply ── */
.cheshire-quick-reply{margin-top:1.5rem}
.cheshire-quick-reply textarea{width:100%;padding:.6rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:6px;min-height:80px;font-family:inherit}
.cheshire-quick-reply .cheshire-reply-actions button{margin-top:.4rem;padding:.5rem 1rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}

/* ── Guest notice ── */
.cheshire-guest-notice{background:var(--cheshire-surface-alt,#f5eefc);border:1px solid var(--cheshire-border-strong,#c9a3dd);border-radius:5px;padding:.7rem;margin-top:.5rem;font-size:.88rem}
.cheshire-guest-notice a{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-weight:600}

/* ── Auth forms ── */
.cheshire-auth-form{max-width:400px;margin:2rem auto}
.cheshire-form-wide{max-width:700px}
.cheshire-auth-form h1{margin-bottom:1rem}
.cheshire-auth-form label{display:block;margin:.6rem 0 .2rem;font-size:.88rem;font-weight:600}
.cheshire-auth-form input{width:100%;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:5px}
.cheshire-auth-form button{margin-top:.8rem;padding:.6rem 1.2rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer;font-weight:600}
#cheshire-pw-strength{display:none !important;margin:.4rem 0 .6rem;padding:.5rem .7rem;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ddd);border-radius:4px;font-size:.88rem;line-height:1.5}
#cheshire-pw-strength.active{display:block !important}
.cheshire-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1rem 0}
.cheshire-settings-box{background:var(--cheshire-surface-alt,#f4eefa);border:1px solid var(--cheshire-border,#ece3f5);border-radius:8px;padding:1rem 1.2rem}
.cheshire-settings-box h2{margin:0 0 .6rem;font-size:1.05rem}
.cheshire-settings-box label{display:block;margin:.5rem 0 .2rem;font-size:.9rem}
.cheshire-settings-box button{margin-top:.6rem;padding:.4rem 1rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer;font-weight:600}
.cheshire-error{background:var(--cheshire-danger-bg,#FDEDEC);border:1px solid var(--cheshire-danger-border,#C0392B);border-radius:5px;padding:.6rem;margin:.6rem 0;font-size:.88rem;color:var(--cheshire-danger-text,#7B241C)}
/* DMCA-Formular (Peter-Wunsch) */
.cheshire-dmca-intro{color:var(--cheshire-text-muted,#555);font-size:.9rem;max-width:600px;margin-bottom:1rem}
.cheshire-dmca-success{background:var(--cheshire-success-bg,#EAFAF1);border:1px solid var(--cheshire-success-border,#27AE60);border-radius:5px;padding:.8rem 1rem;color:var(--cheshire-success-text,#1E8449)}

/* ── Pagination ── */
.cheshire-pagination{margin:1rem 0;display:flex;gap:.4rem;flex-wrap:wrap}
.cheshire-pagination a{padding:.3rem .7rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:4px;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none;font-size:.88rem}
.cheshire-pagination a.active,.cheshire-pagination a:hover{background:var(--cheshire-primary,#4A2B70);color:#fff;border-color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}

/* ── Tag cloud (Backlog #616 Wolken-Design, Peter-Wunsch 15.09.2026) ──
   Tier-Klassen t1..t5 kommen aus TagCloud::withTiers() (Services/TagCloud.php),
   ersetzt die alte hardcodierte Inline-font-size-Berechnung im Logik-Code. */
.cheshire-tag-cloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem;line-height:1.6;padding:.7rem 0}
.cheshire-tag-count{font-size:.75em;color:inherit;opacity:.75}
.cheshire-tag{transition:transform .12s ease,opacity .12s ease}
.cheshire-tag:hover{transform:scale(1.08);opacity:.92}
.cheshire-tag-t1{font-size:.68rem;opacity:.7}
.cheshire-tag-t2{font-size:.8rem;opacity:.8}
.cheshire-tag-t3{font-size:.95rem;opacity:.9;font-weight:600}
.cheshire-tag-t4{font-size:1.12rem;opacity:.96;font-weight:600}
.cheshire-tag-t5{font-size:1.35rem;opacity:1;font-weight:700}

/* ── Delete Button ── */
.cheshire-btn-delete{background:none;border:1px solid var(--cheshire-danger-border,#C0392B);color:var(--cheshire-danger-text,#C0392B);border-radius:4px;padding:.2rem .5rem;cursor:pointer;font-size:.8rem}
.cheshire-btn-delete:hover{background:#C0392B;color:#fff}
.cheshire-thread-actions{display:inline-block}

/* ── Search ── */
.cheshire-search-form{display:flex;gap:.5rem;margin:1rem 0}
.cheshire-search-form input{flex:1;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:5px}
.cheshire-search-form button{padding:.5rem 1rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}
.cheshire-search-result{padding:.7rem 0;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-search-type{background:var(--cheshire-accent,#9B59B6);color:#fff;font-size:.72rem;padding:.1rem .4rem;border-radius:3px;margin-right:.4rem}
.cheshire-search-forum{font-size:.82rem;color:var(--cheshire-text-muted,#666)}
.cheshire-search-excerpt{font-size:.85rem;color:var(--cheshire-text-muted,#666);margin:.3rem 0 0}

/* ── Edit button + timestamp ── */
.cheshire-btn-edit{background:none;border:1px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));border-radius:4px;padding:.2rem .5rem;cursor:pointer;font-size:.8rem;text-decoration:none;margin-right:.3rem}
.cheshire-btn-edit:hover{background:var(--cheshire-accent,#9B59B6);color:#fff}
.cheshire-edited{font-size:.75rem;color:var(--cheshire-text-faint,#aaa);margin-left:.5rem;font-style:italic}
/* Peter-Wunsch 20.09.2026: bearbeitet-Hinweis als eigene Zeile unter dem
   Autoren-Meta-Block statt zwischen den Aktions-Buttons -- kein Einzug. */
.cheshire-post-edited-line{margin-top:.15rem}
.cheshire-post-edited-line .cheshire-edited{margin-left:0}
/* Weg 1 (Design & Layout, 31.08.2026): siehe ContentDisplay.php */
.cheshire-post-date{font-size:.78rem;color:var(--cheshire-text-faint,#999);font-weight:400}
.cheshire-post-rank-badge{color:#fff;font-size:.68rem;font-weight:700;padding:.05rem .4rem;border-radius:3px;white-space:nowrap}

/* ── Post subject ── */
.cheshire-post-subject{font-weight:600;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.3rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);font-size:.9rem}
.cheshire-reply-subject{width:100%;padding:.4rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:5px;margin-bottom:.4rem;box-sizing:border-box}

/* ── Report button ── */
.cheshire-btn-report{background:none;border:1px solid var(--cheshire-warning-border,#E67E22);color:#E67E22;border-radius:4px;padding:.2rem .5rem;font-size:.8rem;text-decoration:none;margin-left:.3rem}
.cheshire-btn-report:hover{background:#E67E22;color:#fff}

/* ── Solution marking (T04) ── */
.cheshire-btn-solve{background:none;border:1px solid var(--cheshire-success-border,#27AE60);color:var(--cheshire-success-text,#27AE60);border-radius:4px;padding:.2rem .5rem;cursor:pointer;font-size:.8rem;margin-left:.3rem}
.cheshire-btn-solve:hover{background:#27AE60;color:#fff}
.cheshire-badge-solution{background:#27AE60;color:#fff;font-size:.78rem;padding:.2rem .5rem;border-radius:4px;margin-left:.3rem}

/* ── Signature (SIG01-SIG03) ── */
/* Design-Runde 3 TP1: eigener Rahmen/Abstand entfernt -- steckt jetzt in
   <details class="cheshire-content-block">, siehe Signature::render(). */
.cheshire-signature{font-size:.85rem;color:var(--cheshire-text-muted,#666)}
.cheshire-signature img{max-height:80px;max-width:100%;vertical-align:middle}

/* Zusammenstellung-Restpunkt TP5 (Peter-Feedback #408): siehe cheshire.css
   fuer die volle Begruendung -- echtes Button-Muster statt Textlink/Chip. */
.cheshire-btn-new{display:inline-block;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;padding:.4rem 1rem;font-size:.85rem;text-decoration:none;cursor:pointer}
.cheshire-btn-new:hover{background:var(--cheshire-accent,#9B59B6);color:#fff}

/* ── Social-media profile links (SM01) ── */
.cheshire-social-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.cheshire-social-item{background:var(--cheshire-primary,#4A2B70);border-radius:5px;font-size:.85rem;overflow:hidden}
.cheshire-social-item a{color:#fff;text-decoration:none;display:block;padding:.3rem .7rem}
.cheshire-social-item a:hover{background:var(--cheshire-accent,#9B59B6)}

/* ── Support-Links: Spenden/Wunschlisten/Gutscheine (3.13, SW01-SW07) ──
   Fehlte bisher in diesem Theme (nur in cheshire.css vorhanden) -- im
   Zuge von Design-Runde 3 TP1 nachgezogen, siehe cheshire.css. ── */
.cheshire-support-group{margin:.6rem 0}
.cheshire-support-group-title{margin:0 0 .3rem;font-size:.9rem;color:var(--cheshire-text-muted,#555)}
.cheshire-support-links{display:flex;flex-wrap:wrap;gap:.5rem}
.cheshire-support-item{background:var(--cheshire-primary,#4A2B70);color:#fff;padding:.3rem .7rem;border-radius:5px;font-size:.85rem;text-decoration:none;display:inline-block}
.cheshire-support-item:hover{background:var(--cheshire-accent,#9B59B6)}

/* ── Community-Visitenkarte (CS01) ── */
.cheshire-card{display:flex;gap:1rem;align-items:flex-start;margin:1rem 0}
.cheshire-avatar-placeholder{flex-shrink:0;width:72px;height:72px;border-radius:50%;background:var(--cheshire-primary,#4A2B70);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700}
.cheshire-card-main h1{margin:0 0 .2rem}
.cheshire-card-meta{margin:.15rem 0;color:var(--cheshire-text-muted,#555);font-size:.9rem}
.cheshire-card-score{font-weight:700;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-rating{margin-top:.4rem;font-size:.9rem}
.cheshire-rating-emoji{font-size:1.3rem;vertical-align:middle}
.cheshire-rate-form{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;flex-wrap:wrap}
.cheshire-rate-form label{display:inline-flex;align-items:center;gap:.15rem;font-size:.85rem}
.cheshire-rating-choice{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border:2px solid transparent;border-radius:50%;cursor:pointer}
.cheshire-rating-choice:hover{background:var(--cheshire-surface-alt,#f5f5f5)}
.cheshire-rating-radio{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}
.cheshire-rating-emoji-pick{font-size:1.3rem;line-height:1}
.cheshire-rating-choice:has(.cheshire-rating-radio:checked){border-color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));background:var(--cheshire-surface-alt,#f2eaf8)}
.cheshire-rating-radio:focus-visible ~ .cheshire-rating-emoji-pick{outline:2px solid var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));outline-offset:2px;border-radius:50%}
.cheshire-rate-submit{display:none}
.cheshire-bio{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;padding:.6rem .9rem;margin:.6rem 0;font-size:.9rem}
.cheshire-card-edit{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;padding:.8rem 1rem;margin:.6rem 0}
.cheshire-card-edit textarea{width:100%;max-width:600px;padding:.4rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px}
.cheshire-avatar-edit-form{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0;font-size:.85rem}
.cheshire-avatar-rules-confirm{display:flex!important;align-items:flex-start;gap:.5rem;flex-basis:100%;cursor:pointer;font-weight:400;line-height:1.4;font-size:.85rem}
.cheshire-avatar-rules-confirm input[type="checkbox"]{margin-top:.2rem;flex-shrink:0;width:auto!important;min-width:16px;height:16px}
.cheshire-help-text{font-size:.78rem;color:var(--cheshire-text-faint,#888);margin:.3rem 0 .8rem}
.cheshire-tab-toggles{display:flex;flex-direction:column;gap:.2rem;margin:.5rem 0;font-size:.85rem}
/* Weg 1 (Design & Layout, 31.08.2026): Profil-Block-Reihenfolge per CSS
   "order", siehe ContentDisplay::profileBlockOrder() + user_profile.htt.
   Design-Runde 2, Thema 4 (01.09.2026): 2-spaltiges Grid statt 1 Spalte fuer
   bessere Flaechennutzung -- Grid respektiert "order" wie Flexbox, die
   Drag&Drop-Reihenfolge bleibt dadurch unveraendert nutzbar. Tabs/Gaestebuch
   spannen per .cheshire-profile-block-full ueber beide Spalten. */
.cheshire-profile-blocks{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem;align-items:start}
.cheshire-profile-block-full{grid-column:1/-1}
@media (max-width:768px){
    .cheshire-profile-blocks{grid-template-columns:1fr}
}
/* Design-Runde 2, Thema 3 (Peter-Mockup-Feedback 01.09.2026): gleichmaessige
   Schaltflaechen statt einzelner Text-Links -- .cheshire-profile-link-btn
   ist die gemeinsame Klasse fuer <a>, <button> (in Formularen) und
   Addon-Buttons aus dem Hook "user.profile_links". */
.cheshire-card-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.cheshire-profile-link-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .8rem;border-radius:8px;background:var(--cheshire-surface,#fff);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.82rem;line-height:1.3;text-decoration:none;cursor:pointer;box-shadow:var(--cheshire-shadow-sm,0 1px 2px rgba(74,43,112,.1))}
.cheshire-profile-link-btn:hover{background:var(--cheshire-surface-alt,#f4eefa)}
.cheshire-demo-link{opacity:.55;cursor:not-allowed}
.cheshire-demo-link:hover{background:var(--cheshire-surface,#fff)}
.cheshire-expertise{margin:1rem 0}
.cheshire-expertise-row{display:grid;grid-template-columns:120px 1fr 40px;align-items:center;gap:.6rem;margin:.3rem 0;font-size:.85rem}
.cheshire-expertise-bar{background:#eee;border-radius:4px;height:8px;overflow:hidden}
.cheshire-expertise-bar div{background:var(--cheshire-primary,#4A2B70);height:100%}
.cheshire-profile-tabs{margin-top:1.5rem}
.cheshire-tab-nav{display:flex;flex-wrap:wrap;gap:.4rem;border-bottom:1px solid var(--cheshire-border-strong,#e2e2e2);margin-bottom:.8rem;padding-bottom:.4rem}
.cheshire-tab-btn{background:var(--cheshire-surface-alt,#f0f0f0);border:none;padding:.45rem .9rem;border-radius:5px 5px 0 0;cursor:pointer;font-size:.88rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-tab-btn.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
.cheshire-tab-panel{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.8rem 1rem}
.cheshire-tab-panel h4{margin:.2rem 0 .3rem;font-size:.88rem;color:var(--cheshire-text-muted,#555)}
.cheshire-subtab-nav{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.6rem}
.cheshire-subtab-btn{background:var(--cheshire-surface-alt,#eef1f4);border:none;padding:.3rem .7rem;border-radius:4px;cursor:pointer;font-size:.8rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-subtab-btn.active{background:var(--cheshire-accent,#9B59B6);color:#fff}
.cheshire-more-note{color:var(--cheshire-text-faint,#999);font-size:.78rem;margin:.4rem 0 0}
.cheshire-activity-list{list-style:none;margin:0;padding:0}
.cheshire-activity-list li{padding:.2rem 0;font-size:.87rem;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-activity-list li:last-child{border-bottom:none}
.cheshire-status-badge{background:var(--cheshire-surface-alt,#f2eaf8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.05rem .5rem;border-radius:3px;font-size:.75rem;margin-left:.3rem}
.cheshire-empty{color:var(--cheshire-text-faint,#999);font-size:.85rem}

/* ── TOP-Listen ── */
.cheshire-top-periods{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}
.cheshire-top-period{padding:.35rem .8rem;border-radius:5px;background:var(--cheshire-surface-alt,#f0f0f0);text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.85rem}
.cheshire-top-period.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
.cheshire-top-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.cheshire-top-section{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.8rem 1rem}
.cheshire-top-section h3{margin:0 0 .5rem;font-size:1rem}
.cheshire-top-list{list-style:none;margin:0;padding:0}
.cheshire-top-list li{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.88rem;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-top-list li:last-child{border-bottom:none}
.cheshire-top-rank{color:var(--cheshire-text-faint,#999);margin-right:.3rem}
.cheshire-top-count{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-weight:600}

/* ── Statistiken & WIO (TP7, Zusammenstellung-Restpunkt #408): war
   urspruenglich nur in cheshire.css -- gleicher "Theme-Dateien schliessen
   sich gegenseitig aus"-Fehler wie bei .cheshire-top-list/Portal (siehe
   Kommentar unten), Statistik-Seite fiel bei aktivem Modern-Theme auf
   unformatierten Fliesstext zurueck. ── */
.cheshire-stats-section{background:var(--cheshire-surface-alt,#f7f2fb);border:1px solid var(--cheshire-border,#e2d6ee);border-radius:10px;padding:.8rem 1rem;margin:1rem 0}
.cheshire-stats-section h3{margin:0 0 .5rem;font-size:1rem}
.cheshire-stats-totals{display:flex;flex-wrap:wrap;gap:.8rem}
.cheshire-stats-badge{display:flex;flex-direction:column;align-items:center;min-width:90px;padding:.5rem .8rem;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border,#e2d6ee);border-radius:8px}
.cheshire-stats-badge strong{font-size:1.3rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-stats-badge span{font-size:.78rem;color:var(--cheshire-text-faint,#999)}
.cheshire-stats-newest{margin:.7rem 0 0;font-size:.88rem}
.cheshire-stats-record{margin:0;font-size:.9rem}
.cheshire-wio-group{margin-bottom:.9rem}
.cheshire-wio-group:last-child{margin-bottom:0}
.cheshire-wio-group h4{margin:0 0 .3rem;font-size:.9rem;color:var(--cheshire-text-faint,#999)}
.cheshire-wio-list{list-style:none;margin:0;padding:0}
.cheshire-wio-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem;border-bottom:1px solid var(--cheshire-border,#e2d6ee)}
.cheshire-wio-list li:last-child{border-bottom:none}
.cheshire-wio-location{color:var(--cheshire-text-faint,#999);font-size:.78rem}
.cheshire-wio-ip{margin-left:auto;font-family:monospace;font-size:.78rem;color:var(--cheshire-text-faint,#999)}
/* Backlog #642 (14.09.2026): Ping-Button/Checkbox/Gruppen-Start-CSS entfernt --
   Anpingen laeuft jetzt ueber das "Wer ist online"-Widget auf der Support-
   Chat-Staff-Seite (supportchat.css .sc-online-*), WIO zeigt nur Anwesenheit. */

/* ── Portal (3-Zonen-Grid), Peter-Vorgabe 07.09.2026: Links schmal/Mitte
   breit/Rechts schmal, analog klassischem Portal-Layout. Etappe 3: pro-User
   Drag&Drop + Pfeil-Buttons zwischen/innerhalb der Zonen (cheshire.js).
   Nachtrag 07.09.2026 (Peter-Meldung "nur Links, kein Umbruch"): war
   urspruenglich nur in cheshire.css, aber Theme-CSS-Dateien sind komplette,
   sich gegenseitig ausschliessende Stylesheets -- ohne Duplikat hier fehlte
   bei aktivem Modern-Theme das komplette Grid/Toolbar-CSS, Widgets fielen
   auf blockweises Stapeln zurueck. Gleicher Fehler wurde bei
   .cheshire-top-list (oben) rechtzeitig vermieden, bei Portal zunaechst
   uebersehen. ── */
.cheshire-portal-grid{display:grid;grid-template-columns:1fr 2fr 1fr;gap:1rem;margin-top:1rem;align-items:start}
.cheshire-portal-col{display:flex;flex-direction:column;gap:1rem;min-width:0}
/* Bugfix (Zusammenstellung-Restpunkt, Peter-Mockup-Feedback #408): siehe
   cheshire.css fuer die volle Begruendung -- staerkere Kontur. */
.cheshire-portal-widget{background:var(--cheshire-surface-alt,#f7f8fa);border:1px solid var(--cheshire-border-strong,#ddd);border-radius:8px;padding:.8rem 1rem;cursor:grab}
.cheshire-portal-widget h3{margin:0 0 .5rem;font-size:1rem}
.cheshire-portal-placeholder{color:var(--cheshire-text-faint,#999);font-size:.85rem;margin:0}
.cheshire-portal-list{list-style:none;margin:0;padding:0}
.cheshire-portal-list li{padding:.25rem 0;font-size:.88rem;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-portal-list li:last-child{border-bottom:none}
.cheshire-portal-list-type{color:var(--cheshire-text-faint,#999);font-size:.78rem;margin-right:.3rem}
.cheshire-portal-more{display:inline-block;margin-top:.6rem;font-size:.82rem}
/* Bugfix (0.1.202-dev, Peter-Testplan): Backlog #494 "Neueste Beitraege"-Widget
   fehlte hier komplett -- war nur in cheshire.css gepflegt worden, Klassisch/
   Modern zeigten das Widget seither ungestylt an. Nachgezogen aus cheshire.css. */
.cheshire-portal-widget-scroll{max-height:360px;overflow-y:auto}
.cheshire-portal-list-posts li{border-bottom:1px solid var(--cheshire-border,#eee);padding:.5rem 0}
.cheshire-portal-list-posts li:last-child{border-bottom:none}
.cheshire-portal-post-title{font-weight:600;font-size:.88rem}
.cheshire-portal-post-meta{color:var(--cheshire-text-faint,#999);font-size:.76rem;margin:.15rem 0}
.cheshire-portal-post-excerpt{font-size:.84rem;color:var(--cheshire-text-muted,#555);line-height:1.4}
/* Backlog: WIO-Portal-Widget (Peter-Idee 0.1.198-dev) -- Zaehler-Zeile ueber
   der Mitglieder-Liste, gleiche Tonalitaet wie die uebrigen Portal-Meta-Zeilen. */
.cheshire-portal-wio-counts{font-size:.82rem;color:var(--cheshire-text-faint,#999);margin:0 0 .4rem}
.cheshire-portal-score{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.cheshire-portal-score-rank{font-weight:600}
.cheshire-portal-score-value{font-size:1.3rem;font-weight:700;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-portal-score-units{margin-top:.3rem;color:var(--cheshire-text-faint,#999);font-size:.8rem}
.cheshire-portal-widget-toolbar{display:flex;align-items:center;gap:.15rem;margin:-.3rem -.3rem .4rem;opacity:.55}
.cheshire-portal-widget-toolbar:hover{opacity:1}
.cheshire-drag-handle{cursor:grab;color:var(--cheshire-text-faint,#999);padding:.1rem .3rem;font-size:.85rem}
.cheshire-portal-btn{background:none;border:none;cursor:pointer;color:var(--cheshire-text-faint,#999);font-size:.78rem;padding:.15rem .35rem;border-radius:4px;line-height:1}
.cheshire-portal-btn:hover{background:var(--cheshire-border,#eee);color:var(--cheshire-text,#333)}
.cheshire-portal-btn-hide{margin-left:auto}
.cheshire-portal-col-left .cheshire-portal-btn[data-action="left"],
.cheshire-portal-col-right .cheshire-portal-btn[data-action="right"]{display:none}
.cheshire-portal-widget:first-child .cheshire-portal-btn[data-action="up"],
.cheshire-portal-widget:last-child .cheshire-portal-btn[data-action="down"]{display:none}
.cheshire-portal-status{min-height:1.2em;font-size:.8rem;color:var(--cheshire-text-faint,#999);margin:.5rem 0 0}
.cheshire-portal-hidden{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--cheshire-border,#eee)}
.cheshire-portal-hidden h3{margin:0 0 .5rem;font-size:.9rem;color:var(--cheshire-text-faint,#999)}
.cheshire-portal-hidden-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cheshire-portal-hidden-list li{display:flex;align-items:center;gap:.5rem;background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;padding:.3rem .6rem;font-size:.82rem}
.cheshire-portal-hidden-list .cheshire-portal-btn{background:var(--cheshire-border,#eee)}
/* Portal: Layout nur im Bearbeitungsmodus (0.1.444-dev) */
.cheshire-portal-edit-toggle{margin:.2rem 0 .8rem;padding:.35rem .8rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:6px;background:var(--cheshire-surface,#fff);color:inherit;cursor:pointer;font-size:.85rem}
.cheshire-portal-editing .cheshire-portal-edit-toggle{background:var(--cheshire-accent,#3D6B8C);color:#fff;border-color:transparent}
.cheshire-portal:not(.cheshire-portal-editing) .cheshire-portal-widget-toolbar,
.cheshire-portal:not(.cheshire-portal-editing) .cheshire-portal-hidden,
.cheshire-portal:not(.cheshire-portal-editing) .cheshire-portal-status{display:none}
.cheshire-portal:not(.cheshire-portal-editing) .cheshire-portal-widget{cursor:auto}
.cheshire-portal-editing .cheshire-portal-widget{outline:1px dashed var(--cheshire-border-strong,#bbb);outline-offset:2px}

/* Etappe 4: Zeitraum-Tabs im Trending-Widget (Peter-Entscheidung 07.09.2026,
   Bedienkonzept wie .cheshire-top-periods/-period beim Top-System). */
.cheshire-portal-tabs{display:flex;flex-wrap:wrap;gap:.3rem;margin:0 0 .6rem}
.cheshire-portal-tab{padding:.2rem .6rem;border-radius:5px;background:var(--cheshire-surface-alt,#f0f0f0);text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.78rem}
.cheshire-portal-tab.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
@media (max-width:700px){.cheshire-portal-grid{grid-template-columns:1fr}}

/* ── Private Nachrichten (PM) ── */
.cheshire-pm-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.8rem 0}
.cheshire-pm-tab{padding:.35rem .8rem;border-radius:5px;background:var(--cheshire-surface-alt,#f0f0f0);text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.85rem}
.cheshire-pm-tab.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
.cheshire-pm-new{margin-left:auto;padding:.35rem .8rem;border-radius:5px;background:var(--cheshire-accent,#9B59B6);color:#fff;text-decoration:none;font-size:.85rem}
.cheshire-pm-list{display:flex;flex-direction:column;border:1px solid var(--cheshire-border,#eee);border-radius:6px;overflow:hidden}
.cheshire-pm-row{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:.6rem;align-items:center;padding:.55rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);text-decoration:none;color:inherit;font-size:.87rem}
.cheshire-pm-row:last-child{border-bottom:none}
a.cheshire-pm-row:hover{background:var(--cheshire-surface-alt,#f9fafb)}
.cheshire-pm-unread{background:var(--cheshire-surface-alt,#f3eaf9);font-weight:600}
.cheshire-pm-partner{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-pm-badge{background:#E67E22;color:#fff;border-radius:10px;padding:.05rem .45rem;font-size:.72rem;margin-left:.3rem}
.cheshire-pm-excerpt{color:var(--cheshire-text-muted,#666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-pm-date{color:var(--cheshire-text-faint,#999);font-size:.78rem;text-align:right}
.cheshire-pm-thread{display:flex;flex-direction:column;gap:.3rem;margin:.6rem 0}
.cheshire-pm-msg{background:var(--cheshire-surface-alt,#f9fafb);border-radius:8px;padding:.35rem .7rem;max-width:90%}
.cheshire-pm-mine{align-self:flex-end;background:var(--cheshire-surface-alt,#f3eaf9)}
.cheshire-pm-msg-meta{color:var(--cheshire-text-faint,#999);font-size:.75rem;margin-bottom:.1rem}
/* #1032: Betreff-Trennzeile im PN-Verlauf */
.cheshire-pm-subject-divider{display:flex;align-items:center;gap:.6rem;margin:.6rem 0 .25rem;color:var(--cheshire-text-faint,#999);font-size:.8rem}
.cheshire-pm-subject-divider::before,.cheshire-pm-subject-divider::after{content:"";flex:1;border-top:1px solid var(--cheshire-border,#ddd)}
.cheshire-pm-subject-divider span{font-weight:600}
.cheshire-pm-msg-body{font-size:.9rem;line-height:1.35}.cheshire-pm-msg-body>:first-child{margin-top:0}.cheshire-pm-msg-body>:last-child{margin-bottom:0}
.cheshire-pm-reply,.cheshire-pm-compose{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}
.cheshire-pm-reply textarea{width:100%;box-sizing:border-box;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px}
.cheshire-pm-compose label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-pm-compose input,.cheshire-pm-compose textarea{padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;font-family:inherit;box-sizing:border-box}
.cheshire-pm-compose button,.cheshire-pm-reply button{align-self:flex-start;padding:.4rem 1.2rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}
.cheshire-pm-actions{margin-top:1rem;font-size:.85rem}
.cheshire-pm-badge-topbar{background:#E67E22;color:#fff;border-radius:10px;padding:.05rem .45rem;font-size:.72rem;margin-left:.2rem}

/* PM-Erweiterungen (Backlog #29): Suche, Anhaenge, Blockieren/Kontakte, Melden, Broadcast */
.cheshire-pm-search{display:flex;gap:.3rem;margin-left:auto}
.cheshire-pm-search input{padding:.35rem .6rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;font-size:.85rem}
.cheshire-pm-search button{padding:.35rem .7rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;background:var(--cheshire-surface,#fff);cursor:pointer}
/* PM zweispaltig: Navigation/Suche als Seitenspalte (0.1.444-dev) */
.cheshire-pm-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:1.2rem;align-items:start}
.cheshire-pm-side .cheshire-pm-nav{flex-direction:column;align-items:stretch;margin:.8rem 0;padding:.8rem;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border,#eee);border-radius:10px}
.cheshire-pm-side .cheshire-pm-nav a{display:block;text-align:left}
.cheshire-pm-side .cheshire-pm-search{margin-left:0;width:100%}
.cheshire-pm-side .cheshire-pm-search input{flex:1;min-width:0}
@media (max-width:860px){.cheshire-pm-layout{grid-template-columns:1fr}.cheshire-pm-side{order:-1}}

.cheshire-pm-partner-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.4rem 0 1rem}
.cheshire-pm-partner-btn{padding:.3rem .7rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;background:var(--cheshire-surface,#fff);font-size:.8rem;cursor:pointer}
.cheshire-pm-report-link{margin-left:.5rem;color:var(--cheshire-danger-text,#C0392B);text-decoration:none;font-size:.8rem}
.cheshire-pm-att-input{flex-direction:row !important;align-items:center;gap:.5rem !important;font-size:.85rem;color:var(--cheshire-text-muted,#555)}
.cheshire-pm-att-list{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.5rem}
.cheshire-pm-att-img{max-width:180px;max-height:140px;border-radius:6px;display:block}
.cheshire-pm-att-file{display:inline-block;padding:.3rem .7rem;background:var(--cheshire-surface-alt,#f2eaf8);border-radius:5px;font-size:.82rem;text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-pm-contact-add{display:flex;gap:.5rem;margin:.6rem 0 1rem}
.cheshire-pm-contact-add input{flex:1;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px}
.cheshire-pm-contact-add button{padding:.5rem 1rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}
.cheshire-pm-contact-list{display:flex;flex-direction:column;border:1px solid var(--cheshire-border,#eee);border-radius:6px;overflow:hidden;margin-bottom:1.2rem}
.cheshire-pm-contact-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);font-size:.88rem}
.cheshire-pm-contact-row:last-child{border-bottom:none}
.cheshire-pm-contact-row button{padding:.2rem .6rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;background:var(--cheshire-surface,#fff);cursor:pointer;font-size:.8rem}
.cheshire-pm-hint{color:var(--cheshire-text-muted,#666);font-size:.88rem;margin:.3rem 0 1rem}
/* Bugfix (Peter/Florian-Meldung Teil 4, 18.09.2026: "Modern-Theme schlechter
   als Klassisch auf der PM-Seite"): gibt den PM-Seiten (Posteingang, Thread,
   Neu, Kontakte, Broadcast) die gleiche Karten-Optik wie andere Modern-
   Inhaltsbloecke (Hintergrund/Rahmen/Schatten) -- siehe .cheshire-pm-panel
   No-Op-Basis in cheshire.css. */
.cheshire-pm-panel{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border,#eee);border-radius:10px;padding:1.2rem 1.4rem;box-shadow:var(--cheshire-shadow-sm,0 2px 10px rgba(0,0,0,.06))}
.cheshire-pm-panel .cheshire-pm-list,.cheshire-pm-panel .cheshire-pm-contact-list{border:none}
.cheshire-mod-pm-hint{display:inline-block;color:var(--cheshire-text-muted,#666);font-size:.85rem;margin:0}
.cheshire-mod-warn-form{display:inline-flex;align-items:center;gap:.3rem;margin:.3rem .3rem 0 0}
.cheshire-mod-warn-done{color:var(--cheshire-success-text,#388e3c);font-size:.8rem;margin:.3rem 0 0}
/* Design-Runde 2, Thema 3: display:contents reicht das Grid-Layout des
   Eltern-.cheshire-card-links an den inneren Button durch. */
.cheshire-profile-buddy{display:contents}
.cheshire-success{background:var(--cheshire-success-bg,#EAFAF1);border:1px solid var(--cheshire-success-border,#27AE60);border-radius:5px;padding:.6rem;margin:.6rem 0;font-size:.88rem;color:var(--cheshire-success-text,#1E8449)}

/* ── Gästebuch & Avatar-Platzhalter (Peter-Reminder Runde 3) ── */
.cheshire-avatar-img{flex-shrink:0;width:72px;height:72px;border-radius:50%;object-fit:cover}
.cheshire-avatar-guest{width:40px;height:40px}
.cheshire-avatar-wrap{position:relative;display:inline-block;flex-shrink:0}
.cheshire-avatar-badge{position:absolute;color:#fff;font-size:.62rem;font-weight:700;line-height:1.3;padding:.1rem .4rem;border-radius:4px;white-space:nowrap;box-shadow:var(--cheshire-shadow-sm,0 1px 3px rgba(0,0,0,.35));pointer-events:none}
.cheshire-avatar-badge i{margin-right:.15rem}
.cheshire-avatar-badge-top-left{top:-4px;left:-6px}
.cheshire-avatar-badge-top-right{top:-4px;right:-6px}
.cheshire-avatar-badge-bottom-left{bottom:-4px;left:-6px}
.cheshire-avatar-badge-bottom-right{bottom:-4px;right:-6px}
.cheshire-avatar-badge-diagonal{top:10px;left:-30px;width:104px;text-align:center;border-radius:0;padding:.15rem 0;transform:rotate(-45deg)}
.cheshire-avatar-report-link{display:block;text-align:center;font-size:.7rem;color:var(--cheshire-text-faint,#999);margin-top:.2rem;text-decoration:none}
.cheshire-avatar-report-link:hover{color:var(--cheshire-danger-text,#C0392B);text-decoration:underline}
.cheshire-warnings{background:var(--cheshire-warning-bg,#fff8f0);border:1px solid var(--cheshire-warning-border,#f0d9b5);border-radius:6px;padding:.6rem 1rem;margin:.6rem 0;font-size:.85rem}
.cheshire-warning-entry{padding:.4rem 0;border-top:1px solid var(--cheshire-warning-border,#f0e0c5)}
.cheshire-warning-entry:first-of-type{border-top:none}
.cheshire-warning-disabled-note{color:var(--cheshire-warning-text,#8a6d3b);font-size:.8rem;margin:0 0 .4rem}
.cheshire-warning-meta{display:block;font-size:.75rem;color:var(--cheshire-text-faint,#888)}
.cheshire-warning-expired{opacity:.55}
.cheshire-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin:.4rem 0}
.cheshire-badge-chip{color:#fff;font-size:.75rem;font-weight:600;padding:.15rem .55rem;border-radius:12px;white-space:nowrap;cursor:default}
.cheshire-digest-freq{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;padding:.8rem 1rem;margin:.6rem 0 1.2rem;display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}
.cheshire-digest-freq select{padding:.4rem;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px}
.cheshire-poll{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;padding:.8rem 1rem;margin:.8rem 0}
.cheshire-poll h3{margin:0 0 .5rem}
.cheshire-poll-option{display:block;margin:.3rem 0;font-size:.9rem}
.cheshire-poll-closed{color:var(--cheshire-danger-text,#C0392B);font-size:.85rem;font-weight:600}
.cheshire-poll-results{margin-top:.6rem}
.cheshire-poll-result-row{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;font-size:.85rem}
.cheshire-poll-result-label{flex:0 0 30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-poll-bar-track{flex:1;background:var(--cheshire-surface-alt,#e5e9ed);border-radius:4px;height:10px;overflow:hidden}
.cheshire-poll-bar{background:var(--cheshire-accent,#9B59B6);height:100%}
.cheshire-poll-result-pct{flex:0 0 auto;color:var(--cheshire-text-muted,#666);white-space:nowrap}
.cheshire-poll-total{color:var(--cheshire-text-faint,#999);font-size:.78rem;margin:.4rem 0 0}
.cheshire-poll-hint{color:var(--cheshire-text-muted,#666);font-size:.85rem}
.cheshire-poll-edit-toggle{margin-top:.6rem;background:none;border:1px solid var(--cheshire-border-strong,#ccc);border-radius:4px;padding:.25rem .6rem;font-size:.8rem;cursor:pointer}
.cheshire-poll-admin-form{margin-top:.5rem}
.cheshire-poll-admin-form label{font-size:.82rem;display:block;margin:.3rem 0}
.cheshire-poll-admin-form input[type=text]{width:100%;max-width:22rem}
/* Umfrage: Mobil einklappbar / Desktop Seitenspalte + Dialog (0.1.444-dev) */
.cheshire-poll-mobile-only{display:none}
.cheshire-poll-collapse{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:6px;margin:.8rem 0}
.cheshire-poll-collapse>summary{cursor:pointer;font-weight:600;padding:.6rem .9rem}
.cheshire-poll-collapse>.cheshire-poll{border:0;margin:0}
.cheshire-poll-side h2{margin-top:0}
.cheshire-poll-side .cheshire-poll{border:0;padding:0;margin:0;background:none}
.cheshire-poll-side-question{font-weight:600;margin:.2rem 0}
.cheshire-poll-side-list{margin:.3rem 0;padding-left:1.1rem;font-size:.88rem}
.cheshire-poll-side-list li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-poll-open{margin-top:.5rem;width:100%}
.cheshire-poll-dialog{max-width:min(36rem,92vw);width:100%;border:1px solid var(--cheshire-border,#ccc);border-radius:8px;padding:1rem 1.2rem;background:var(--cheshire-surface,#fff);color:inherit}
.cheshire-poll-dialog::backdrop{background:rgba(0,0,0,.45)}
.cheshire-poll-dialog .cheshire-poll{border:0;padding:0;margin:0;background:none}
.cheshire-poll-dialog-close{float:right;background:none;border:0;font-size:1.1rem;cursor:pointer;color:inherit}
@media (max-width:960px){.cheshire-poll-mobile-only{display:block}.cheshire-poll-desktop-only{display:none}.cheshire-poll-side{display:none}}

.cheshire-demo-link{color:var(--cheshire-text-faint,#999);cursor:default;border-bottom:1px dashed var(--cheshire-border-strong,#ccc);user-select:none}
.cheshire-guestbook{margin-top:1.5rem}
.cheshire-guestbook h3{margin:0 0 .5rem;font-size:1rem}
.cheshire-guestbook-pending{background:var(--cheshire-warning-bg,#fff8e6);border:1px solid var(--cheshire-warning-border,#e8d8a0);border-radius:6px;padding:.6rem .8rem;margin-bottom:1rem;font-size:.88rem}
.cheshire-guestbook-pending-entry{border-top:1px solid var(--cheshire-warning-border,#e8d8a0);margin-top:.5rem;padding-top:.5rem}
.cheshire-guestbook-pending-entry button{margin-top:.3rem;padding:.25rem .6rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;background:var(--cheshire-surface,#fff);font-size:.8rem;cursor:pointer}
.cheshire-guestbook-list{display:flex;flex-direction:column;gap:.6rem}
.cheshire-guestbook-entry{display:flex;gap:.7rem;align-items:flex-start;background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.6rem .9rem}
.cheshire-guestbook-meta{color:var(--cheshire-text-faint,#999);font-size:.78rem;margin-bottom:.15rem}
.cheshire-guestbook-msg{font-size:.9rem;white-space:pre-wrap}
.cheshire-guestbook-form{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;max-width:500px}
.cheshire-guestbook-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-guestbook-form input,.cheshire-guestbook-form textarea{padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;font-family:inherit;box-sizing:border-box}
.cheshire-guestbook-form button{align-self:flex-start;padding:.4rem 1.2rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}

/* ── Benachrichtigungen & Abonnements (N01) ── */
.cheshire-subscribe-form{display:inline-block;margin-left:.6rem}
.cheshire-btn-subscribe{padding:.35rem .8rem;border-radius:5px;background:var(--cheshire-surface-alt,#f0f0f0);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));border:1px solid var(--cheshire-border-strong,#ddd);cursor:pointer;font-size:.85rem}
.cheshire-btn-subscribe.active{background:var(--cheshire-accent,#9B59B6);color:#fff;border-color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6))}
.cheshire-sub-list{display:flex;flex-direction:column;border:1px solid var(--cheshire-border,#eee);border-radius:6px;overflow:hidden}
.cheshire-sub-row{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);font-size:.87rem}
.cheshire-sub-row:last-child{border-bottom:none}
.cheshire-sub-type{background:var(--cheshire-surface-alt,#f2eaf8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.05rem .5rem;border-radius:3px;font-size:.75rem}
.cheshire-sub-row a{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));flex:1}
.cheshire-sub-row a.cheshire-sub-category{flex:none;color:var(--cheshire-text-faint,#999);font-size:.78rem;background:var(--cheshire-surface-alt,#f5f5f5);padding:.05rem .5rem;border-radius:3px;text-decoration:none}
.cheshire-sub-row a.cheshire-sub-category:hover{text-decoration:underline}

/* ── Melde-Workflow / Moderation (2.9) ── */
.cheshire-mod-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:.8rem 0}
.cheshire-mod-tab{padding:.35rem .8rem;border-radius:5px;background:var(--cheshire-surface-alt,#f0f0f0);text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.85rem}
.cheshire-mod-tab.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
/* Phase 5.2/M06: gemeinsame Mod-CP-Kopfnavigation (Meldungen/Safe) */
.cheshire-modcp-nav{display:flex;gap:.6rem;margin:.6rem 0 1rem;border-bottom:1px solid var(--cheshire-border,#eee);padding-bottom:.6rem}
.cheshire-modcp-tab{padding:.4rem .9rem;border-radius:5px 5px 0 0;text-decoration:none;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));font-size:.9rem;font-weight:600}
.cheshire-modcp-tab.active{background:var(--cheshire-primary,#4A2B70);color:#fff}
.cheshire-modcp-count{background:#777;color:#fff;border-radius:10px;padding:.05rem .45rem;font-size:.72rem;margin-left:.2rem}
.cheshire-mod-list{display:flex;flex-direction:column;border:1px solid var(--cheshire-border,#eee);border-radius:6px;overflow:hidden}
.cheshire-mod-row{display:grid;grid-template-columns:auto 2fr auto auto auto;gap:.6rem;align-items:center;padding:.55rem .8rem;border-bottom:1px solid var(--cheshire-border,#eee);text-decoration:none;color:inherit;font-size:.87rem}
.cheshire-mod-row:last-child{border-bottom:none}
a.cheshire-mod-row:hover{background:var(--cheshire-surface-alt,#f9fafb)}
.cheshire-mod-type{background:var(--cheshire-surface-alt,#f2eaf8);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));padding:.05rem .5rem;border-radius:3px;font-size:.75rem}
.cheshire-mod-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-mod-content small{color:var(--cheshire-text-faint,#999)}
.cheshire-mod-reason{font-weight:600}
.cheshire-mod-reporter,.cheshire-mod-date{color:var(--cheshire-text-faint,#999);font-size:.8rem}
.cheshire-mod-report-meta{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.7rem 1rem;margin:.8rem 0;font-size:.9rem}
.cheshire-mod-report-meta p{margin:.2rem 0}
.cheshire-mod-spy{border:2px dashed var(--cheshire-danger-border,#C0392B);border-radius:8px;padding:1rem;margin:1rem 0;background:var(--cheshire-warning-bg,#fff9f8)}
.cheshire-mod-spy-notice{color:var(--cheshire-danger-text,#C0392B);font-weight:600;font-size:.85rem;margin:0 0 .6rem}
.cheshire-mod-author{color:var(--cheshire-text-muted,#666);font-size:.85rem}
.cheshire-mod-message{margin-top:.5rem}
.cheshire-mod-sig-gallery{display:flex;flex-wrap:wrap;gap:.8rem}
.cheshire-mod-sig-item{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:var(--cheshire-surface-alt,#fafafa);border:1px solid var(--cheshire-border-strong,#ddd);border-radius:6px;padding:.5rem}
.cheshire-mod-actions{margin:1rem 0}
.cheshire-mod-action-group{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.8rem}
.cheshire-mod-action-group:last-child{margin-bottom:0}
.cheshire-mod-action-group h4{width:100%;font-size:.8rem;color:var(--cheshire-text-muted,#666);margin:0 0 .2rem;text-transform:uppercase;letter-spacing:.03em}
.cheshire-mod-type-badge{background:var(--cheshire-primary,#4A2B70);color:#fff;padding:.1rem .6rem;border-radius:12px;font-size:.7rem;font-weight:500;vertical-align:middle;margin-left:.5rem}
.cheshire-mod-comment-hint{color:var(--cheshire-text-faint,#999);font-size:.8rem}
.cheshire-mod-comments{display:flex;flex-direction:column;gap:.6rem;margin:.6rem 0}
.cheshire-mod-comment{background:var(--cheshire-surface-alt,#f9fafb);border-radius:6px;padding:.5rem .8rem}
.cheshire-mod-comment-meta{color:var(--cheshire-text-faint,#999);font-size:.75rem;display:block;margin-bottom:.2rem}
.cheshire-mod-comment-text{font-size:.88rem;white-space:pre-wrap}
.cheshire-mod-comment-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.6rem}
.cheshire-mod-comment-form textarea{width:100%;box-sizing:border-box;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px}
.cheshire-mod-comment-form button{align-self:flex-start;padding:.4rem 1.2rem;background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;cursor:pointer}
/* Phase 5.2/M07: einheitliches Styling fuer alle Melde-Formulare (Beitrag/PN/Profilbild/Signatur) */
.cheshire-report-form{max-width:480px}
.cheshire-report-form label{display:block;margin-bottom:.9rem;font-weight:600}
.cheshire-report-form select,.cheshire-report-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:.3rem;padding:.5rem;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:5px;font-family:inherit;font-weight:400}
.cheshire-report-form textarea{resize:vertical}
.cheshire-mod-safe-list{display:flex;flex-direction:column;gap:.8rem}
.cheshire-mod-safe-row{border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.8rem 1rem;background:var(--cheshire-surface-alt,#f9fafb)}
.cheshire-mod-safe-row-deleted{border-color:var(--cheshire-success-border,#c7e6cf);background:var(--cheshire-success-bg,#f4fbf6)}
.cheshire-mod-safe-meta{font-size:.85rem;color:var(--cheshire-text-muted,#555);margin-bottom:.5rem}
.cheshire-mod-hard-deleted-badge{color:var(--cheshire-success-text,#2E7D32);font-weight:600;font-size:.85rem;margin:.6rem 0 0}
.cheshire-btn-mod{color:inherit;text-decoration:none}
.cheshire-post-reported-link{margin-left:.5rem;font-weight:600}

/* ── Reported post ── */
.cheshire-post-reported{border:1px dashed var(--cheshire-warning-border,#E67E22);border-radius:6px;margin-bottom:1rem}
.cheshire-post-reported-notice{padding:.6rem 1rem;color:#E67E22;font-size:.88rem;font-style:italic}

/* ── Site-Header (Logo/Titel) — Peter-Wunsch 12.08.2026, Vorlage forum.wbce.org ── */
/* Zusammenstellung-Restpunkt TP2 (Peter-Feedback #408): margin-top per
   --cheshire-header-padding-top ueberschreibbar (Nachbesserung 13.09.2026:
   padding-top vergroesserte nur die Box selbst statt Abstand zur Boxkante
   zu schaffen, siehe cheshire.css-Kommentar). Die spaetere Card-Optik-
   Override-Regel unten (Zeile ~818) hat denselben Fix. */
.cheshire-site-header{position:relative;display:flex;align-items:center;gap:.8rem;padding:1rem 0 .6rem;margin-top:var(--cheshire-header-padding-top,0)}
.cheshire-site-logo{font-size:2.3rem;text-decoration:none;line-height:1}
.cheshire-site-heading{display:flex;flex-direction:column}
.cheshire-site-title{font-size:1.5rem;font-weight:700;color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none}
.cheshire-site-title:hover{text-decoration:underline}
.cheshire-site-tagline{margin:.1rem 0 0;font-size:.85rem;color:var(--cheshire-text-muted,#666)}
/* Theme-Baukasten Etappe 2 (Peter-Freigabe 21.08.2026): Logo-Position +
   Sticky-Header, siehe Cheshire\Services\Theme::logoPosition()/config(). */
.cheshire-site-logo img{max-height:2.3rem;width:auto;display:block}
.cheshire-site-header--logo-center{justify-content:center;text-align:center;flex-wrap:wrap}
.cheshire-site-header--logo-center .cheshire-site-heading{align-items:center}
.cheshire-site-header--logo-right{flex-direction:row-reverse}
.cheshire-site-header--sticky{position:sticky;top:0;z-index:50;background:var(--cheshire-surface,#fff);box-shadow:var(--cheshire-shadow-sm,0 1px 4px rgba(0,0,0,.08))}
/* Theme-Baukasten Etappe 4 (Peter-Freigabe 21.08.2026): Eckdekoration, siehe
   Cheshire\Services\Theme::config()-Kommentar zum Scope (Header/Topbar/
   Buttons-Chrome, nicht jede Karte). Ohne Einstellung 0 = unveraendert. */
.cheshire-site-header{border-radius:var(--cheshire-radius,0)}
/* Peter-Wunsch 07.09.2026: Header ausserhalb von .cheshire-wrap gerendert,
   siehe cheshire.css-Kommentar (gleiches Muster, alle 3 Theme-Dateien). */
.cheshire-site-header--outside{max-width:var(--cheshire-content-width,960px);margin:0 auto;margin-top:var(--cheshire-header-padding-top,0);padding:1.2rem 1rem .8rem}

/* ── Topbar (login/logout bar) — als durchgehende Farbleiste statt duenner
   Trennlinie, naeher an der WBCE-Vorlage (Peter-Wunsch "mehr Konturen") ── */
.cheshire-topbar{display:flex;justify-content:flex-end;align-items:center;gap:.8rem;padding:.55rem 1rem;font-size:.85rem;background:var(--cheshire-header-bg,var(--cheshire-primary,#4A2B70));color:#fff;border-radius:var(--cheshire-radius,6px);margin-bottom:1rem}
/* Bugfix-Vorschlag (Peter-Erklaerung 13.09.2026): Vorschau-Cookie-Hinweis,
   siehe cheshire.css fuer die volle Begruendung. */
.cheshire-preview-notice{background:#fff3cd;color:#664d03;border:1px solid #ffe69c;border-radius:6px;padding:.5rem .8rem;font-size:.82rem;margin-bottom:1rem}
.cheshire-preview-notice a{color:#664d03;text-decoration:underline;font-weight:600}
/* 2.44-Restpunkt 1 (24.08.2026): kompaktes Logo sitewide, siehe cheshire.css */
.cheshire-topbar-logo{margin-right:auto;display:inline-flex;align-items:center;font-size:1.2rem;line-height:1;text-decoration:none}
.cheshire-topbar-logo img{height:26px;width:auto;display:block;border-radius:4px}
/* 2.44-Restpunkt 1 Nachbesserung (Peter-Vorgabe 26.08.2026): Modus statt Seite
   entscheidet, was sichtbar ist -- Integriert zeigt das kompakte Logo immer
   (Grundregel oben), Hybrid/Standalone zeigt stattdessen sitewide den grossen
   Banner und blendet das kompakte Logo erst unterhalb des Breakpoints ein. */
.cheshire-wrap:not(.cheshire-integrated) .cheshire-topbar-logo{display:none}
@media (max-width:768px){
    .cheshire-wrap:not(.cheshire-integrated) .cheshire-site-header{display:none}
    .cheshire-site-header--outside{display:none}
    .cheshire-wrap:not(.cheshire-integrated) .cheshire-topbar-logo{display:inline-flex}
}
.cheshire-btn-login,.cheshire-btn-register,.cheshire-btn-logout,.cheshire-btn-pm,.cheshire-btn-mod{padding:.2rem .6rem;border-radius:var(--cheshire-radius,4px);text-decoration:none;font-size:.82rem;border-color:rgba(255,255,255,.6)!important;color:#fff!important}
.cheshire-btn-login{background:rgba(255,255,255,.18)}
/* Theme-Baukasten Etappe 3 (Peter-Freigabe 21.08.2026, Styling-only): Nav-
   Link-Farben + Burger-Menue. Burger-Button standardmaessig unsichtbar --
   erscheint nur innerhalb des dynamischen @media-Blocks aus
   Cheshire\Services\Theme::navCssBlock() (Breakpoint > 0 gesetzt). */
.cheshire-topbar a{color:var(--cheshire-nav-link,#fff)}
.cheshire-topbar a:hover{color:var(--cheshire-nav-hover,#fff);background:rgba(255,255,255,.18)}
.cheshire-topbar a.active{color:var(--cheshire-nav-active,#fff);text-decoration:underline;font-weight:600}
.cheshire-nav-links{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.cheshire-nav-burger{display:none;background:none;border:1px solid rgba(255,255,255,.5);color:inherit;border-radius:var(--cheshire-radius,4px);width:2rem;height:2rem;font-size:1.1rem;line-height:1;cursor:pointer;align-items:center;justify-content:center}
/* Theme-Baukasten Etappe 4 Teil 2 (Peter-Freigabe 21.08.2026): Navigations-
   Icons SVG-Modus, siehe NavIcons.php. */
.cheshire-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;margin-right:.35em;vertical-align:-0.125em}
.cheshire-nav-icon svg{width:1em;height:1em;display:block}
/* Theme-Baukasten Etappe 4 Teil 3 (Dark Mode, Peter-Freigabe 21.08.2026):
   Besucher-Umschalter Hell/Dunkel, siehe cheshire.js fuer die Klick-Logik. */
.cheshire-color-toggle{background:none;border:1px solid rgba(255,255,255,.5);color:inherit;border-radius:var(--cheshire-radius,4px);width:2rem;height:2rem;font-size:1rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;margin-left:.5rem;flex:0 0 auto}
.cheshire-color-toggle:hover{background:rgba(255,255,255,.18)}

/* Freie Links (Backlog #392) fehlten bisher komplett in dieser Theme-Datei
   (gleiches "Theme-Dateien schliessen sich gegenseitig aus"-Muster wie schon
   mehrfach in dieser Session, zuletzt Statistik-Seite/TP7) -- Peter-Meldung
   13.09.2026: Footer-Link "kein Layout, ist nicht identisch wie das Design".
   Header-Variante (.cheshire-header-links) sitzt rechts oben im Site-Header,
   siehe Kommentar in cheshire.css fuer Details/bekannte Einschraenkung. */
.cheshire-custom-links{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;padding:.8rem 1rem;margin-top:1rem;font-size:var(--cheshire-custom-links-font-size,.82rem);color:var(--cheshire-text-muted,#666);border-top:1px solid var(--cheshire-border,#eee)}
.cheshire-custom-links a{color:inherit;text-decoration:none}
.cheshire-custom-links a:hover{text-decoration:underline}
.cheshire-topbar .cheshire-custom-links{padding:0;margin:0 0 0 .4rem;border-top:none;font-size:var(--cheshire-custom-links-font-size,.82rem);gap:.6rem;flex-wrap:nowrap}
/* Nachbesserung 13.09.2026 Teil 2 (Peter-Meldung: Logo-Position "Mittig"
   wurde durch die Header-Links ausgehebelt), siehe Kommentar in
   cheshire.css fuer Details -- jetzt echte "freistehende Containerbox"
   per position:absolute statt Flex-Kind. */
.cheshire-header-links{position:absolute;top:.15rem;right:0;border-top:none;padding:0;margin:0;flex-wrap:nowrap}

/* ── Hilfe/Handbuch (FAQ) ── */
.cheshire-help-intro{color:var(--cheshire-text-muted,#666);margin-bottom:1.2rem}
.cheshire-help-sections{display:flex;flex-direction:column;gap:1.2rem}
.cheshire-help-cat{background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.9rem 1.2rem}
.cheshire-help-cat h2{margin:0 0 .5rem;font-size:1.05rem}
.cheshire-help-badge{font-size:.72rem;font-weight:400;color:#E67E22;border:1px solid var(--cheshire-warning-border,#E67E22);border-radius:4px;padding:.05rem .4rem;margin-left:.4rem}
.cheshire-help-list{margin:0;padding-left:1.2rem}
.cheshire-help-list li{margin:.25rem 0}
.cheshire-help-list a{color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));text-decoration:none}
.cheshire-help-list a:hover{text-decoration:underline}
.cheshire-help-empty{color:var(--cheshire-text-faint,#999)}
.cheshire-help-article table{border-collapse:collapse;margin:.8rem 0;width:100%}
.cheshire-help-article th,.cheshire-help-article td{border:1px solid var(--cheshire-border,#eee);padding:.4rem .6rem;text-align:left;font-size:.9rem}
.cheshire-help-article blockquote{border-left:3px solid var(--cheshire-border-strong,#ddd);margin:.6rem 0;padding:.2rem 1rem;color:var(--cheshire-text-muted,#555)}
.cheshire-help-article code{background:var(--cheshire-surface-alt,#f4f4f4);padding:.1rem .3rem;border-radius:3px;font-size:.88rem}
.cheshire-btn-login{background:var(--cheshire-primary,#4A2B70);color:#fff}
.cheshire-btn-register{border:1px solid var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70))}
.cheshire-btn-logout{border:1px solid #aaa;color:var(--cheshire-text-muted,#666)}
.cheshire-btn-pm{padding:.2rem .6rem;border-radius:4px;text-decoration:none;font-size:.82rem;border:1px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6))}

/* ── Password strength bar ── */
.cheshire-pw-strength-wrap{margin:.4rem 0 .6rem}
.cheshire-pw-strength-wrap:not(:empty){background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ddd);border-radius:4px;padding:.5rem .7rem}
#cheshire-pw-strength{position:relative;z-index:1}

/* ── MFA Instructions ── */
.cheshire-mfa-instructions{background:var(--cheshire-surface-alt,#f5eefc);border:1px solid var(--cheshire-border-strong,#c9a3dd);border-radius:6px;padding:1rem;margin:.8rem 0;font-size:.9rem}
.cheshire-mfa-instructions ol{margin:.5rem 0 0 1.2rem;padding:0}
.cheshire-mfa-instructions li{margin:.4rem 0}
.cheshire-backup-codes{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}
.cheshire-backup-codes li code{background:var(--cheshire-surface-alt,#f0f0f0);padding:.3rem .6rem;border-radius:4px;font-family:monospace;font-size:.9rem}

/* MD Inline Render */
[id^="cheshire-md-"] h1,[id^="cheshire-md-"] h2,[id^="cheshire-md-"] h3{color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));margin:.8rem 0 .3rem;line-height:1.3}
[id^="cheshire-md-"] h1{font-size:1.3rem;border-bottom:1px solid var(--cheshire-border-strong,#ddd);padding-bottom:.2rem}
[id^="cheshire-md-"] h2{font-size:1.1rem}
[id^="cheshire-md-"] pre{background:#1e1e1e;color:var(--cheshire-text-faint,#d4d4d4);padding:.7rem 1rem;border-radius:5px;overflow-x:auto;font-size:.83rem}
[id^="cheshire-md-"] code{background:var(--cheshire-surface-alt,#f4eefa);padding:.1rem .3rem;border-radius:3px;font-size:.85rem;color:var(--cheshire-danger-text,#c7254e)}
[id^="cheshire-md-"] pre code{background:none;padding:0;color:var(--cheshire-text-faint,#d4d4d4)}
[id^="cheshire-md-"] blockquote{border-left:3px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));margin:.5rem 0;padding:.3rem .7rem;background:var(--cheshire-surface-alt,#f4eefa);color:var(--cheshire-text-muted,#555);border-radius:0 4px 4px 0}
[id^="cheshire-md-"] table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.88rem}
[id^="cheshire-md-"] th{background:var(--cheshire-primary,#4A2B70);color:#fff;padding:.35rem .6rem;text-align:left}
[id^="cheshire-md-"] td{border:1px solid var(--cheshire-border-strong,#ddd);padding:.3rem .6rem}
[id^="cheshire-md-"] tr:nth-child(even){background:var(--cheshire-surface-alt,#f8f9fa)}
[id^="cheshire-md-"] a{color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6))}
[id^="cheshire-md-"] hr{border:none;border-top:1px solid var(--cheshire-border-strong,#ddd);margin:1rem 0}

/* FSK-Bestaetigungsseite */
.cheshire-fsk-gate{max-width:600px;margin:2rem auto;text-align:center;background:var(--cheshire-warning-bg,#fff3cd);border:1px solid var(--cheshire-warning-border,#ffc107);border-radius:8px;padding:1.5rem}
.cheshire-fsk-gate h1{margin-top:0;font-size:1.3rem}
.cheshire-btn-primary{background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;padding:.6rem 1.4rem;font-size:1rem;cursor:pointer;margin:.8rem 0}
.cheshire-btn-primary:hover{background:var(--cheshire-accent,#9B59B6)}

/* Bewerbungen-Ticker (1.28) */
.cheshire-applications-ticker{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;background:var(--cheshire-warning-bg,#fff3cd);border:1px solid var(--cheshire-warning-border,#ffc107);border-radius:6px;padding:.6rem 1rem;margin-bottom:.8rem;font-size:.9rem}
.cheshire-btn-apply{background:var(--cheshire-primary,#4A2B70);color:#fff;border:none;border-radius:5px;padding:.4rem .9rem;text-decoration:none;font-size:.85rem;white-space:nowrap}
.cheshire-btn-apply:hover{background:var(--cheshire-accent,#9B59B6)}
.cheshire-app-position{border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:.8rem 1rem;margin-bottom:.8rem}
.cheshire-app-position h3{margin:0 0 .5rem}
.cheshire-app-status{display:inline-block;padding:.3rem .7rem;border-radius:5px;font-size:.85rem}
.cheshire-app-pending{background:var(--cheshire-warning-bg,#fff3cd);color:var(--cheshire-warning-text,#856404)}
.cheshire-app-approved{background:var(--cheshire-success-bg,#d4edda);color:var(--cheshire-success-text,#155724)}
.cheshire-app-rejected-note{color:var(--cheshire-danger-text,#C0392B);font-size:.85rem}
.cheshire-app-description{background:var(--cheshire-surface-alt,#f4f6f8);border-radius:5px;padding:.6rem .8rem;font-size:.88rem;color:var(--cheshire-text,#444);margin:.4rem 0}

/* Signatur-Bild-Galerie (Backlog #24) */
.cheshire-sig-gallery{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--cheshire-border,#eee);max-width:600px}
.cheshire-sig-gallery-grid{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0}
.cheshire-sig-gallery-item{position:relative;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:6px;padding:.3rem;background:var(--cheshire-surface-alt,#fafafa)}
.cheshire-sig-gallery-item img{display:block;max-width:100px;max-height:80px;border-radius:4px;cursor:pointer}
.cheshire-sig-gallery-item img:hover{outline:2px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6))}
.cheshire-sig-gallery-item form{position:absolute;top:-.5rem;right:-.5rem}
.cheshire-sig-gallery-item button{border:1px solid var(--cheshire-border-strong,#ddd);background:var(--cheshire-surface,#fff);border-radius:50%;width:22px;height:22px;line-height:1;cursor:pointer;font-size:.75rem}
.cheshire-sig-gallery-upload{margin-top:.4rem}
.cheshire-sig-rules-confirm{display:flex;align-items:center;gap:.4rem;font-size:.85rem;margin:.4rem 0}
.cheshire-sig-report-link{display:inline-block;margin-top:.3rem;font-size:.75rem;color:var(--cheshire-text-faint,#999);text-decoration:none}
.cheshire-sig-report-link:hover{color:var(--cheshire-danger-text,#C0392B);text-decoration:underline}
.cheshire-sig-gallery-item-locked{background:var(--cheshire-danger-bg,#fdf0ee)}
.cheshire-sig-gallery-locked-badge{display:block;font-size:.7rem;color:var(--cheshire-danger-text,#c0392b);text-align:center;margin-top:.2rem}

/* Video-Upload/-Embed (#91, donor_only) */
.cheshire-attachment-video video{display:block;border-radius:6px;background:#000}
.cheshire-video-embed{position:relative;max-width:560px;margin:.6rem 0;aspect-ratio:16/9}
.cheshire-video-embed iframe{width:100%;height:100%;border-radius:6px}
/* DSGVO Klick-zum-Laden-Platzhalter (Peter-Wunsch) statt Auto-Embed */
.cheshire-video-consent{display:flex;align-items:center;justify-content:center;background:var(--cheshire-surface-alt,#eef1f4);border:1px solid var(--cheshire-border-strong,#d5dce3);border-radius:6px}
.cheshire-video-load-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));border-radius:6px;padding:.7rem 1.2rem;font-size:1rem;cursor:pointer}
.cheshire-video-load-btn:hover{background:var(--cheshire-accent,#9B59B6);color:#fff}
.cheshire-video-load-btn small{font-size:.72rem;font-weight:normal;color:inherit;opacity:.8}

/* Design-Runde 3 TP1 (Peter-Freigabe 13.09.2026): gemeinsames Rahmen-Muster
   fuer Beitrags-Inhaltsbloecke (Anhaenge/Signatur/Support-Wunschliste,
   erweiterbar fuer kuenftige Bloecke) -- sichtbarer Kontrast, damit
   Beitragsende und Block-Anfang nicht "ineinander verschwimmen" (Peter).
   Details/Summary fuer native Klapplogik ohne JS-Pflicht; Bildschirmgroessen-
   abhaengiger Default (offen/zu) folgt in TP2 (cheshire.js + Breakpoint).
   @see src/Services/Signature.php, src/Services/Support.php,
        src/Controllers/ThreadController.php */
details.cheshire-content-block{margin:.5rem 0;border:1px solid var(--cheshire-border-strong,#ddd);border-radius:8px;padding:.5rem .8rem;background:var(--cheshire-surface-alt,#f7f8fa)}
details.cheshire-content-block summary{cursor:pointer;font-size:.82rem;color:var(--cheshire-text-muted,#555);font-weight:600;list-style:revert}
details.cheshire-content-block[open] summary{margin-bottom:.5rem}
/* Peter-Wunsch 20.09.2026: "Signatur melden" neben die Auf-/Zuklapp-
   Ueberschrift statt unterhalb des Inhalts -- siehe cheshire.css fuer
   die volle Begruendung. */
details.cheshire-content-block summary .cheshire-sig-report-link{display:inline;margin-top:0;margin-left:.6rem;font-weight:400}
details.cheshire-content-block:not([open]) summary .cheshire-sig-report-link{display:none}
/* Rueckbau TP2 (Peter-Wunsch 20.09.2026): die "kompakte Icon-Leiste" bei
   zugeklapptem Block (nur Icon, Labeltext ausgeblendet, siehe 13.09.2026)
   war zu knapp -- Label bleibt jetzt auch zugeklappt sichtbar (betrifft
   einheitlich Anhaenge/Signatur/Support-Wunschliste, gleiche Klasse). */

/* Bugfix (Peter 31.08.2026): Absicherungs-CSS fuer per fetch() nachgeladenen
   MD-Anhang-Inhalt (siehe ThreadController.php-Kommentar) -- ohne diese
   Regeln konnten breite Tabellen/Code-Zeilen die Seite aufreissen. */
.cheshire-md-inline{max-width:100%}
.cheshire-md-inline *{max-width:100%;box-sizing:border-box}
.cheshire-md-inline pre{background:#1e1e1e;color:#d4d4d4;padding:1rem 1.2rem;border-radius:6px;overflow-x:auto;font-size:.88rem;line-height:1.5}
.cheshire-md-inline code{background:var(--cheshire-surface-alt,#f0f4f8);padding:.1rem .35rem;border-radius:3px;font-size:.88rem;color:#c7254e}
.cheshire-md-inline pre code{background:none;padding:0;color:#d4d4d4}
.cheshire-md-inline table{border-collapse:collapse;width:100%;margin:.8rem 0;table-layout:fixed}
.cheshire-md-inline th{background:var(--cheshire-primary,#2E4057);color:#fff;padding:.5rem .8rem;text-align:left}
.cheshire-md-inline td{border:1px solid var(--cheshire-border,#ddd);padding:.4rem .8rem;word-break:break-word}
.cheshire-md-inline img{height:auto;border-radius:4px}
.cheshire-md-inline blockquote{border-left:4px solid var(--cheshire-accent,#3D6B8C);margin:.8rem 0;padding:.4rem .8rem .4rem 1rem;background:var(--cheshire-surface-alt,#f0f4f8);color:#555;border-radius:0 4px 4px 0}
.cheshire-md-inline p,.cheshire-md-inline li{overflow-wrap:anywhere}

/* #122 Peter-Wunsch: Bild-Anhänge als horizontale Swipe-Reihe statt
   untereinander mit sichtbarem Dateinamen — Name nur noch als Tooltip
   (title-Attribut) bzw. Alt-Text, Downloads-Zähler kurz & klein. */
.cheshire-att-img-row{display:flex;gap:.5rem;overflow-x:auto;padding:.2rem 0 .5rem;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.cheshire-att-thumb{position:relative;flex:0 0 auto;display:block;scroll-snap-align:start;border-radius:6px;overflow:hidden;line-height:0}
.cheshire-att-thumb img{display:block;border-radius:6px}
.cheshire-att-thumb-dl{position:absolute;right:.3rem;bottom:.3rem;background:rgba(0,0,0,.6);color:#fff;font-size:.68rem;padding:.05rem .35rem;border-radius:3px;line-height:1.4}

/* Signatur: Auflistung "Beiträge ohne Signatur" (Peter-Wunsch) */
details.cheshire-sig-off-list{margin:.8rem 0;font-size:.85rem}
details.cheshire-sig-off-list summary{cursor:pointer;color:var(--cheshire-text-muted,#555);font-weight:600}
details.cheshire-sig-off-list ul{margin:.4rem 0 0;padding-left:1.2rem}
details.cheshire-sig-off-list li{margin:.2rem 0}

/* ═══════════════════════════════════════════════════════════════
   MODERN-OVERRIDES — ab hier: Card-Optik statt dichter Tabellenzeilen.
   Ueberschreibt gezielt einzelne Eigenschaften der Basis-Selektoren
   oben (gleiche Klassen, keine neuen Templates noetig). Reihenfolge
   in der Datei wichtig: muss NACH den Basis-Regeln stehen.
   ═══════════════════════════════════════════════════════════════ */

/* Mehr Luft, sanfter Seitenhintergrund.
   Bugfix (Peter-Testplan 0.1.150-dev, "feste Breite wird bei Modern nicht
   uebernommen"): stand hier bisher hart 1040px, unabhaengig von AdminCP ->
   Design -> Theme -> Inhaltsbreite (--cheshire-content-width, siehe
   cheshire-wrap-Basisregel oben im Datei-Kopf). 1040px bleibt nur noch als
   CSS-Fallback erhalten, die var() gewinnt jetzt wie bei den anderen beiden
   Themes. Seiteneffekt: ohne eigene Breiten-Einstellung zeigt Modern damit
   ab sofort denselben 960px-Standardwert wie Klassisch/Standard statt der
   bisherigen 1040px -- die AdminCP-Einstellung war ja der Wunsch. */
.cheshire-wrap,#cheshire-standalone-main{max-width:var(--cheshire-content-width,1040px)}
#cheshire-standalone{background:var(--cheshire-surface-alt,#f7f3fb)}

/* Site-Header + Topbar als schwebende Card statt flacher Vollton-Leiste
   (Unterscheidung zu Theme "Klassisch", das naeher an forum.wbce.org bleibt) */
/* margin-top (Abstand oben) kommt aus der Basisregel oben (Zeile ~605) --
   hier nur die Card-Optik selbst, padding-top nicht mehr ueberschrieben
   (Nachbesserung 13.09.2026, siehe Kommentar oben). */
.cheshire-site-header{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ece3f5);border-radius:var(--cheshire-radius,14px);padding:1.2rem 1.4rem;margin-bottom:1rem;box-shadow:var(--cheshire-shadow-md,0 2px 10px rgba(74,43,112,.07))}
.cheshire-site-logo{font-size:2.6rem}
/* Theme-Baukasten Etappe 4: eigener Farbverlauf (--cheshire-header-bg) hat
   Vorrang vor Moderns eingebautem Gradient, der als Fallback erhalten bleibt. */
.cheshire-topbar{border-radius:var(--cheshire-radius,14px);background:var(--cheshire-header-bg,linear-gradient(135deg,var(--cheshire-primary,#4A2B70),var(--cheshire-accent,#9B59B6)));box-shadow:var(--cheshire-shadow-md,0 2px 10px rgba(74,43,112,.15))}

/* Kategorie- und Card-Bloecke: eigene Flaeche statt nahtlosem Fliesstext */
.cheshire-category{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ece3f5);border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--cheshire-shadow-sm,0 1px 3px rgba(74,43,112,.06));margin-bottom:1.2rem}
/* Bugfix (Peter-Testplan 0.1.150-dev, "Lila-Bleed noch bei Kategorien"):
   Verlauf stand hier fest auf #f4eefa -- keine Variable, surface_alt_color
   (2.60) konnte hier also gar nicht greifen. Jetzt an --cheshire-surface-alt
   angeschlossen wie die uebrigen Card-Flaechen (Post-Autor, Foren-/Themen-
   zeilen), alter Farbton bleibt Fallback = keine Aenderung ohne eigenen Wert. */
.cheshire-category-title{border-bottom:none;background:linear-gradient(90deg,var(--cheshire-surface-alt,#f4eefa),transparent);padding:.6rem .8rem;border-radius:8px;margin:-.2rem -.2rem .6rem}
/* Peter-Nachbesserung 29.09.2026: WIO-Footerzeile bekommt denselben
   Kasten-Look wie .cheshire-category oben (Rahmen/Radius/Schatten) statt
   der schlichten Rahmenlinie aus cheshire.css. */
.cheshire-wio-footer{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ece3f5);border-top:1px solid var(--cheshire-border-strong,#ece3f5);border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--cheshire-shadow-sm,0 1px 3px rgba(74,43,112,.06))}

/* Foren-/Themenzeilen als abgerundete Karten statt Tabellenzeilen mit Trennlinie */
.cheshire-forum-row,.cheshire-thread-row{border-bottom:none;border-radius:8px;padding:.8rem .9rem;margin-bottom:.4rem;background:var(--cheshire-surface-alt,#fbf9fd);transition:box-shadow .15s,transform .15s}
.cheshire-forum-row:hover,.cheshire-thread-row:hover{box-shadow:var(--cheshire-shadow-md,0 2px 8px rgba(74,43,112,.1));transform:translateY(-1px)}

/* Nachbesserung TP8 (Peter-Feedback 21.09.2026): Widget "Seit deinem letzten
   Besuch" war bisher nur in cheshire.css gestylt -- hier fehlte es komplett
   (Standard-Link/-Button ohne jede Optik). Card-Optik analog .cheshire-category. */
.cheshire-since-visit-widget{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ece3f5);border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--cheshire-shadow-sm,0 1px 3px rgba(74,43,112,.06));margin-bottom:1.2rem}
.cheshire-since-visit-title{font-weight:700;font-size:.95rem;color:var(--cheshire-text,#333);display:block;margin-bottom:.6rem}
.cheshire-since-visit-links{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.cheshire-since-visit-link{display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.45rem .5rem;border-radius:8px;background:var(--cheshire-surface-alt,#fbf9fd);color:var(--cheshire-brand-text,var(--cheshire-primary,#4A2B70));text-decoration:none;font-size:.85rem;text-align:center;transition:box-shadow .15s,transform .15s}
.cheshire-since-visit-link:hover{box-shadow:var(--cheshire-shadow-md,0 2px 8px rgba(74,43,112,.1));transform:translateY(-1px)}
.cheshire-since-visit-link--empty{opacity:.55;cursor:default}
.cheshire-since-visit-link--empty:hover{box-shadow:none;transform:none}
@media (max-width:640px){.cheshire-since-visit-links{grid-template-columns:repeat(2,1fr)}}
.cheshire-since-visit-markall{margin-top:.8rem}
.cheshire-since-visit-markall button{background:none;border:1px solid var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));color:var(--cheshire-brand-text,var(--cheshire-accent,#9B59B6));border-radius:var(--cheshire-radius,14px);padding:.3rem .8rem;font-size:.8rem;cursor:pointer}
.cheshire-since-visit-markall button:hover{background:var(--cheshire-surface-alt,#f4eefa)}
/* Teil 3 (Peter-Wunsch 22.09.2026): Leerzustand -- Widget bleibt taeglich
   mindestens einmal sichtbar statt komplett zu verschwinden. */
.cheshire-since-visit-widget--empty{opacity:.85}
.cheshire-since-visit-empty-text{font-size:.85rem;color:var(--cheshire-text-muted,#666);margin:0 0 .4rem}

/* Post-Karten: Radius/Schatten UND sichtbarer Rahmen (Peter-Feedback
   22.09.2026: reiner Schatten mit 8% Deckkraft reichte nicht, Beitraege
   verschwammen ineinander -- Rahmen und Trennlinien auf #d6cee3 verstaerkt,
   deutlich dunkler als das vorherige #eee/#ece3f5). */
.cheshire-post{border:1px solid #d6cee3;border-radius:12px;box-shadow:var(--cheshire-shadow-sm,0 1px 4px rgba(74,43,112,.08));margin-bottom:1.2rem}
.cheshire-post-author{background:var(--cheshire-surface-alt,#f4eefa);border-radius:12px 12px 0 0;border-bottom:1px solid #d6cee3}
.cheshire-post-actions{border-top:1px solid #d6cee3}

/* Buttons: mehr Radius, dezenter Schatten statt kantiger Buttons */
.cheshire-btn-primary,.cheshire-quick-reply .cheshire-reply-actions button,.cheshire-auth-form button,.cheshire-search-form button,.cheshire-pagination a.active,.cheshire-btn-apply{border-radius:8px;box-shadow:var(--cheshire-shadow-sm,0 1px 2px rgba(74,43,112,.15))}

/* TP2 (22.09.2026): Move-Checkbox als kleiner Chip statt nacktem Inline-
   Element -- ging im kontrastarmen Post-Header unter. @see ThreadController.php */
.cheshire-move-chip{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;margin-right:.5rem;border:1px solid #d6cee3;border-radius:6px;background:var(--cheshire-surface,#fff);vertical-align:middle;cursor:pointer}
.cheshire-move-chip:hover{background:var(--cheshire-surface-alt,#f4eefa)}
.cheshire-move-checkbox{margin:0;cursor:pointer}

/* Auth-/Formularflaechen als schwebende Card */
.cheshire-auth-form{background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border-strong,#ece3f5);border-radius:14px;padding:1.6rem;box-shadow:var(--cheshire-shadow-md,0 2px 10px rgba(74,43,112,.08))}

/* Top-/PM-/Mod-Listen: gleiche Card-Behandlung wie Foren-/Themenzeilen */
.cheshire-pm-row,.cheshire-mod-row{border-bottom:none;border-radius:8px;margin-bottom:.35rem;background:var(--cheshire-surface-alt,#fbf9fd)}
.cheshire-pm-list,.cheshire-mod-list,.cheshire-sub-list{border:none;background:transparent}
.cheshire-top-section{box-shadow:var(--cheshire-shadow-sm,0 1px 3px rgba(74,43,112,.06));border-radius:12px}

/* Etwas grosszuegigere Grundschrift */
#cheshire-standalone,.cheshire-wrap{line-height:1.6}

/* ── Theme-/Designpack-Baukasten Etappe 4 (Teil 3): Dark Mode
   (Peter-Freigabe 21.08.2026, "ganze Seite" + AdminCP-Default + Besucher-
   Toggle) ── .cheshire-wrap.cheshire-dark ueberschreibt alle Token-
   Variablen mit der Dunkel-Palette (Lila-Welt, gleiche Werte wie
   classic.css, da beide Themes dieselbe Primaer-/Akzentfarbe teilen).
   Kontrastverhaeltnisse rechnerisch gegen WCAG 2.1 AA geprueft.
   @see cheshire.css fuer den ausfuehrlichen Kommentar. */
.cheshire-wrap.cheshire-dark,#cheshire-standalone.cheshire-dark{
  --cheshire-bg:#17141c;
  --cheshire-surface:#221d2b;
  --cheshire-surface-alt:#271f31;
  --cheshire-text:#ece7f0;
  --cheshire-text-muted:#b3a7bd;
  --cheshire-text-faint:#948798;
  --cheshire-border:#302838;
  --cheshire-border-strong:#786b80;
  --cheshire-brand-text:#c9a3e8;
  --cheshire-success-bg:#15301f;
  --cheshire-success-text:#74d18f;
  --cheshire-success-border:#2c5b3a;
  --cheshire-warning-bg:#3a2f10;
  --cheshire-warning-text:#e3c25e;
  --cheshire-warning-border:#5e4d1c;
  --cheshire-danger-bg:#3a1616;
  --cheshire-danger-text:#ef8b8b;
  --cheshire-danger-border:#5c2626;
  --cheshire-info-bg:#12293a;
  --cheshire-info-text:#82c6ea;
  --cheshire-info-border:#234a63;
  --cheshire-shadow-sm:0 1px 4px rgba(0,0,0,.5);
  --cheshire-shadow-md:0 2px 10px rgba(0,0,0,.6);
}

/* Mitglieder-/Teamliste (/members, /team): nutzt .cheshire-top-section/-period; feste Breite gegen springende Breadcrumb */
.cheshire-wrap-full{width:100%}
.cheshire-members-filter{display:flex;gap:.5rem;flex-wrap:wrap;margin:.8rem 0}
.cheshire-members-filter input[type=search]{width:14rem;max-width:100%}
.cheshire-members-filter select{width:auto}
.cheshire-members-table{width:100%;border-collapse:collapse}
.cheshire-members-table th,.cheshire-members-table td{padding:.45rem .6rem;text-align:left;border-bottom:1px solid var(--cheshire-border,#eee)}
.cheshire-members-table a,.cheshire-team-card h3 a{color:var(--cheshire-brand-text,var(--cheshire-primary,#2E4057));text-decoration:none;font-weight:600}
.cheshire-members-table a:hover,.cheshire-team-card h3 a:hover{text-decoration:underline}
.cheshire-members-avatar,.cheshire-team-avatar{border-radius:50%;object-fit:cover}
.cheshire-team-group h2{font-size:1.2rem;margin:1.5rem 0 .6rem}
.cheshire-team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}
.cheshire-team-card h3{margin:.4rem 0 .2rem;font-size:1.05rem}
.cheshire-team-role{font-weight:600;margin:.2rem 0}
.cheshire-team-tasks,.cheshire-team-forums{font-size:.88rem;color:var(--cheshire-text-muted,#666);margin:.3rem 0}

/* Wartungs-/Gate-Karte: gleiche Breite/Typografie wie die Anmeldeseite */
.cheshire-gate-card{max-width:560px;background:var(--cheshire-surface-alt,#f9fafb);border:1px solid var(--cheshire-border,#eee);border-radius:8px;padding:1.2rem 1.5rem}
.cheshire-gate-card .cheshire-top-periods{margin-top:1rem}

/* Gate-Baustein (gate.htt): Hinweis-/Fehlerseiten, Karte = .cheshire-gate-card */
.cheshire-gate .cheshire-gate-card{margin-left:auto;margin-right:auto}
.cheshire-gate-card h1{margin-top:0}
.cheshire-gate-form{margin-top:.8rem}
.cheshire-gate-check{display:block;margin:.8rem 0}
/* Permalink-Icon im Beitragskopf (Florian #7) */
.cheshire-btn-permalink{background:none;border:0;padding:0 .25rem;margin-left:.3rem;cursor:pointer;font-size:.85rem;opacity:.6;color:inherit}
.cheshire-btn-permalink:hover{opacity:1}

.cheshire-pm-add{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.5rem}
.cheshire-pm-add small{opacity:.7;width:100%}
.cheshire-pm-del{display:inline;margin-left:.4rem}.cheshire-pm-del button{background:none;border:0;cursor:pointer;opacity:.6;padding:0;font-size:.8rem}.cheshire-pm-del button:hover{opacity:1}
.cheshire-pm-contacts{margin:.4rem 0 .8rem}.cheshire-pm-contacts summary{cursor:pointer}.cheshire-pm-contact-list{display:flex;flex-wrap:wrap;gap:.3rem .9rem;max-height:10rem;overflow:auto;padding:.5rem 0}.cheshire-pm-contact{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem}

/* Geschlossen-Text (BBCode) */
.cheshire-closed-msg{margin:.6rem 0;overflow-wrap:anywhere}
.cheshire-closed-msg>:first-child{margin-top:0}
.cheshire-closed-msg>:last-child{margin-bottom:0}
.cheshire-legal-text{overflow-wrap:anywhere}

/* 5.14 @Erwaehnung im Beitrag */
a.cheshire-mention{font-weight:600;text-decoration:none;padding:0 .25em;border-radius:3px;background:rgba(61,107,140,.14)}
a.cheshire-mention:hover{text-decoration:underline}

/* 0.1.446-dev (Florian-Feedback): PM-Buttons gleich breit, lange Betreffe/Namen mit Ellipsis (voller Text als Tooltip),
   Papierkorb-Aktionen in eigener Zeile, Selects bleiben in der Karte. @see PmController.php, SubscriptionController.php */
.cheshire-pm-nav a.cheshire-pm-new{margin-left:0}
.cheshire-pm-side .cheshire-pm-nav .cheshire-pm-tab,.cheshire-pm-side .cheshire-pm-nav .cheshire-pm-new{display:block;width:100%;box-sizing:border-box;text-align:left}
.cheshire-pm-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr) auto}
.cheshire-pm-row>*{min-width:0}
.cheshire-pm-partner,.cheshire-pm-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-pm-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}
.cheshire-pm-actions form{display:inline-block;margin:0}
.cheshire-pm-actions button{white-space:nowrap}
.cheshire-pm-subject-divider span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-pm-msg{overflow-wrap:anywhere}
.cheshire-settings-box select,.cheshire-digest-freq select{max-width:100%;box-sizing:border-box}

/* 0.1.447-dev: PN "Neue Nachricht"/Gespraech zweispaltig; Kontakte-Karte, Abbrechen neben Senden. @see pm_compose.htt, pm_thread.htt */
.cheshire-pm-pick{margin:.8rem 0;padding:.8rem;background:var(--cheshire-surface,#fff);border:1px solid var(--cheshire-border,#eee);border-radius:10px}
.cheshire-pm-pick h3{margin:0 0 .5rem;font-size:.95rem}
.cheshire-pm-pick-list{display:flex;flex-direction:column;gap:.15rem;max-height:16rem;overflow-y:auto}
.cheshire-pm-pick-item{display:flex;align-items:center;gap:.4rem;font-size:.88rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cheshire-pm-pick-empty{margin:0;font-size:.85rem;color:var(--cheshire-text-muted,#666)}
.cheshire-pm-form-actions{display:flex;align-items:center;gap:1rem}
.cheshire-pm-cancel{font-size:.9rem}
@media (max-width:860px){.cheshire-pm-layout-compose .cheshire-pm-side{order:2}}
