/* Handy-Anpassungen fürs Kundenportal.
 *
 * Das Portal ist mit max-width 640px schon schmal gebaut, bricht auf 375px aber
 * an drei Stellen: dem 2rem-Rand, den fest zweispaltigen Rastern (Übersetzungen,
 * Statistik) und Eingabefeldern unter 16px.
 *
 * Nur Überschreibungen, alles in Media Queries — am Desktop wirkungslos.
 */

@media (max-width: 720px) {

  .nav { padding: 0 0.9rem; height: 54px; gap: 0.4rem; }
  .nav-right { gap: 0.45rem; }
  .nav-user { max-width: 8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

  /* 2rem links und rechts kosten auf 375px ein Achtel der Bildschirmbreite */
  .main { padding: 1.3rem 0.9rem 4rem; }
  .footer { padding: 1.5rem 0.9rem; }
  .footer-links { gap: 0.9rem; }

  .page-title { font-size: 1.55rem; }

  /* Fingerfreundlich: Apple empfiehlt 44px, die Desktop-Knöpfe liegen darunter */
  .btn-ghost, .bill-btn, button { min-height: 40px; }

  /* ⚠️ iOS zoomt beim Antippen in Textfelder unter 16px hinein und kehrt nicht
     zur Ausgangsbreite zurück. Auswahlfelder bewusst ausgenommen — die öffnen
     einen nativen Dialog und würden durch 16px nur breiter. */
  input, textarea { font-size: 16px !important; }

  img, table, pre { max-width: 100%; }

  /* Übersetzungs-Editor: Quelltext und Übersetzung nebeneinander ist auf 375px
     zweimal ~170px — untereinander deutlich lesbarer. */
  .i18n-row { grid-template-columns: 1fr; gap: 0.3rem; padding: 0.5rem 0; }

  /* Zweispaltige Blöcke, die per style-Attribut im HTML stehen. Attributselektor
     plus !important ist der einzige Weg, ohne die Inline-Styles anzufassen. */
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* Abo-Kachel: Knöpfe untereinander statt nebeneinander */
  .bill-btn { width: 100%; margin-left: 0 !important; }
  .bill-btn + .bill-btn { margin-top: 0.5rem; }
  .bill-head { flex-direction: row; align-items: center; }

  /* Tour-Kacheln und Einbettungscode */
  .tour-link { padding: 0.9rem 1rem; }
  .embed-code, pre { overflow-x: auto; }
}

/* ── Hinweis "Zum Home-Bildschirm" (a2hs.js) ──────────────────────────────
   Bewusst AUSSERHALB der Media Query: der Hinweis erscheint nur auf iOS und
   Android, das entscheidet das Skript. In einer max-width-Regel wäre er auf
   einem quer gehaltenen Tablet unsichtbar. */
#a2hs {
  position: fixed;
  left: 0.75rem; right: 0.75rem;
  /* Der Hell-/Dunkel-Umschalter aus theme.css klebt fix unten rechts (44px hoch,
     20px Abstand) und läge sonst auf dem Installieren-Knopf. Der Hinweis rückt
     deshalb darüber. Bewusst unbedingt statt über body:has(#a2hs) den Umschalter
     zu verschieben — das hängt an :has()-Unterstützung und daran, dass die
     Neuberechnung greift; hier ist die Position schlicht immer richtig. */
  bottom: calc(0.75rem + 64px + env(safe-area-inset-bottom, 0px));
  z-index: 1000;
  /* Umbruch, damit der Installieren-Knopf auf eine eigene Zeile rutscht: neben
     dem Text bliebe auf 375px nur eine schmale Spalte übrig und der Hinweis
     würde sich über sechs Zeilen quetschen. */
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.75rem;
  background: #141414;
  border: 1px solid rgba(201,168,76,.35);
  border-radius: 14px;
  padding: 0.8rem 0.9rem;
  box-shadow: 0 12px 32px rgba(0,0,0,.55);
  transform: translateY(140%);
  opacity: 0;
  transition: transform .28s cubic-bezier(.22,1,.36,1), opacity .28s ease;
}
#a2hs.a2hs-an { transform: translateY(0); opacity: 1; }
#a2hs img { border-radius: 9px; flex-shrink: 0; order: 1; }
/* Basis 0 statt auto: der Text nimmt den Restplatz der ersten Zeile ein, statt
   sich seine natürliche Breite zu nehmen und dabei Symbol und ✕ auf eigene
   Zeilen zu drängen. */
#a2hs .a2hs-text { flex: 1 1 0; min-width: 0; order: 2; display: flex; flex-direction: column; gap: 0.15rem; }
#a2hs strong { font-size: 0.84rem; font-weight: 500; color: var(--gold, #c9a84c); }
#a2hs span  { font-size: 0.74rem; line-height: 1.45; color: #b8b8b8; }
#a2hs #a2hs-install {
  order: 4; flex: 1 1 100%;   /* volle Breite -> eigene Zeile unter dem Text */
  min-height: 40px;
  background: linear-gradient(135deg, #c9a84c 0%, #a8873a 100%);
  color: #0a0a0a; border: none; border-radius: 8px;
  font-family: inherit; font-size: 0.72rem; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 0 0.9rem; cursor: pointer;
}
#a2hs #a2hs-close {
  order: 3; flex-shrink: 0; align-self: flex-start;
  background: none; border: none; color: #666;
  font-size: 0.95rem; line-height: 1; cursor: pointer;
  padding: 0.25rem; min-height: 0;
}
#a2hs #a2hs-close:hover { color: #f0f0f0; }

@media (prefers-reduced-motion: reduce) {
  #a2hs { transition: none; }
}


/* ── Als App vom Home-Bildschirm gestartet ────────────────────────────────
   Dann fehlt die Safari-Leiste; ohne safe-area läuft der Inhalt in die
   Statusleiste und hinter den Home-Indikator. */
@supports (padding: env(safe-area-inset-top)) {
  @media (display-mode: standalone) {
    .nav  { padding-top: env(safe-area-inset-top); height: calc(54px + env(safe-area-inset-top)); }
    .main { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); }
  }
}
