/* =====================================================
   MENTOR — Feature Q&A premium 1-a-1
   Brand: I Segreti dello Stile · Luxury club · Dark-first
   Consumes tokens from design-tokens.css and wardrobe.css.
   ===================================================== */

/* ─────────────────────────────────────────────────────
   Shared container — editorial column, no card wrap
   ───────────────────────────────────────────────────── */
/* Allineata a sinistra come le altre pagine (eredita il padding di pagina da
   .tt-container__right), niente centraggio con max-width. */
.mentor-page {
    padding: 24px 0 96px;
}
@media (max-width: 640px) {
    .mentor-page { padding: 18px 0 80px; }
}

/* Page hero — left-aligned editorial, eyebrow + serif title.
   No center-aligned "hero-metric" template. */
.mentor-hero {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 32px;
    border-bottom: 1px solid var(--wardrobe-border);
    margin-bottom: 32px;
    position: relative;
}

/* Pill "? Tutorial" ancorata in alto a destra, sulla riga dell'eyebrow */
.mentor-hero .tour-help-btn {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
}
/* Ruolo: link quieto del sistema bottoni. */
.mentor-hero__back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ink-muted);
    text-decoration: none;
    font-size: var(--btn-fs);
    font-weight: var(--btn-weight);
    letter-spacing: var(--btn-track);
    text-transform: uppercase;
    transition: color var(--dur-fast) var(--ease-out);
}
.mentor-hero__back:hover { color: hsl(var(--gold)); }

.mentor-hero__title {
    margin: 0;
    /* Inherits .tt-h1-serif from design-tokens.css */
}

.mentor-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: center;
    margin-top: 4px;
}

.mentor-hero__quota {
    color: var(--wardrobe-ink-muted);
    font-size: 14px;
    margin: 0;
}
.mentor-hero__quota strong {
    color: var(--wardrobe-ink);
    font-weight: 600;
    letter-spacing: 0.02em;
}
.mentor-hero__quota--depleted strong { color: hsl(var(--status-pending)); }

.mentor-hero__bonus-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 9px;
    border-radius: 999px;
    background: hsla(var(--gold) / 0.16);
    color: hsl(var(--gold-soft));
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    border: 1px solid hsla(var(--gold) / 0.3);
}

.mentor-hero__cta {
    margin-top: 14px;
}

/* ─────────────────────────────────────────────────────
   Inbox — list with hairline dividers, NOT card grid
   ───────────────────────────────────────────────────── */
.mentor-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.mentor-list__item {
    border-bottom: 1px solid var(--wardrobe-border-strong, rgba(245,242,236,0.14));
}
.mentor-list__item:last-child { border-bottom: 0; }

.mentor-list__link {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "head head"
        "title title"
        "meta date";
    gap: 6px 16px;
    padding: 28px 4px;
    text-decoration: none;
    color: inherit;
    transition: background var(--dur-base) var(--ease-out),
                padding var(--dur-base) var(--ease-out);
    border-radius: 6px;
}
.mentor-list__link:hover {
    background: var(--wardrobe-surface-2);
    padding-left: 12px;
    padding-right: 12px;
}

/* Variante con anteprima: colonna immagine a sinistra (immagine caricata
   dall'utente o del contenuto collegato). Solo per la lista domande mentor. */
.mentor-list__link--with-thumb {
    grid-template-columns: auto 1fr auto;
    grid-template-areas:
        "thumb head head"
        "thumb title title"
        "thumb meta date";
    column-gap: 16px;
}
.mentor-list__thumb {
    grid-area: thumb;
    align-self: center;
    width: 64px;
    height: 64px;
    border-radius: 8px;
    object-fit: cover;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border-strong);
}

.mentor-list__head { grid-area: head; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.mentor-list__title { grid-area: title; margin: 0; font-family: var(--font-display); font-size: 19px; font-weight: 500; letter-spacing: -0.005em; color: var(--wardrobe-ink); line-height: 1.3; }
.mentor-list__meta  { grid-area: meta; color: var(--wardrobe-ink-muted); font-size: 13px; }
.mentor-list__date  { grid-area: date; color: var(--wardrobe-ink-muted); font-size: 13px; white-space: nowrap; }

/* Unread badge — subtle gold dot, not aggressive */
.mentor-list__unread {
    display: inline-flex; align-items: center; gap: 6px;
    color: hsl(var(--gold));
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.mentor-list__unread::before {
    content: "";
    width: 6px; height: 6px;
    border-radius: 50%;
    background: hsl(var(--gold));
    box-shadow: 0 0 0 3px hsla(var(--gold) / 0.18);
    flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────
   Variante "support": anteprima ultimo messaggio, chevron
   di affordance e barra accento per i non-letti.
   ───────────────────────────────────────────────────── */
.mentor-list__link--support {
    grid-template-columns: 1fr auto;
    grid-template-areas:
        "head    chevron"
        "title   chevron"
        "preview chevron"
        "foot    chevron";
    align-items: start;
    padding: 22px 14px 22px 18px;
}
.mentor-list__link--support:hover {
    background: var(--wardrobe-surface-2);
    padding: 22px 14px 22px 18px;
}

.mentor-list__preview {
    grid-area: preview;
    margin: 4px 0 0;
    color: var(--wardrobe-ink-muted);
    font-size: 13.5px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.mentor-list__preview-author {
    color: var(--wardrobe-ink);
    font-weight: 600;
    margin-right: 4px;
}

.mentor-list__foot {
    grid-area: foot;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 2px 16px;
    margin-top: 8px;
}
.mentor-list__foot .mentor-list__meta,
.mentor-list__foot .mentor-list__date { white-space: normal; }

.mentor-list__chevron {
    grid-area: chevron;
    align-self: center;
    display: inline-flex;
    color: var(--wardrobe-ink-muted);
    transition: transform var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
}
.mentor-list__link--support:hover .mentor-list__chevron {
    transform: translateX(3px);
    color: hsl(var(--gold));
}

/* Non-letto: barra gold verticale a sinistra, angoli squadrati sul lato accento. */
.mentor-list__item--unread { position: relative; }
.mentor-list__item--unread::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    bottom: 14px;
    width: 3px;
    background: hsl(var(--gold));
    border-radius: 0;
}

@media (max-width: 640px) {
    .mentor-list__link--support {
        grid-template-columns: 1fr;
        grid-template-areas:
            "head"
            "title"
            "preview"
            "foot";
        padding-left: 16px;
        padding-right: 12px;
    }
    .mentor-list__chevron { display: none; }
}

/* Empty state — editorial, generous space */
.mentor-empty {
    padding: 80px 24px;
    text-align: center;
    color: var(--wardrobe-ink-muted);
}
.mentor-empty__title {
    font-family: var(--font-display);
    font-size: 22px;
    color: var(--wardrobe-ink);
    margin: 0 0 8px;
    letter-spacing: -0.01em;
}
.mentor-empty__lede { margin: 0 auto; max-width: 42ch; font-size: 14px; line-height: 1.6; }

/* ─────────────────────────────────────────────────────
   New question — form, editorial fields
   ───────────────────────────────────────────────────── */
.mentor-form {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.mentor-form__context {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 8px 8px 16px;
    background: hsla(var(--gold) / 0.08);
    border: 1px solid hsla(var(--gold) / 0.32);
    border-radius: 999px;
    align-self: flex-start;
}
.mentor-form__context-kicker {
    color: hsl(var(--gold));
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.mentor-form__context-title {
    color: var(--wardrobe-ink);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}
.mentor-form__context-title:hover { text-decoration: underline; }
.mentor-form__context-remove {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    width: 24px; height: 24px;
    display: inline-grid; place-items: center;
    color: var(--wardrobe-ink-muted);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    transition: background var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
}
.mentor-form__context-remove:hover {
    background: var(--wardrobe-surface-2);
    color: var(--wardrobe-ink);
}

/* ── Foto di riferimento del contesto (capo/outfit/ispirazione) ──
   Thumb condivisa tra form, dettaglio utente e dettaglio admin;
   la dimensione si regola col custom property --ctx-thumb-size. */
.mentor-ctx-thumb,
.mentor-ctx-collage {
    width: var(--ctx-thumb-size, 48px);
    height: var(--ctx-thumb-size, 48px);
    flex: 0 0 auto;
    border-radius: 10px;
    overflow: hidden;
    background: var(--wardrobe-surface-2);
}
.mentor-ctx-thumb { object-fit: cover; }
.mentor-ctx-collage {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 2px;
}
.mentor-ctx-collage img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.mentor-ctx-collage img:only-child { grid-column: span 2; }

.mentor-form__context-info {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.mentor-form__context--photo {
    --ctx-thumb-size: 64px;
    border-radius: 16px;
    padding: 10px 12px;
    gap: 14px;
}
.mentor-form__context--photo .mentor-form__context-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.mentor-form__context-hint {
    color: var(--wardrobe-ink-muted);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.mentor-detail__context.mentor-detail__context--photo {
    --ctx-thumb-size: 36px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px 6px 6px;
    border-radius: 12px;
}
.mentor-detail__context--photo .mentor-ctx-thumb,
.mentor-detail__context--photo .mentor-ctx-collage { border-radius: 8px; }

.mentor-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.mentor-field__label {
    display: inline-flex; align-items: baseline; gap: 8px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wardrobe-ink);
}
.mentor-field__hint {
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.02em;
    text-transform: none;
    color: var(--wardrobe-ink-muted);
}

.mentor-input,
.mentor-textarea {
    width: 100%;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border-strong);
    color: var(--wardrobe-ink);
    padding: 12px 14px;
    border-radius: 8px;
    font-family: var(--font-inter);
    font-size: 14px;
    line-height: 1.5;
    transition: border-color var(--dur-base) var(--ease-out),
                background var(--dur-base) var(--ease-out);
}
.mentor-input:focus,
.mentor-textarea:focus {
    outline: none;
    border-color: hsl(var(--gold));
    background: var(--wardrobe-surface);
}
.mentor-textarea { resize: vertical; min-height: 200px; }

.mentor-file {
    display: block;
    width: 100%;
    padding: 14px;
    background: var(--wardrobe-surface-2);
    border: 1px dashed var(--wardrobe-border-strong);
    border-radius: 8px;
    color: var(--wardrobe-ink-muted);
    font-size: 13px;
    cursor: pointer;
    transition: border-color var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
}
.mentor-file:hover { border-color: hsl(var(--gold)); color: var(--wardrobe-ink); }
.mentor-file::file-selector-button {
    background: transparent;
    border: 1px solid var(--wardrobe-border-strong);
    color: var(--wardrobe-ink);
    padding: 6px 12px;
    border-radius: 6px;
    margin-right: 10px;
    cursor: pointer;
    font: inherit;
}
.mentor-file::file-selector-button:hover { border-color: hsl(var(--gold)); color: hsl(var(--gold)); }

.mentor-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.mentor-links__add {
    align-self: flex-start;
    background: transparent;
    border: 1px dashed var(--wardrobe-border-strong);
    color: var(--wardrobe-ink-muted);
    padding: 10px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-family: var(--font-inter);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    transition: border-color var(--dur-base) var(--ease-out),
                color var(--dur-base) var(--ease-out);
}
.mentor-links__add:hover { border-color: hsl(var(--gold)); color: hsl(var(--gold)); }

.mentor-form__actions {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
    align-items: center;
    margin-top: 12px;
    padding-top: 24px;
    border-top: 1px solid var(--wardrobe-border);
}
@media (max-width: 480px) {
    .mentor-form__actions { flex-direction: column-reverse; align-items: stretch; }
    .mentor-form__actions > * { width: 100%; }
}

/* ─────────────────────────────────────────────────────
   Nuova domanda — interfaccia a chat
   L'oggetto è un input travestito da titolo della
   conversazione; il resto riusa thread + composer.
   ───────────────────────────────────────────────────── */
.mentor-chat {
    display: flex;
    flex-direction: column;
}

/* input. per battere gli input shadcn di style.css (0,1,1) */
input.mentor-chat__subject {
    width: 100%;
    background: transparent;
    border: 0;
    border-bottom: 1px dashed var(--wardrobe-border-strong);
    border-radius: 0;
    padding: 0 0 8px;
    color: #fff;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: var(--fs-h2);
    line-height: 1.2;
    letter-spacing: -0.01em;
    outline: none;
    box-shadow: none;
    transition: border-color var(--dur-base) var(--ease-out);
}
input.mentor-chat__subject::placeholder {
    color: var(--wardrobe-ink-muted);
    opacity: 0.6;
}
input.mentor-chat__subject:hover { border-bottom-color: hsla(var(--gold) / 0.45); }
input.mentor-chat__subject:focus {
    border-bottom-color: hsl(var(--gold));
    box-shadow: none;
}

.mentor-chat__subject-hint {
    color: var(--wardrobe-ink-muted);
    font-size: 12px;
}

.mentor-chat__thread {
    min-height: 140px;
}

.mentor-chat__hint {
    margin: 10px 6px 0;
    color: var(--wardrobe-ink-muted);
    font-size: 11.5px;
    text-align: right;
}

/* ─────────────────────────────────────────────────────
   Detail — header + thread + composer
   ───────────────────────────────────────────────────── */
.mentor-detail__head {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--wardrobe-border);
    margin-bottom: 36px;
}
.mentor-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 4px;
}
.mentor-detail__context {
    color: hsl(var(--gold));
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-decoration: none;
    padding: 5px 12px;
    border-radius: 999px;
    background: hsla(var(--gold) / 0.08);
    border: 1px solid hsla(var(--gold) / 0.28);
    transition: background var(--dur-base) var(--ease-out);
}
.mentor-detail__context:hover {
    background: hsla(var(--gold) / 0.14);
    color: hsl(var(--gold-soft));
}
/* Thread — bubbles. Sender distinction: user = gold tint right-aligned,
   mentor = darker surface left-aligned with a gold "badge" + accent border. */
.mentor-thread {
    list-style: none;
    padding: 0;
    margin: 0 0 32px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

/* Dettaglio conversazione (lato utente): il thread riempie la pagina come una
   vera chat, anche con pochi messaggi. Non tocca la nuova domanda (.mentor-chat__head)
   né la lista. */
.mentor-detail__head ~ .mentor-thread { min-height: 58vh; }

.mentor-bubble {
    max-width: 78%;
    padding: 16px 20px;
    border-radius: 14px;
    line-height: 1.6;
    position: relative;
}

/* USER bubble — right side, committed gold body */
.mentor-bubble--user {
    align-self: flex-end;
    background: linear-gradient(180deg, hsla(var(--gold) / 0.3), hsla(var(--gold) / 0.22));
    border: 1px solid hsla(var(--gold) / 0.55);
    border-bottom-right-radius: 4px; /* tail toward sender */
    color: hsl(40 25% 92%);
}

/* MENTOR bubble — left side, ivory-ish surface tinted warm, neutral border */
.mentor-bubble--mentor {
    align-self: flex-start;
    background: hsl(24 6% 16%); /* visibly lighter than page surface-1 */
    border: 1px solid hsla(40 15% 60% / 0.18);
    border-bottom-left-radius: 4px; /* tail toward sender */
}

.mentor-bubble__author {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
    font-size: 12px;
    color: var(--wardrobe-ink-muted);
    letter-spacing: 0.02em;
}
.mentor-bubble__author strong {
    color: var(--wardrobe-ink);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0;
}

/* Mentor "badge" — gold chip with starred-message icon */
.mentor-bubble__badge {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: hsla(var(--gold) / 0.18);
    color: hsl(var(--gold));
    font-size: 13px;
    flex-shrink: 0;
}
.mentor-bubble--mentor .mentor-bubble__author strong {
    color: hsl(var(--gold));
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 11px;
}
.mentor-bubble__avatar {
    width: 24px; height: 24px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--wardrobe-border-strong);
    flex-shrink: 0;
}

/* Time — de-emphasized, pushed to the end */
.mentor-bubble__time {
    margin-left: auto;
    font-size: 10.5px;
    color: rgba(255,255,255,0.42);
    letter-spacing: 0.02em;
    white-space: nowrap;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    display: inline-flex;
    gap: 6px;
    align-items: baseline;
}
.mentor-bubble__time-date::after {
    content: "·";
    margin-left: 6px;
    opacity: 0.5;
}
.mentor-bubble__body {
    font-size: 15px;
    color: var(--wardrobe-ink);
    word-wrap: break-word;
}

.mentor-bubble__attachments {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}
.mentor-bubble__img {
    max-width: 220px;
    max-height: 220px;
    border-radius: 8px;
    object-fit: cover;
    display: block;
    border: 1px solid var(--wardrobe-border-strong);
    transition: opacity var(--dur-base) var(--ease-out);
}
.mentor-bubble__img:hover { opacity: 0.92; }

.mentor-bubble__link {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px;
    color: hsl(var(--gold));
    text-decoration: none;
    padding: 6px 12px;
    background: var(--wardrobe-surface);
    border: 1px solid var(--wardrobe-border-strong);
    border-radius: 999px;
    word-break: break-all;
    transition: border-color var(--dur-base) var(--ease-out);
}
.mentor-bubble__link::before {
    content: "↗";
    font-size: 11px;
    opacity: 0.7;
    flex-shrink: 0;
}
.mentor-bubble__link:hover { border-color: hsl(var(--gold)); }

/* Composer — editorial textarea + secondary tools row */
/* Composer da chat: graffetta, textarea che cresce, invio circolare oro. */
.mentor-composer {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border-strong);
    border-radius: 24px;
    padding: 7px;
    transition: border-color var(--dur-base) var(--ease-out);
}
.mentor-composer:focus-within { border-color: hsl(var(--gold)); }

.mentor-composer__textarea {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: 0;
    color: var(--wardrobe-ink);
    font-family: var(--font-inter);
    font-size: 14px;
    line-height: 1.5;
    resize: none;
    min-height: 40px;
    max-height: 160px;
    padding: 10px 4px;
    outline: 0;
}
.mentor-composer__textarea::placeholder { color: var(--wardrobe-ink-muted); }

.mentor-composer__attach {
    position: relative;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    cursor: pointer;
}
.mentor-composer__attach-count {
    position: absolute;
    top: -3px;
    right: -3px;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    border-radius: 999px;
    background: hsl(var(--gold));
    color: hsl(var(--gold-ink));
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
}

.mentor-composer__send {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid hsl(var(--gold));
    background: linear-gradient(180deg, hsl(var(--gold-soft)), hsl(var(--gold)));
    color: hsl(var(--gold-ink));
    font-size: 15px;
    transition: background var(--dur-fast) var(--ease-out);
}
.mentor-composer__send:hover {
    background: linear-gradient(180deg, hsl(var(--gold)), hsl(var(--gold-deep)));
    color: hsl(var(--gold-ink));
    border-color: hsl(var(--gold));
}

/* Secondary actions area below composer */
.mentor-detail__secondary {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}

/* Nota "domanda chiusa": banner compatto così la lista messaggi (flex:1 sopra)
   si prende più spazio verticale nelle conversazioni chiuse. */
.mentor-detail__close-note {
    margin: 12px 0 0;
    padding: 16px 20px;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border);
    border-radius: 12px;
    color: var(--wardrobe-ink-muted);
    font-size: 14px;
    text-align: center;
    line-height: 1.45;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.mentor-detail__close-note strong {
    display: block;
    color: var(--wardrobe-ink);
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    letter-spacing: -0.01em;
}
.mentor-detail__close-note p {
    margin: 0;
    max-width: 42ch;
}
.mentor-detail__close-note-quota {
    color: hsl(var(--status-pending));
    font-size: 13px;
}
.mentor-detail__close-cta {
    margin-top: 10px;
}

/* ─────────────────────────────────────────────────────
   Mentor inline CTA (used in content detail pages)
   Used on: outfit-detail, wardrobe-detail, recipe-detail,
   shop-product. Subtle gold ghost button.
   ───────────────────────────────────────────────────── */
/* Ruolo: secondario contorno oro del sistema bottoni. */
.mentor-cta {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: 40px;
    padding: 0 22px;
    background: transparent;
    border: 1px solid hsla(var(--gold) / 0.55);
    border-radius: var(--btn-radius);
    color: hsl(var(--gold));
    text-decoration: none;
    font-family: var(--font-inter);
    font-size: var(--btn-fs);
    font-weight: var(--btn-weight);
    letter-spacing: var(--btn-track);
    text-transform: uppercase;
    line-height: 1;
    white-space: nowrap;
    transition: background var(--dur-fast) var(--ease-out),
                border-color var(--dur-fast) var(--ease-out),
                color var(--dur-fast) var(--ease-out);
}
.mentor-cta:hover {
    background: hsla(var(--gold) / 0.1);
    border-color: hsl(var(--gold));
    color: hsl(var(--gold-soft));
}
.mentor-cta svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

/* ─────────────────────────────────────────────────────
   Status pill semantic alias (mentor enum → token status)
   Used inline via PHP map. These ARE the canonical .tt-status
   modifiers; no overrides here. Documentation only:
   open     → .tt-status--pending  (in attesa)
   answered → .tt-status--approved (risposta del mentor)
   closed   → .tt-status--info     (risolta)
   ───────────────────────────────────────────────────── */

/* ─────────────────────────────────────────────────────
   Reduced motion — already handled globally in design-tokens.css
   but explicit override for any motion-heavy hover here:
   ───────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .mentor-list__link:hover { padding-left: 4px; padding-right: 4px; }
}

/* ─────────────────────────────────────────────────────
   Responsive (user side)
   ───────────────────────────────────────────────────── */
@media (max-width: 640px) {
    /* Header dettaglio: la pill di stato ("Risolta") sale nell'angolo in alto a
       destra, sulla stessa riga del link "Tutte le domande". Spazio sopra la
       lista messaggi compattato (era padding 28 + margin 36 = 64px). */
    .mentor-detail__head {
        position: relative;
        padding-bottom: 14px;
        margin-bottom: 16px;
        gap: 8px;
    }
    .mentor-detail__meta { margin-top: 0; }
    .mentor-detail__meta > .tt-status {
        position: absolute;
        top: 0;
        right: 0;
    }

    .mentor-bubble { max-width: 92%; padding: 14px 16px; }
    /* Mobile: hide date, keep only HH:MM — full datetime stays in title tooltip */
    .mentor-bubble__time { font-size: 10px; gap: 0; }
    .mentor-bubble__time-date { display: none; }
    .mentor-list__link {
        grid-template-areas:
            "head head"
            "title title"
            "meta meta"
            "date date";
        gap: 4px;
    }
    .mentor-list__date { white-space: normal; }

    /* Variante support: l'override generico sopra elimina le aree
       preview/foot/chevron e i testi finiscono uno sopra l'altro.
       Ripristina il template della variante. */
    .mentor-list__link--support {
        grid-template-areas:
            "head    chevron"
            "title   chevron"
            "preview chevron"
            "foot    chevron";
        gap: 6px 12px;
    }

    /* Variante con anteprima: mantieni la colonna immagine (l'override sopra la
       toglie). La foto occupa tutte le righe delle info, così è alta quanto il
       blocco testuale a fianco, e un po' più grande della thumb desktop. */
    .mentor-list__link--with-thumb {
        grid-template-columns: auto 1fr auto;
        grid-template-areas:
            "thumb head head"
            "thumb title title"
            "thumb meta meta"
            "thumb date date";
        column-gap: 14px;
    }
    .mentor-list__link--with-thumb .mentor-list__thumb {
        align-self: stretch;
        width: 84px;
        height: auto;
    }
}

/* =====================================================
   ADMIN — Mentor (consumed only in admin layout)
   ===================================================== */

.admin-mentor-detail__layout {
    display: grid;
    /* Sidebar larga: card Collegamento sopra, Utente + Azioni affiancate sotto.
       La chat cede un po' di spazio alle card; abbastanza larga da tenere le
       etichette delle stats ("Domande totali", "Quota periodo") su una riga. */
    grid-template-columns: minmax(0, 1fr) 480px;
    gap: 28px;
    /* Il page-header vive DENTRO la colonna chat: il grid parte subito sotto
       la toolbar (che ha già il suo margin-bottom). */
    margin-top: 8px;
}
@media (max-width: 1280px) {
    .admin-mentor-detail__layout { grid-template-columns: minmax(0, 1fr) 340px; }
}
@media (max-width: 960px) {
    .admin-mentor-detail__layout { grid-template-columns: minmax(0, 1fr); }
}

/* La conversazione domina la pagina come in una vera chat: la colonna è alta
   e il thread cresce a riempirla anche con pochi messaggi, tenendo il composer
   ancorato in fondo. */
.admin-mentor-detail__thread {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 74vh;
}
/* Reuse mentor-thread + mentor-bubble + mentor-composer from user side */
.admin-mentor-detail__thread .mentor-thread {
    flex: 1 1 auto;
    margin-bottom: 24px;
}

/* Assistenza admin: le conversazioni sono in genere brevi e il box di risposta
   deve restare visibile senza scorrere. A differenza del mentor, il thread NON
   riempie l'altezza della pagina: si dimensiona sul contenuto e scrolla
   internamente solo se molto lungo, tenendo il composer subito sotto e in vista. */
.admin-support-detail .admin-mentor-detail__thread { min-height: 0; }
.admin-support-detail .admin-mentor-detail__thread .mentor-thread {
    flex: 0 1 auto;
    max-height: calc(100vh - 340px);
    overflow-y: auto;
    margin-bottom: 16px;
}

/* Prospettiva del mentor: utente a sinistra, mentor (io) a destra.
   Specchia l'allineamento del lato utente, code comprese. */
.admin-mentor-detail .mentor-bubble--user {
    align-self: flex-start;
    border-bottom-right-radius: 14px;
    border-bottom-left-radius: 4px;
}
.admin-mentor-detail .mentor-bubble--mentor {
    align-self: flex-end;
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 4px;
}

.admin-mentor-reply {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.admin-mentor-detail__closed-note {
    margin: 24px 0 0;
    padding: 18px 20px;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border);
    border-radius: 10px;
    color: var(--wardrobe-ink-muted);
    font-size: 14px;
    line-height: 1.5;
}
.admin-mentor-detail__closed-note strong {
    display: block;
    color: var(--wardrobe-ink);
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 4px;
}
.admin-mentor-detail__closed-note p { margin: 0; }

/* Sidebar */
.admin-mentor-detail__sidebar {
    display: flex;
    flex-direction: column;
    gap: 18px;
    height: fit-content;
    min-width: 0;
}
/* Utente + Azioni affiancate sotto la card Collegamento */
.admin-mentor-detail__sidebar-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-items: start;
}
@media (max-width: 1280px) and (min-width: 961px) {
    .admin-mentor-detail__sidebar-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .admin-mentor-detail__sidebar-grid { grid-template-columns: 1fr; }
}

/* Card Collegamento — punto di ingresso della domanda.
   Card cliccabile con foto d'anteprima a piena larghezza. */
.admin-mentor-ctx {
    display: block;
    text-decoration: none;
    color: inherit;
}
.admin-mentor-ctx__media {
    display: block;
    margin-bottom: 14px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--wardrobe-surface);
}
/* La foto/collage riempie la larghezza della card come vera anteprima,
   sovrascrivendo il thumb quadrato condiviso (--ctx-thumb-size). */
.admin-mentor-ctx__media .mentor-ctx-thumb,
.admin-mentor-ctx__media .mentor-ctx-collage {
    width: 100%;
    height: 168px;
    border-radius: 10px;
    display: block;
}
.admin-mentor-ctx__media .mentor-ctx-collage { gap: 2px; }
.admin-mentor-ctx__info {
    display: block;
    min-width: 0;
}
.admin-mentor-ctx__kicker {
    display: block;
    color: hsl(var(--gold));
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.admin-mentor-ctx__title {
    display: block;
    color: var(--wardrobe-ink);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
/* Ruolo: link quieto del sistema bottoni (come profile-link). */
.admin-mentor-ctx__cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    color: var(--wardrobe-ink-muted);
    font-size: var(--btn-fs-sm, 10.5px);
    font-weight: var(--btn-weight, 650);
    letter-spacing: var(--btn-track, 0.13em);
    text-transform: uppercase;
    transition: color var(--dur-fast) var(--ease-out);
}
.admin-mentor-ctx:hover .admin-mentor-ctx__cta { color: hsl(var(--gold)); }
.admin-mentor-ctx:hover .admin-mentor-ctx__title { color: #fff; }

.admin-mentor-card {
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border);
    border-radius: 10px;
    padding: 18px;
}
.admin-mentor-card__title {
    margin: 0 0 14px;
    font-family: var(--font-inter);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--wardrobe-ink-muted);
}

/* User panel */
.admin-mentor-detail__user-name {
    margin: 0 0 2px;
    font-size: 15px;
    font-weight: 600;
    color: var(--wardrobe-ink);
}
.admin-mentor-detail__email {
    margin: 0 0 14px;
    color: var(--wardrobe-ink-muted);
    font-size: 12px;
    word-break: break-all;
}
.admin-mentor-detail__stats {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 12px;
    margin: 0 0 14px;
    font-size: 13px;
}
.admin-mentor-detail__stats dt {
    color: var(--wardrobe-ink-muted);
    letter-spacing: 0.02em;
}
.admin-mentor-detail__stats dd {
    margin: 0;
    font-weight: 500;
    color: var(--wardrobe-ink);
    text-align: right;
}
.admin-mentor-detail__bonus-tag {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 7px;
    border-radius: 999px;
    background: hsla(var(--gold) / 0.16);
    color: hsl(var(--gold-soft));
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
}
/* Ruolo: link quieto del sistema bottoni. */
.admin-mentor-detail__profile-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--wardrobe-ink-muted);
    text-decoration: none;
    font-size: var(--btn-fs-sm, 10.5px);
    font-weight: var(--btn-weight, 650);
    letter-spacing: var(--btn-track, 0.13em);
    text-transform: uppercase;
    transition: color var(--dur-fast) var(--ease-out);
}
.admin-mentor-detail__profile-link:hover { color: hsl(var(--gold)); }

/* Action form (status / bonus) */
.admin-mentor-action {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.admin-mentor-action + .admin-mentor-action {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--wardrobe-border);
}
.admin-mentor-action__label {
    font-size: 12px;
    font-weight: 600;
    color: var(--wardrobe-ink);
    letter-spacing: 0.02em;
    margin: 0;
}
.admin-mentor-action__hint {
    margin: 0;
    color: var(--wardrobe-ink-muted);
    font-size: 11.5px;
    line-height: 1.5;
}
.admin-mentor-action__row {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin-top: 4px;
}
/* select./input. per battere i selettori shadcn di style.css (0,1,1) */
select.admin-mentor-action__select,
input.admin-mentor-action__number {
    box-sizing: border-box;
    flex: 1 1 auto;
    min-width: 0;
    height: 32px;
    background: var(--wardrobe-surface);
    border: 1px solid var(--wardrobe-border-strong);
    color: var(--wardrobe-ink);
    padding: 0 10px;
    border-radius: 8px;
    font: inherit;
    font-size: 13px;
    line-height: 1.4;
    transition: border-color var(--dur-base) var(--ease-out);
}
input.admin-mentor-action__number { flex: 0 0 80px; text-align: center; }
select.admin-mentor-action__select:focus,
input.admin-mentor-action__number:focus {
    outline: none;
    border-color: hsl(var(--gold));
    box-shadow: none;
}
/* I submit (Aggiorna/Aggiungi) sono bottoni di sistema: btn btn--outline btn--sm */
.admin-mentor-action__row .btn { flex: 0 0 auto; }
.admin-mentor-action__disabled {
    margin: 0;
    color: var(--wardrobe-ink-muted);
    font-size: 11.5px;
    font-style: italic;
    line-height: 1.5;
}

/* Admin inbox table — sticky thead is fine when there's no overflow wrapper */
.admin-mentor-inbox__table {
    margin-top: 24px;
}

/* Friendlier filter form on inbox */
.admin-mentor-inbox__filters {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 14px;
}
.admin-mentor-inbox__filters select,
.admin-mentor-inbox__filters input[type="search"] {
    /* Override global style.css that forces select{width:100%;display:flex} */
    width: auto;
    display: inline-block;
    background: var(--wardrobe-surface-2);
    border: 1px solid var(--wardrobe-border-strong);
    color: var(--wardrobe-ink);
    padding: 7px 12px;
    border-radius: 6px;
    font: inherit;
    font-size: 13px;
    transition: border-color var(--dur-base) var(--ease-out);
}
.admin-mentor-inbox__filters input[type="search"] {
    flex: 1 1 240px;
    min-width: 0;
}
.admin-mentor-inbox__filters select:focus,
.admin-mentor-inbox__filters input[type="search"]:focus {
    outline: none;
    border-color: hsl(var(--gold));
}
.admin-mentor-inbox__check {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    cursor: pointer;
    color: var(--wardrobe-ink-muted);
    font-size: 12.5px;
}
.admin-mentor-inbox__check input { accent-color: hsl(var(--gold)); }

/* ─────────────────────────────────────────────────────
   Chat admin a tutta altezza (desktop): la barra di risposta resta FISSA in
   fondo alla pagina — visibile senza scorrere — e scorrono solo i messaggi.
   Invece di stimare height: calc(100dvh - Xpx) (fragile: dipende da
   header/breadcrumb/densità e va ritoccato a ogni deploy) ancoriamo la chat
   allo schermo con una catena flex: .admin-main riempie il viewport,
   .admin-content lo spazio sotto l'header, il grid della chat il resto; il
   thread scrolla internamente e il composer resta appeso in fondo.
   Scoping via :has() così le ALTRE pagine admin (tabelle, form) continuano a
   scorrere normalmente. Vale per i 3 dettagli admin (mentor, feedback,
   assistenza) che condividono queste classi.
   ───────────────────────────────────────────────────── */
@media (min-width: 961px) {
    /* Guscio a tutta altezza, SOLO sulle pagine chat (.admin-main e
       .admin-content sono condivisi → serve :has() per non toccare le altre). */
    .admin-main:has(.admin-mentor-detail__layout) {
        height: 100dvh;
        overflow: hidden;
    }
    .admin-main:has(.admin-mentor-detail__layout) .admin-content {
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }
    /* Questi wrapper esistono solo nelle pagine chat: niente :has() necessario.
       La toolbar resta in cima ad altezza naturale (il page-header vive dentro
       la colonna chat); il grid della chat prende tutto lo spazio rimasto. */
    .admin-mentor-detail {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }
    .admin-mentor-detail > .admin-page-toolbar {
        flex: 0 0 auto;
    }
    .admin-mentor-detail__layout {
        flex: 1 1 auto;
        min-height: 0;
        grid-template-rows: minmax(0, 1fr);
    }
    /* La sidebar scrolla per conto suo se più alta della chat.
       height: auto è indispensabile: annulla l'height: fit-content della base,
       che altrimenti fa sforare la sidebar oltre la riga del grid — con
       overflow: hidden sul guscio le card in fondo (Azioni) diventano
       irraggiungibili. */
    .admin-mentor-detail__layout > .admin-mentor-detail__sidebar {
        height: auto;
        min-height: 0;
        overflow-y: auto;
    }
}

/* Colonna thread = colonna flex che riempie la riga: header in cima, i
   messaggi scorrono INTERNAMENTE e il composer resta appeso in fondo
   (comportamento chat). Il '>' è indispensabile: page-header, <ol
   class="mentor-thread"> e composer sono figli DIRETTI di
   .admin-mentor-detail__thread (verificato nei 3 view).
   Su mobile (dove il guscio a tutta altezza sopra non si applica) il thread
   cresce col contenuto e il composer resta inline in coda. */
.admin-mentor-detail__thread {
    min-width: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: auto;
}
.admin-mentor-detail__thread > .admin-page-header {
    flex: 0 0 auto;
}
.admin-mentor-detail__thread > .mentor-thread {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
    margin-bottom: 16px;
}
.admin-mentor-detail__thread > .admin-mentor-reply,
.admin-mentor-detail__thread > .admin-mentor-detail__closed-note {
    flex: 0 0 auto;
}
/* Assistenza: schema uniforme (annulla il max-height calc di ~line 974-980). */
.admin-support-detail .admin-mentor-detail__thread > .mentor-thread {
    flex: 1 1 auto;
    max-height: none;
    overflow-y: auto;
    min-height: 0;
    margin-bottom: 16px;
}

/* Utente: SOLO le pagine chat (dettaglio + nuova domanda) diventano colonna
   flex ad altezza limitata, così il thread scrolla internamente e il composer
   resta appeso in fondo. La lista domande (.mentor-inbox) usa lo stesso wrapper
   .mentor-page ma NON deve essere vincolata in altezza: senza questo scoping la
   lista lunga sfora il box e il footer ci finisce sopra. Discriminante: la
   presenza di una .mentor-thread (assente nell'inbox). */
.mentor-page:has(.mentor-thread) {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 72px); /* approssimativo: nav/dock — rifinire dopo deploy */
    min-height: 0;
}
/* Header ancorato in alto (figlio diretto di .mentor-page). */
.mentor-page > .mentor-detail__head {
    flex: 0 0 auto;
}
/* Lista messaggi: flexa e scrolla internamente (figlio diretto di .mentor-page). */
.mentor-page > .mentor-thread {
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
    margin-bottom: 16px;
}
/* Composer / nota-chiuso ancorati in fondo (figli diretti di .mentor-page). */
.mentor-page > .mentor-composer,
.mentor-page > .mentor-detail__close-note {
    flex: 0 0 auto;
}
/* Neutralizza il vecchio min-height:58vh (line ~598) che impedirebbe lo
   scroll interno tenendo il thread più alto del suo contenitore flex. */
.mentor-detail__head ~ .mentor-thread { min-height: 0; }

/* Hint domande mentor residue (partial mentor-quota-hint) */
.mentor-quota-hint {
    font-size: .82rem;
    line-height: 1.4;
    margin-top: .5rem;
    color: var(--wardrobe-ink-muted);
}
.mentor-quota-hint strong {
    color: hsl(var(--gold));
    font-weight: 700;
}
.mentor-quota-hint.is-empty { opacity: .85; }
.mentor-page > .mentor-quota-hint { flex: 0 0 auto; margin-top: 0; padding: 4px 0 2px; }

/* La hint NON deve diventare una colonna affiancata ai bottoni: quando vive
   dentro una button-row in flex (dettaglio capo/outfit, riga CTA ricetta) va
   forzata su una riga propria a tutta larghezza, sempre in fondo. La
   spaziatura la dà il row-gap del contenitore, quindi azzero il margin-top. */
.wardrobe-detail__actions > .mentor-quota-hint,
.outfit-detail__actions > .mentor-quota-hint,
.recipe-detail__cta-row > .mentor-quota-hint {
    flex: 0 0 100%;
    width: 100%;
    order: 1;
    margin-top: 0;
}

/* CTA mentor con domande esaurite: resta visibile ma chiaramente non
   cliccabile (niente href nel markup, look spento, cursor not-allowed).
   Selettore [aria-disabled] così basta l'attributo per attivarlo. */
.recipe-detail__mentor-btn[aria-disabled="true"],
.outfit-detail__action-mentor[aria-disabled="true"],
.mentor-cta[aria-disabled="true"],
.tt-vd-mentor__cta[aria-disabled="true"],
.tt-vd-qa[aria-disabled="true"] {
    background: transparent;
    border-color: hsla(0 0% 100% / 0.14);
    color: hsla(0 0% 100% / 0.4);
    box-shadow: none;
    cursor: not-allowed;
    opacity: 0.65;
}
/* Nessuna reazione all'hover quando è disabilitato. */
.recipe-detail__mentor-btn[aria-disabled="true"]:hover,
.outfit-detail__action-mentor[aria-disabled="true"]:hover,
.mentor-cta[aria-disabled="true"]:hover,
.tt-vd-mentor__cta[aria-disabled="true"]:hover,
.tt-vd-qa[aria-disabled="true"]:hover {
    background: transparent;
    border-color: hsla(0 0% 100% / 0.14);
    color: hsla(0 0% 100% / 0.4);
}

/* ─────────────────────────────────────────────────────
   Chat a tutta pagina (stile app di messaggistica)
   Dettaglio mentor, ticket assistenza, dettaglio feedback:
   body.is-chat-view (impostata in app.php per queste rotte).

   La colonna contenuto (.tt-container__right) è bloccata
   all'altezza dello schermo e diventa una colonna flex: la
   pagina non scrolla — scorre solo la lista messaggi dentro
   .mentor-page.
   Sostituisce l'approssimazione height:calc(100dvh - 72px)
   del blocco sopra, che dipendeva da un numero magico.
   ───────────────────────────────────────────────────── */
/* La pagina non scrolla mai: la vista è ancorata all'altezza schermo.
   Va bloccato l'<html> (lo scroll container reale: ha overflow-y visible),
   non basta il body. Blinda anche eventuali mismatch 100vh vs 100dvh. */
html:has(body.is-chat-view),
body.is-chat-view {
    overflow: hidden;
}
body.is-chat-view .tt-container__right {
    height: 100dvh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
/* La soft-nav region (app.php) si frappone tra colonna e .mentor-page:
   deve propagare la colonna flex, altrimenti la chat perde l'altezza. */
body.is-chat-view .tt-softnav-region {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
/* La pagina chat riempie lo spazio rimasto nella colonna e gestisce
   lo scroll interno (thread). Annulla l'altezza fissa del blocco sopra. */
body.is-chat-view .mentor-page {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    padding-bottom: 0;
}
/* Su telefono (≤767px dock.css azzera il padding-bottom della colonna) la
   barra di scrittura resterebbe incollata al bordo inferiore: un filo di
   respiro sotto, + safe-area per il notch/home-indicator iOS. */
@media (max-width: 767px) {
    body.is-chat-view .mentor-page {
        padding-bottom: calc(10px + env(safe-area-inset-bottom));
    }
}
