/* Mood App - Nav mobile & componenti ricerca/post singolo (modulare) */
:root {
  --app-nav-h: 72px;
}

/* IL TELEFONO LUNGO HA UNA BARRA PIÃ™ ALTA (04/10/2026). Il titolare: Â«per mobile piÃ¹ moderni piÃ¹ lunghi
   come iPhone 18 possiamo portare --app-nav-h: 72px a 82px perchÃ© cosÃ¬ rimane spaziosa e comprensibileÂ».
   La misura gli dÃ  ragione: le voci della barra sono ALTE 71-74px (icona + parola + margine), quindi in
   una barra da 72 sono piÃ¹ alte della barra che le contiene â€” strette, non spaziose. A 82 respirano.
   Sotto i 700px di schermo la barra resta a 72: su un telefono corto quei dieci pixel sono una fetta di
   contenuto, e la barra si puÃ² comunque abbassare col manico.
   Una variabile sola muove tutto: l'altezza della barra, il margine del contenuto (`body { padding-bottom }`
   qui sotto), la posizione del manico, e le altezze di chat e gruppi (che la leggono con `var(--app-nav-h)`).
   `body.mood-barra-giu` la porta a 0 quando la barra Ã¨ abbassata: quello resta, e vince su questa (Ã¨ piÃ¹
   specifico: `body.mood-barra-giu` contro `:root`). */
@media (max-width: 720px) and (min-height: 700px) {
  :root {
    --app-nav-h: 82px;
  }
}

/* Bottom nav mobile stile app: accesso rapido, visibile solo sotto 720px */
@media (max-width: 720px) {
  .mood-app-bottombar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    height: var(--app-nav-h);
    display: flex;
    align-items: center;
    justify-content: space-around;
    background: #00000054;
    backdrop-filter: blur(15px);
    padding: 0;
    box-shadow: 0 0px 1px 1px rgb(73 73 73 / 64%);
  }
  .mood-app-bottombar a,
  .mood-app-bottombar > button {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    color: #f7f7f7;
    text-decoration: none;
    padding: 15px 6px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 0.65rem;
    cursor: pointer;
    max-width: 80px;
    height: -webkit-fill-available;
    justify-content: center;
  }

  .mood-app-bottombar a:hover,
  .mood-app-bottombar > button:hover {
    background: #03a9f42b;
  }

  .mood-app-bottombar a.is-active,
  .mood-app-bottombar > button.is-active {
    color: #ffee5d;
    border-bottom: 3px solid #FFEB3B;
  }
  .mood-app-bottombar svg{
    width: 20px;
    height: 20px;
  }
  /* L'ICONA DELLA BARRA NON DEVE PIU' SPARIRE SU IPHONE (05/10/2026). Il titolare, dal suo iPhone SE:
     "su iPhone SE non vedo le icone". Misurato (WebKit, iPhone SE 320x568, il 05/10): le quattro voci con
     la parola erano ALTE 39px, con 30px di ingombro interno (padding 15+15) - restavano NOVE pixel di
     posto per l'icona (20px) e la parola (16px) - e in una colonna flex chi paga e' l'icona: `20x0`,
     cioe' ZERO, con `overflow: hidden` addosso che nasconde anche il pezzo che avanza. Si leggeva la
     parola e non il disegno: esattamente il sintomo riferito. Il "+" invece stava bene, perche'
     `#appNewPostBtn` ha i suoi 50px.
     La causa e' la riga qui sopra, `height: -webkit-fill-available`: WebKit la usa e le risolve a 39px.
     Chrome la legge come "alzati quanto la barra" (72px) e le icone si vedono - per questo sulla
     scrivania il difetto non c'era. Le due letture non si possono conciliare, ma la stessa cosa si puo'
     dire in una lingua che i due motori leggono uguale: `height: 100%`. E l'icona non e' piu'
     comprimibile, cosi' se un domani una voce fosse di nuovo stretta l'icona esce dal disegno invece di
     sparire senza dire niente (e' la stessa lezione di `stories.css`, dove lo stesso `fill-available`
     faceva il riquadro alto quanto il palco).
     Misurato dopo, in tutt'e due i motori: cinque voci da 72px, icone 20x20 ("+" 22x22), nessuna
     sovrapposizione, e Chrome identico a prima. */
  .mood-app-bottombar a,
  .mood-app-bottombar > button {
    height: 100%;
  }
  .mood-app-bottombar a > svg,
  .mood-app-bottombar > button > svg {
    flex: 0 0 auto;
  }
  body {
    padding-bottom: calc(var(--app-nav-h) + env(safe-area-inset-bottom));
  }
}

@media (min-width: 721px) {
  .mood-app-bottombar {
    display: none;
  }
}

body.is-clip-open .mood-app-bottombar {
  display: none !important;
}

/* --------------------------------------------------------------------------
   Il "+" al centro: icona tonda in evidenza che apre il composer
   --------------------------------------------------------------------------
   Richiesta dell'utente (12/09/2026): "mainwin appare cliccando su [l']icon[a] +
   bella, non testo". Da quando su telefono la card del composer non c'e' piu'
   (feed-vivace.css, sezione 9) questa e' la strada per scrivere: prima era un
   collegamento a /feed che non apriva niente.

   E' un cerchio del colore del marchio, alzato di 10px sopra la barra: si stacca
   dagli altri tre (che hanno l'etichetta) e si riconosce come "crea". Non porta
   etichetta apposta. `position: relative` + `top` lo solleva senza cambiare
   l'altezza della barra (58px fissi), quindi il feed sotto non si sposta.
   -------------------------------------------------------------------------- */
.mood-app-bottombar #appNewPostBtn {
  position: relative;
  top: -3px;
  display: grid;
  place-items: center;
  gap: 0;
  /* LARGHEZZA FISSA, NON ELASTICA (04/10/2026). Le altre quattro voci si dividono lo spazio
     (`flex: 1 1 0`), il Â«+Â» no: cosÃ¬ il suo centro cade esattamente al centro dello schermo â€” era
     6px a sinistra â€” e resta un CERCHIO. Se fosse elastico, con `border-radius: 50%` diventerebbe
     un ovale: Ã¨ successo misurandolo, non si vede a occhio. */
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, var(--mood-primary, #6C5CE7), var(--mood-accent, #00D2A0));
  box-shadow: 0 8px 20px rgba(108, 92, 231, 0.38);
  border: 1px dashed #71a8fe;
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}

.mood-app-bottombar #appNewPostBtn svg {
  width: 22px;
  height: 22px;
  stroke-width: 2.5;
}

.mood-app-bottombar #appNewPostBtn:active {
  transform: scale(0.94);
  box-shadow: 0 4px 12px rgba(108, 92, 231, 0.32);
}

@media (prefers-reduced-motion: reduce) {
  .mood-app-bottombar #appNewPostBtn {
    transition: none;
  }
}

/* Ricerca */
.search-bar-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 12px;
  padding: 10px 14px;
  border: 1px solid var(--mood-border, #333);
  border-radius: var(--mood-radius-sm, 10px);
  background: var(--mood-bg, #fff);
}

.search-bar-row svg {
  flex: 0 0 auto;
  color: var(--mood-text-muted, #888);
}

.search-input {
  width: 100%;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--mood-text);
}

.search-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.search-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  margin-bottom: 8px;
  border: 1px solid var(--mood-border, #333);
  border-radius: var(--mood-radius-sm, 10px);
  background: var(--mood-bg, #fff);
  color: var(--mood-text, #333);
  text-decoration: none;
}

.search-item:hover {
  background: var(--mood-bg-hover, #f0f0f5);
}

.search-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  background: var(--mood-bg-hover, #eee);
}

.search-item-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.search-item-meta span {
  color: var(--mood-text-muted, #888);
  font-size: 0.8rem;
}

.search-item-meta p {
  margin: 2px 0 0;
  font-size: 0.85rem;
  color: var(--mood-text, #555);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-hash-icon {
  width: 44px;
  color: var(--mood-primary, #6C5CE7);
  flex: 0 0 auto;
}

.verified-icon {
  color: var(--mood-primary, #6C5CE7);
  width: 14px;
  height: 14px;
  vertical-align: middle;
}

/* Post singolo */
.mood-post-single {
  border: 1px solid var(--mood-border, #333);
  border-radius: var(--mood-radius, 14px);
  background: var(--mood-bg, #fff);
  padding: 16px;
  max-width: 640px;
  margin: 0 auto;
}

.mood-back-btn {
  margin-bottom: 16px;
}

.single-user-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.single-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}

.single-user-meta {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.single-name {
  font-weight: 700;
  color: var(--mood-text);
  text-decoration: none;
}

.single-handle {
  color: var(--mood-text-muted);
  font-size: 0.8rem;
}

.single-time {
  color: var(--mood-text-muted);
  font-size: 0.75rem;
}

.single-media-grid {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.single-media {
  width: 100%;
  border-radius: 10px;
  max-height: 480px;
  object-fit: contain;
  background: #000;
}

.single-embed iframe {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 10px;
  margin-top: 10px;
}

.single-comment-box {
  margin-top: 12px;
}

.comment-form-row {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}

.comment-form-row .mood-input {
  flex: 1;
}

.single-comment-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 8px 0;
  border-bottom: 1px solid var(--mood-border, #333);
}

.single-comment-row img {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
}

.single-comment-user {
  font-weight: 600;
  font-size: 0.8rem;
}

.single-comment-row p {
  margin: 2px 0 0;
  font-size: 0.85rem;
}

.mood-toast {
  position: fixed;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 10px 18px;
  border-radius: 20px;
  font-size: 0.85rem;
  opacity: 0;
  transition: opacity .3s, transform .3s;
  z-index: 2000;
  pointer-events: none;
}

.mood-toast.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Data post nel modale: tempo relativo + link al post singolo */
.post-modal-time-link {
  color: var(--mood-text-muted, #888);
  text-decoration: none;
  font-size: 0.8rem;
}

.post-modal-time-link:hover {
  color: var(--mood-primary, #6C5CE7);
  text-decoration: underline;
}

/* Filtri ricerca */
.search-filters {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 10px
}

.search-sort-select {
  width: auto;
  min-width: 150px;
  padding: 6px 10px;
  border: 1px solid var(--mood-border, #333);
  border-radius: var(--mood-radius-sm, 8px);
  background: var(--mood-bg, #fff);
  color: var(--mood-text, #333)
}

.search-followers-only {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .85rem;
  color: var(--mood-text, #333);
  cursor: pointer
}

.mood-post-options-menu {
  right: 0;
  top: 100%;
  min-width: 220px;
  z-index: 100;
  position: absolute;
}

/* Ultime News Landing */
.preview-news-container {
  display: flex;
  overflow-x: auto;
  gap: 16px;
  padding: 10px 0 20px 0;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.preview-news-container::-webkit-scrollbar {
  height: 6px;
}

.preview-news-container::-webkit-scrollbar-thumb {
  background: var(--mood-border);
  border-radius: 4px;
}

.preview-news-card {
  flex: 0 0 300px;
  scroll-snap-align: start;
  background: var(--mood-bg-card);
  border: 1px solid var(--mood-border);
  border-radius: var(--mood-radius);
  padding: 16px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
}

.preview-news-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.preview-news-card .preview-post-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.preview-news-card .preview-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

.preview-news-card .preview-name {
  font-weight: bold;
  color: var(--mood-text);
  display: flex;
  align-items: center;
  gap: 4px;
}

.preview-news-card .preview-time {
  font-size: 0.8rem;
  color: var(--mood-text-muted);
}

.preview-news-card .preview-post-body {
  font-size: 0.95rem;
  color: var(--mood-text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Mood nav - qui c'era lo stile del pulsante lingua (#langToggle, tolto il 04/10/2026): il
   tasto non esiste piÃ¹, la lingua si sceglie nelle Impostazioni del profilo e, se nessuno
   l'ha scelta, la dice il dispositivo (vedi `assets/js/i18n.js`). Se tornasse in barra,
   la sua riga di stile torna qui â€” Ã¨ l'unico posto dove Ã¨ stata. */


.preview-news-card .preview-name svg {
  width: 14px;
  height: 14px;
  color: var(--mood-primary);
  vertical-align: middle;
}

/* =========== IL MANICO DELLA BARRA (25/09/2026) ============== */
.mood-barra-manico {
  display: none;
}

@media (max-width: 720px) {
  .mood-barra-manico {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(var(--app-nav-h) - 0px);
    z-index: 1001;
    display: grid;
    place-items: center;
    width: 46px;
    height: 22px;
    padding: 0;
    border: 1px solid var(--mood-border);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: var(--mood-bg-card);
    color: var(--mood-text-muted);
    cursor: pointer;
    transition: bottom var(--mood-transition), color var(--mood-transition);
  }

  .mood-barra-manico svg {
    width: 14px;
    height: 14px;
    transition: transform var(--mood-transition);
  }

  .mood-barra-manico:hover {
    color: var(--mood-text);
  }

  .mood-app-bottombar {
    transition: transform var(--mood-transition);
  }

  body.mood-barra-giu .mood-app-bottombar {
    transform: translateY(100%);
    bottom: -11px;
  }

  body.mood-barra-giu .mood-barra-manico {
    bottom: 0px;
  }

  body.mood-barra-giu .mood-barra-manico svg {
    transform: rotate(180deg);
  }

  body.mood-barra-giu {
    --app-nav-h: 0px;
  }

  .mood-barra-manico {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(var(--app-nav-h) - 0px);
    z-index: 1001;
    display: grid;
    place-items: center;
    width: 60px;
    height: 26px;
    padding: 0;
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: var(--mood-bg-card);
    color: var(--mood-text-muted);
    cursor: pointer;
    transition: bottom var(--mood-transition), color var(--mood-transition);
    border: 2px solid rgb(73 73 73 / 64%);
    border-bottom: none;
  }

  .mood-barra-manico svg {
    width: 14px;
    height: 14px;
    transition: transform var(--mood-transition);
  }

  .mood-barra-manico:hover {
    color: var(--mood-text);
  }

  .mood-app-bottombar {
    transition: transform var(--mood-transition);
  }

  /* --- stili applicati SOLO quando la barra Ã¨ abbassata --- */
  body.mood-barra-giu .mood-app-bottombar {
    transform: translateY(100%);
    bottom: -32px;
  }

  body.mood-barra-giu .mood-app-bottombar a,
  body.mood-barra-giu .mood-app-bottombar > button {
    border-radius: 20px 20px 0 0;
    background: #5a5a5a29;
    backdrop-filter: blur(13px);
  }

  body.mood-barra-giu .mood-barra-manico {
    bottom: 0px;
  }

  body.mood-barra-giu .mood-barra-manico svg {
    transform: rotate(180deg);
  }

  body.mood-barra-giu {
    --app-nav-h: 0px;
  }

}

@media (prefers-reduced-motion: reduce) {

  .mood-barra-manico,
  .mood-barra-manico svg,
  .mood-app-bottombar {
    transition: none;
  }
}