/**
 * GameReader-Theme: neutraler Rahmen, die eigentliche Optik kommt aus
 * gamereader_app/css/app.css (.gra).
 */
body {
  margin: 0;
  background: #EAE2D4;
  font-family: 'Nunito', system-ui, sans-serif;
}

.grt-page {
  max-width: 1240px;
  margin: 0 auto;
  padding: 16px;
}

.grt-page .gra {
  min-height: calc(100vh - 34px);
}

/* Player (Einzel-Clip UND Übungs-Session): Navy vollflächig ohne Cremestreifen,
   mit dezentem hellen Deko-Muster (Kreise/Dreiecke/× wie auf der Domain).
   Einheitliche, immersive Struktur für beide. */
body:has(.grp-solo),
body:has(.grp-session) {
  background-color: #202C3A;
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='560'%20height='560'%20viewBox='0%200%20560%20560'%3E%3Cg%20fill='none'%20stroke='%23ffffff'%20stroke-opacity='0.06'%20stroke-width='2.5'%3E%3Ccircle%20cx='84'%20cy='104'%20r='42'/%3E%3Cpath%20d='M430%2070%20l50%2088%20h-100%20z'/%3E%3Cpath%20d='M110%20400%20h48%20M134%20376%20v48'/%3E%3Cpath%20d='M400%20420%20l38%2038%20M438%20420%20l-38%2038'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 300px 300px;
}
.grt-page:has(.grp-solo),
.grt-page:has(.grp-session) {
  max-width: none;
  padding: 0;
}

.grt-messages {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 16px;
}

.grt-messages .messages {
  border-radius: 12px;
  padding: 12px 16px;
  margin: 10px 0 0;
  font-family: 'Nunito', system-ui, sans-serif;
  font-size: 14px;
  background: #fff;
  border: 1px solid rgba(38, 37, 35, .15);
}

.grt-messages .messages--error { border-color: #D8483C; }
.grt-messages .messages--status { border-color: #3B9E63; }
