/* ============================================================
   Canvas mobile stile Gemini — chat a schermo intero + itinerario
   che si apre a tutto schermo e si richiude in un chip.

   Desktop: tutto invariato (la barra e' display:none). Il chip in chat e'
   stato sostituito il 2026-09-16 dal messaggio "Itinerario e mappa".
   Attivo solo <= 900px, dove lo split-view lab collassa.
   ============================================================ */

/* Elementi mobili nascosti di default (desktop) */
.canvas-mobile-bar { display: none; }
/* L'etichetta testuale del toggle-mappa compare solo su mobile (canvas). */
.toggle-map-label { display: none; }

@media (max-width: 900px) {

  /* La chat occupa tutto lo schermo: niente più split 50/50 verticale. */
  .lab-main { position: relative; }

  .lab-left-panel {
    width: 100%;
    height: 100%;
    min-width: 0;
    border: none;
  }

  /* Il workspace diventa un pannello "canvas" a tutto schermo che scorre
     da destra sopra TUTTO (navbar inclusa), come il canvas di Gemini.
     Fuori schermo di default. */
  .lab-right-workspace {
    position: fixed;
    inset: 0;
    height: auto;
    width: 100%;
    z-index: 1300;             /* sopra la lab-navbar (z-index 1000) */
    background: var(--bg-primary, #fff);
    transform: translateX(100%);
    /* Chiuso = invisibile e senza ombra. Fuori schermo ma visibile, su
       iPhone allargava la pagina (header tagliato a sinistra) e la sua
       ombra era una fascia grigia sul bordo destro. visibility scatta
       DOPO lo scorrimento in chiusura, PRIMA in apertura. */
    visibility: hidden;
    transition: transform 0.34s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s linear 0.34s;
    display: flex;
    flex-direction: column;
    box-shadow: none;
    will-change: transform;
  }

  /* Canvas aperto: scivola in vista. */
  body.canvas-open .lab-right-workspace {
    transform: translateX(0);
    visibility: visible;
    box-shadow: -12px 0 40px rgba(15, 23, 42, 0.12);
    transition: transform 0.34s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s;
  }

  /* Barra superiore del canvas con la freccia indietro (stile Gemini).
     padding-top per il notch di iPhone quando in standalone/fullscreen. */
  .canvas-mobile-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
    min-height: 52px;
    padding: env(safe-area-inset-top, 0px) 8px 0 4px;
    background: var(--surface, #f8fafc);
    border-bottom: 1px solid var(--border-light, #e2e8f0);
  }

  .canvas-back-btn {
    width: 44px;
    height: 44px;
    border: none;
    background: transparent;
    color: var(--text-primary, #1e293b);
    font-size: 1.15rem;
    border-radius: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.18s, transform 0.18s;
  }
  .canvas-back-btn:hover { background: var(--surface-card-hover, #eef2f7); }
  .canvas-back-btn:active { transform: scale(0.9); }

  .canvas-bar-title {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--text-primary, #1e293b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* La card interna del workspace prende tutto lo spazio residuo. */
  .lab-right-workspace .workspace-card {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Blocca lo scroll del body quando il canvas è aperto. */
  body.canvas-open { overflow: hidden; }

  /* ============================================================
     Itinerario "in linea" (verticale) come nella pagina Viaggio.
     Nel workspace la matrice di default è ORIZZONTALE (colonne-giorno
     affiancate = tabella difficile da leggere e da scrollare su
     telefono). Qui la impiliamo in un'unica timeline verticale con
     header-giorno a pillola sticky, identica a .trip-matrix.
     ============================================================ */
  /* Anche la matrice disegnata in diretta mentre il viaggio si genera
     (#workspace-stream-matrix, classe workspace-matrix): senza, sul
     telefono restava orizzontale e larga 3000px (2026-10-18). */
  /* Margini: il contenitore dell'itinerario e' annidato due volte (16px
     ciascuno) dentro un riquadro da 24px: le schede usavano 274px su 390. */
  .lab-right-workspace .result-table-box { padding: 12px; }
  .lab-right-workspace .itinerary-matrix-container { padding: 0; }

  .lab-right-workspace .itinerary-matrix,
  .lab-right-workspace .workspace-matrix {
    flex-direction: column;
    gap: 20px;
    min-width: 0;
  }
  .lab-right-workspace .matrix-day-column {
    width: 100%;
    min-width: 0;
    flex-shrink: 1;
    background: transparent;
    border: none;
    border-radius: 0;
    overflow: visible;            /* per lo sticky dell'header-giorno */
  }
  .lab-right-workspace .matrix-day-header {
    position: sticky;
    top: 4px;
    z-index: 20;
    width: fit-content;
    background: linear-gradient(135deg, var(--primary-sky, #00a8e8), var(--primary-green, #3ddc84));
    color: #fff;
    border-bottom: none;
    border-radius: 999px;
    padding: 9px 16px;
    letter-spacing: .1em;
    box-shadow: 0 6px 18px rgba(0, 168, 232, .3);
  }
  .lab-right-workspace .matrix-day-body {
    padding: 12px 2px 0;
    gap: 12px;
  }
  .lab-right-workspace .matrix-card {
    background: var(--surface-card, #fff);
    border-radius: 14px;
    padding: 12px;
    box-shadow: 0 2px 10px rgba(15, 23, 42, .06);
    cursor: default;              /* niente riordino accidentale su telefono */
  }
  .lab-right-workspace .matrix-card h4  { font-size: 0.95rem; }
  .lab-right-workspace .matrix-desc     { font-size: 0.82rem; -webkit-line-clamp: unset; }
  .lab-right-workspace .matrix-card-img { height: 150px; }

  /* Lo scroller ora è verticale: niente barra orizzontale che faceva
     sembrare l'itinerario un foglio di calcolo. */
  .lab-right-workspace .result-table-box,
  .lab-right-workspace .itinerary-matrix-container { overflow-x: hidden; }

  /* ── Mappa: occupa un filo meno spazio, così l'itinerario respira ── */
  .lab-right-workspace .result-map-box {
    height: 22vh;
    min-height: 140px;
    max-height: 230px;
  }

  /* ── Toggle mappa più evidente: pillola con icona + etichetta ── */
  .lab-right-workspace .table-header-actions .table-action-btn {
    width: auto;
    height: auto;
    padding: 7px 14px;
    gap: 7px;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
  }
  .lab-right-workspace .toggle-map-label { display: inline; }
}

/* ============================================================
   ≤768px: la lab-navbar diventa una "pillola" flottante (19-lab.css)
   che copriva l'header della chat. Qui si compensa lo spazio e si
   compatta la schermata di benvenuto per il telefono.
   ============================================================ */
@media (max-width: 768px) {

  /* Navbar flottante: top 10px + ~58px di altezza → servono ~76px. */
  .lab-main {
    margin-top: 76px;
    height: calc(100vh - 76px);
    height: calc(100dvh - 76px);   /* barra URL mobile che collassa */
  }

  /* Annulla lo split verticale 50/50 di 19-lab.css: la chat è fullscreen. */
  .lab-left-panel {
    height: 100%;
    border-bottom: none;
  }

  /* --- Welcome screen compatta (era pensata per desktop) --- */
  .lab-left-panel .welcome-screen {
    padding: 1.25rem 1rem 1.5rem;
    min-height: 0;
    justify-content: flex-start;
  }
  .lab-left-panel .welcome-header { margin-bottom: 1.25rem; }
  .lab-left-panel .welcome-header .sparkle-icon {
    font-size: 1.7rem;
    margin-bottom: 0.5rem;
  }
  .lab-left-panel .welcome-header h1,
  .lab-left-panel .welcome-header h2 {
    font-size: 1.45rem;
    line-height: 1.25;
    margin-bottom: 2px;
  }
  .lab-left-panel .welcome-header h3,
  .lab-left-panel .welcome-header h2 + h2 {
    font-size: 1rem;
    font-weight: 400;
  }
  .lab-left-panel .suggestions-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.6rem;
    max-width: 100%;
  }
  .lab-left-panel .suggestion-pill {
    padding: 0.7rem 0.65rem;
    border-radius: 12px;
    gap: 8px;
    min-width: 0;
    max-width: none;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
  }
  .lab-left-panel .suggestion-pill .pill-icon {
    width: 34px;
    height: 34px;
    font-size: 1rem;
  }
  .lab-left-panel .suggestion-pill .pill-text { font-size: 0.85rem; }
  .lab-left-panel .suggestion-pill .pill-text span { font-size: 0.72rem; }

  /* ============================================================
     Barra input chat stile Gemini/ChatGPT/Claude.
     Problema: su una sola riga stavano 2 icone + textarea + Salva +
     Condividi + Invia; quando l'itinerario è caricato la riga
     straripava e la textarea si schiacciava a zero (invisibile).
     Soluzione: la TEXTAREA prende una riga tutta sua (sempre visibile
     e comoda da usare); i pulsanti restano TUTTI ma vanno in una
     toolbar compatta sotto — icone di sinistra (suggerimenti / i tuoi
     viaggi) a sx, azioni (Salva, Condividi, Invia) a dx.
     ============================================================ */
  .lab-left-panel .chat-input-area {
    flex-wrap: wrap;
    row-gap: 8px;
    align-items: center;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px));
  }
  /* Riga 1: la textarea, larghezza piena. */
  .lab-left-panel .chat-input-area #user-input {
    order: -1;
    flex: 1 0 100%;
    width: 100%;
  }
  /* Riga 2: icone di sinistra ancorate a sinistra, il resto va a destra. */
  .lab-left-panel .chat-input-area .prompt-guide-container { margin-right: auto; }
  /* Salva/Condividi: manteniamo i pulsanti ma come icone tonde compatte
     (il testo resta nel title/tooltip). Così la toolbar non straripa. */
  .lab-left-panel #save-trip-btn,
  .lab-left-panel #share-trip-btn {
    width: 40px;
    height: 40px;
    padding: 0;
    gap: 0;
    border-radius: 50%;
    justify-content: center;
  }
  .lab-left-panel #save-trip-btn .btn-text,
  .lab-left-panel #share-trip-btn .btn-text { display: none; }
  .lab-left-panel #save-trip-btn .btn-icon,
  .lab-left-panel #share-trip-btn .btn-icon { font-size: 1rem; margin: 0; }
}

/* Schermi molto stretti: barra input e canvas un filo più compatti. */
@media (max-width: 420px) {
  .canvas-bar-title { font-size: 0.98rem; }
}
