/* ===========================================================================
   F-List-Bot — Chat und Verläufe (BOT-004, REQ-BOT-026, REQ-BOT-027).

   Eigene Datei und kein Anhang an app.css, wie Wizard, Charakterdetail, Lore und
   Würfeltisch (REQ-UX-019). Die Klassen tragen die Vorsilbe `sh-flistbot-`, die
   BOT-002 für den Bereich eingeführt hat.

   ---------------------------------------------------------------------------
   DIE GESCHLECHTSFARBEN

   Die Namensfarben nach Geschlecht sind die des Bots (CharacterInfo.ColorFor):
   die Töne der offiziellen F-Chat-Clients, leicht abgemildert, weil die
   Originale auf dunklem Grund beim Lesen längerer Szenen ermüden. Die Werte
   stehen in FListBotVerlaufsdarstellung.Geschlechtsfarben genau einmal im
   Quelltext; hier stehen sie als Klassen, damit die Ansicht keine Farbe ins
   Markup schreibt. Ein Prüfstand hält beide Listen zusammen — wer hier einen
   Wert ändert, ändert ihn dort mit.
   =========================================================================== */

/* ---------------------------------------------------------------- Mitschrift */

.sh-flistbot-verlauf {
    max-height: 60vh;
    overflow-y: auto;
    padding: .45rem .75rem;
    background: var(--sh-bg-2);
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius-lg);
    font-size: .95rem;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.sh-flistbot-verlauf--tag { max-height: 70vh; }

.sh-flistbot-zeile {
    padding: .12rem 0 .12rem 3.6rem;
    text-indent: -3.6rem;
}

.sh-flistbot-zeile:hover { background: rgba(255, 255, 255, .025); }

.sh-flistbot-zeit {
    display: inline-block;
    width: 3.2rem;
    text-indent: 0;
    padding-top: .18rem;
    color: var(--sh-text-faint);
    font-family: "Cascadia Mono", Consolas, ui-monospace, monospace;
    font-size: .72rem;
    vertical-align: top;
    user-select: none;
}

.sh-flistbot-name { font-weight: 600; }

.sh-flistbot-doppelpunkt { color: var(--sh-text-dim); }

.sh-flistbot-emote {
    font-style: italic;
    color: var(--sh-text-dim);
}

.sh-flistbot-emote .sh-flistbot-name { font-style: normal; }

.sh-flistbot-zeile--wurf .sh-flistbot-wurf {
    color: var(--sh-gold);
    font-size: .88rem;
}

.sh-flistbot-anzeige {
    display: inline-block;
    margin-right: .25rem;
    padding: 0 .45rem;
    border-radius: var(--sh-radius);
    background: var(--sh-danger);
    color: var(--sh-text-invert);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    vertical-align: .12em;
}

.sh-flistbot-zeile--anzeige .sh-flistbot-text { color: var(--sh-text-dim); }

/* Der Text kommt aus <Auszeichnungstext> ohne Kasten. Ein Absatz oder ein
   Zitat aus mehrzeiligem BBCode darf die Zeile nicht sprengen. */
.sh-flistbot-text .sh-bb__p { display: inline; margin: 0; }
.sh-flistbot-text .sh-bb__quote { margin: .2rem 0 .2rem .5rem; }

.sh-flistbot-ende { height: 1px; }

.sh-flistbot-leer { margin: .35rem 0; }

/* Geschlechtsfarben — dieselben Werte wie FListBotVerlaufsdarstellung.Geschlechtsfarben. */
.sh-flistbot-name--male        { color: #7ba7e8; }
.sh-flistbot-name--female      { color: #e78aac; }
.sh-flistbot-name--herm        { color: #ad86dd; }
.sh-flistbot-name--shemale     { color: #c68fd6; }
.sh-flistbot-name--male-herm   { color: #6fa3d8; }
.sh-flistbot-name--cunt-boy    { color: #6bc191; }
.sh-flistbot-name--transgender { color: #d79b62; }
.sh-flistbot-name--unbekannt   { color: #b9bcc6; }

/* ---------------------------------------------------------------- Chat-Reiter */

.sh-flistbot-chat__kopf { flex-wrap: wrap; gap: .5rem; }

.sh-flistbot-chat__leiste { flex-wrap: wrap; align-items: center; }

.sh-flistbot-chat__channel { min-width: 12rem; }

.sh-flistbot-chat__stand { margin: 0 0 .5rem; }

.sh-flistbot-chat__eingabe .sh-input { flex: 1 1 16rem; min-width: 0; }

/* ---------------------------------------------------------------- Verläufe */

.sh-flistbot-verlaeufe__channel { min-width: 12rem; }

.sh-flistbot-tagesliste__wahl { width: 2rem; }

.sh-flistbot-tagesliste tr.is-active td { background: var(--sh-accent-soft); }

.sh-flistbot-tagesliste__tag { padding-left: .35rem; padding-right: .35rem; }

.sh-flistbot-trefferliste {
    display: grid;
    gap: .35rem;
    margin-top: .5rem;
}

.sh-flistbot-treffer {
    padding: .4rem .6rem;
    background: var(--sh-bg-2);
    border: 1px solid var(--sh-border-soft);
    border-radius: var(--sh-radius);
    overflow-wrap: anywhere;
}

.sh-flistbot-treffer__ort { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem; }

.sh-flistbot-treffer__text mark {
    background: var(--sh-gold-soft);
    color: var(--sh-gold);
    padding: 0 .1rem;
    border-radius: 2px;
}

@media (max-width: 720px) {
    .sh-flistbot-verlauf { max-height: 50vh; }
    .sh-flistbot-zeile { padding-left: 0; text-indent: 0; }
    .sh-flistbot-zeit { display: block; width: auto; padding-top: 0; }
}

/* ---------------------------------------------------------------- BOT-009: Anwesenheit, Privatnachrichten, Besucher */

.sh-flistbot-zeile--beitritt,
.sh-flistbot-zeile--austritt { color: var(--sh-muted); font-size: .9em; }

.sh-flistbot-anwesenheit { font-style: italic; margin-right: .25rem; }

.sh-flistbot-privat {
    display: inline-block;
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--sh-gold);
    margin-right: .25rem;
}

.sh-flistbot-privat--aus { color: var(--sh-muted); }

.sh-flistbot-besucher__zeile.is-unbekannt .sh-flistbot-besucher__name { color: var(--sh-gold); font-weight: 600; }

/* Der Name führt aufs F-List-Profil; er behält die Farbe der Zeile (Gold für Unbekannte). */
.sh-flistbot-besucher__name a { color: inherit; text-decoration: none; }
.sh-flistbot-besucher__name a:hover,
.sh-flistbot-besucher__name a:focus-visible { text-decoration: underline; }

.sh-flistbot-besucher__text {
    max-width: 28ch;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------------------------------------------------------- Reiter Befehle (BOT-012) */

.sh-flistbot-befehle__breit { grid-column: 1 / -1; }
.sh-flistbot-befehle-zaehler {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(110px, 100%), 1fr));
    gap: .5rem;
}
.sh-flistbot-baustein {
    padding: .6rem .7rem;
    border: 1px solid var(--sh-border);
    border-radius: var(--sh-radius);
    background: var(--sh-surface);
}
.sh-flistbot-optouts-titel { margin-top: .6rem; }
.sh-flistbot-profiltext { min-height: 14rem; }
.sh-flistbot-stumm-minuten { width: 5rem; }

/* ---------------------------------------------------------- Politik-Matrix und Befehls-Pruefer (REQ-BOT-051) */

.sh-flistbot-befehle-kategorie th {
    background: var(--sh-surface);
    color: var(--sh-muted);
    font-size: .78rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.sh-flistbot-matrix-tabelle td { text-align: center; }
.sh-flistbot-matrix-tabelle td:first-child { text-align: left; }
.sh-flistbot-matrix-ja { color: var(--sh-success); font-weight: 600; }
.sh-flistbot-matrix-eigene { color: var(--sh-gold); font-size: .8rem; }
.sh-flistbot-matrix-nein { color: var(--sh-muted); }
.sh-flistbot-pruefer-ergebnis {
    padding: .7rem .85rem;
    border: 1px solid var(--sh-border);
    border-left-width: 3px;
    border-radius: var(--sh-radius);
    background: var(--sh-surface);
}
.sh-flistbot-pruefer-ergebnis--ja { border-left-color: var(--sh-success); }
.sh-flistbot-pruefer-ergebnis--nein { border-left-color: var(--sh-danger); }
.sh-flistbot-pruefer-kette { margin: .4rem 0 0 1.1rem; padding: 0; }
.sh-flistbot-pruefer-kette li { margin: .1rem 0; }

/* Befehlsregeln (REQ-RPC-002): die Karte im Politik-Grid, ein Formular je Befehl */
.sh-flistbot-regelwerk-tabelle td:last-child { text-align: right; white-space: nowrap; }
.sh-flistbot-regelwerk-mitregel td:first-child code { font-weight: 600; }
.sh-flistbot-regelwerk-formular {
    padding: .7rem .85rem;
    border: 1px solid var(--sh-border);
    border-left: 3px solid var(--sh-gold);
    border-radius: var(--sh-radius);
    background: var(--sh-surface);
}
.sh-flistbot-regelwerk-formular .sh-form-grid { margin-top: .5rem; }
