/*
 * Talker – Feld in Creme. Oben die Satzleiste, darunter Kategorien und das Wortraster (6 × 4).
 * Bildflächen sind schraffierte Platzhalter, bis klar ist, woher die Symbole kommen.
 */

.talker {
    --schraffur: repeating-linear-gradient(135deg, #F3E7CB 0 8px, #FBF5E6 8px 16px);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: clamp(8px, 1.7vh, 14px);
    padding: clamp(10px, 2.7vh, 22px);
    color: var(--tinte);
}

/* ---------- Satzleiste ---------- */

.talker__satzleiste {
    flex: none;
    height: clamp(76px, 15vh, 124px);           /* Satzleiste wächst mit der Bildschirmhöhe */
    display: flex;
    align-items: center;
    gap: 10px;
    padding: clamp(6px, 1.5vh, 12px);
    border-radius: clamp(18px, 3.2vh, 26px);
    background: var(--tinte);
    box-shadow: inset 0 3px 8px rgba(0, 0, 0, .35);
}
.talker__satz {
    flex: 1;
    min-width: 0;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}
.talker__satz::-webkit-scrollbar { display: none; }
.talker__leer { padding-left: 14px; font-size: 19px; color: var(--tinte-leise); }

/* Wort im Satz */
.talker__karte {
    flex: none;
    height: 100%;
    aspect-ratio: 104 / 100;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px;
    border-radius: 16px;
    background: var(--creme);
    color: var(--tinte);
}
.talker__karte .talker__bild { border-radius: 10px; }
.talker__karte .talker__wort-text { font-size: clamp(12px, 2.1vh, 17px); }

.talker__loeschen,
.talker__vorlesen {
    flex: none;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(2px, .7vh, 6px);
    border-radius: clamp(16px, 2.7vh, 22px);
    font-family: var(--schrift-titel);
    font-weight: 700;
    cursor: pointer;
    transition: transform .45s var(--feder);
}
.talker__loeschen {
    aspect-ratio: 104 / 100;
    border: 2px solid var(--tinte-rand);
    background: transparent;
    color: var(--creme);
    font-size: clamp(12px, 2vh, 16px);
}
.talker__loeschen:active { transform: scale(.92); }
.talker__loeschen .talker__knopf-symbol { width: clamp(20px, 3.4vh, 28px); height: clamp(20px, 3.4vh, 28px); }
.talker__vorlesen {
    aspect-ratio: 150 / 100;
    border: 0;
    background: var(--orange);
    color: var(--tinte);
    box-shadow: var(--glanz-knopf);
    font-size: clamp(14px, 2.3vh, 19px);
}
.talker__vorlesen:active { transform: scale(.93); }
.talker__vorlesen .talker__knopf-symbol { width: clamp(22px, 3.9vh, 32px); height: clamp(22px, 3.9vh, 32px); }

/* ---------- Kategorien ---------- */

.talker__kategorien {
    flex: none;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 2px;
}
.talker__kategorien::-webkit-scrollbar { display: none; }
.talker__kategorie {
    flex: none;
    height: clamp(40px, 6.3vh, 52px);
    padding: 0 clamp(14px, 2.7vh, 22px);
    border: 0;
    border-radius: var(--radius-voll);
    background: var(--creme-dunkel);
    color: var(--tinte);
    font-family: var(--schrift-titel);
    font-size: clamp(15px, 2.2vh, 18px);
    font-weight: 700;
    cursor: pointer;
    transition: transform .45s var(--feder), background-color .25s;
}
.talker__kategorie:active { transform: scale(.92); }
.talker__kategorie.ist-gewaehlt { background: var(--tinte); color: var(--creme); }

/* ---------- Wortraster ---------- */

.talker__raster {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(0, 1fr));
    gap: clamp(6px, 1.2vh, 10px);
}
.talker__wort {
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: clamp(2px, .7vh, 6px);
    padding: clamp(4px, 1vh, 8px);
    border: 0;
    border-radius: clamp(12px, 2.2vh, 18px);
    background: var(--weiss);
    color: var(--tinte);
    box-shadow: 0 6px 14px rgba(90, 60, 10, .12);
    cursor: pointer;
    transition: transform .45s var(--feder);
}
.talker__wort:active { transform: scale(.92); }

.talker__bild { flex: 1; min-height: 0; display: block; border-radius: 12px; background: var(--schraffur); }
.talker__wort-text {
    display: block;
    font-family: var(--schrift-titel);
    font-size: clamp(13px, 2.4vh, 20px);
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Fliegendes Wort (Kopie der Kachel auf dem Weg in die Satzleiste) */
.talker__flieger {
    position: fixed;
    z-index: 50;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 6px;
    border-radius: 16px;
    background: var(--weiss);
    color: var(--tinte);
    box-shadow: 0 14px 28px rgba(0, 0, 0, .25);
    pointer-events: none;
}
.talker__flieger .talker__bild { border-radius: 10px; }
.talker__flieger .talker__wort-text { font-size: 18px; }

/* ---------- Kleinere Bildschirme: weniger Spalten, das Feld scrollt ---------- */

@media (max-width: 599px), (orientation: portrait) {
    .talker { height: auto; }
    .talker__raster { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: none; grid-auto-rows: 120px; }
}
/* Handy hochkant: drei Spalten */
@media (max-width: 599px) {
    .talker { padding: 12px; }
    .talker__satzleiste { gap: 6px; }
    .talker__raster { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 104px; }
    .talker__wort-text { font-size: 17px; }
}
