// ==========================================================================
// Style "fiche de jeu" — mode consultation (lecture seule).
// ==========================================================================
// Responsabilité : afficher une entité (Page, Arc, Chapter, Scene) sous forme
// d'une belle fiche où chaque champ est un bloc titré, visible d'un bloc,
// SANS scrollbar interne — le contenu texte s'étend verticalement selon sa
// taille réelle grâce à `white-space: pre-wrap` sur un élément natif
// (pas de textarea). L'utilisateur fait défiler la page avec la molette.
//
// Utilisé par : page-view, arc-view, chapter-view, scene-view.
// Principe DRY : les 4 composants partagent ces sélecteurs globaux.

.view-page {
  padding: 2rem 3rem;
  max-width: 1000px;

  // En-tête : titre + sous-titre + boutons d'action (Modifier, Supprimer...)
  // Sticky pour que les actions restent accessibles sur les longues fiches.
  .view-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #0a0a14;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #1f2937;

    h1 {
      font-size: 1.8rem;
      font-weight: 700;
      color: white;
      margin: 0 0 0.3rem;
      line-height: 1.2;
      display: flex;
      align-items: center;
      gap: 0.6rem;

      // Pastille violette autour de l'icone. <lucide-icon> est inline par
      // defaut : sans inline-flex le SVG se cale en haut-gauche de la boite
      // au lieu d'etre centre. On fixe aussi la taille pour que la pastille
      // soit toujours carree quelle que soit l'icone.
      .title-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        color: #a5b4fc;
        background: #1e1b4b;
        border: 1px solid #4338ca;
        border-radius: 8px;
        flex-shrink: 0;
      }
    }
    .view-subtitle {
      color: #9ca3af;
      font-size: 0.85rem;
      margin: 0;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }

    .view-actions {
      display: flex;
      gap: 0.6rem;
      flex-shrink: 0;
    }
  }

  // Bloc de contenu : une section = un champ (titre + corps)
  .view-section {
    padding: 1.25rem 0;
    border-top: 1px solid #1e1e3a;

    &:first-of-type {
      border-top: none;
      padding-top: 0;
    }

    .view-section-title {
      font-size: 0.72rem;
      font-weight: 600;
      color: #a5b4fc;             // violet discret, cohérent avec .btn-ai
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin: 0 0 0.6rem;
      display: flex;
      align-items: center;
      gap: 0.5rem;

      .view-section-icon {
        font-size: 0.9rem;
      }
    }

    // Corps texte — c'est ici que la magie "pas de scrollbar" opère :
    // `white-space: pre-wrap` conserve les sauts de ligne du textarea d'origine
    // et le texte se hauteur-adapte naturellement (element = bloc HTML classique).
    .view-section-body {
      color: #e0e0e0;
      font-size: 0.95rem;
      line-height: 1.6;
      white-space: pre-wrap;
      word-wrap: break-word;
      margin: 0;
    }

    // État vide : champ non renseigné, on l'indique discrètement.
    .view-section-empty {
      color: #4b5563;
      font-style: italic;
      font-size: 0.88rem;
      margin: 0;
    }
  }

  // Variante "privé MJ" — fond rouge discret pour les notes secrètes
  // (gmNotes, gmSecretNotes). Cohérent avec expandable-section variant="private".
  .view-section--private {
    background: rgba(127, 29, 29, 0.08);
    border-left: 3px solid #7f1d1d;
    padding-left: 1rem;
    margin-left: -1rem;
    border-radius: 0 4px 4px 0;

    .view-section-title { color: #fca5a5; }
  }

  // Affichage 2 colonnes pour des champs courts côte-à-côte (location/timing...).
  .view-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;

    .view-section {
      border-top: none;
      padding-top: 0;
    }
  }

  // Chips (tags et pages liées en lecture seule)
  .view-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;

    .view-chip {
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      padding: 0.3rem 0.7rem;
      background: #1a1a2e;
      border: 1px solid #2a2a3d;
      border-radius: 999px;
      color: #d1d5db;
      font-size: 0.82rem;
      text-decoration: none;
      transition: border-color 0.15s, color 0.15s;

      &[href]:hover {
        border-color: #6c63ff;
        color: white;
      }
    }

    .view-chip--tag {
      background: #1e1b4b;
      border-color: #312e81;
      color: #c4b5fd;
    }
  }
}
