/*
 * Gemeinsame Gestaltung der Gigangebot-Ansichten.
 *
 * Beide Rollen sehen denselben Vorgang: Musiker auf gig-offer-artists.html,
 * Veranstaltende auf gig-offer-organizer.html. Deshalb liegen Preis-Kette,
 * Eckdaten-Raster, Fristbalken, Verlauf und die Hinweiskästen hier einmal,
 * mit dem Präfix .go-. Was nur die Veranstalter-Seite braucht (Kopfkarte,
 * Zählleiste, Karten je Angefragtem, Entscheidungsknöpfe), steht im zweiten
 * Teil der Datei.
 *
 * Badges kommen aus status-badge.css, Antwort-Knöpfe der Musiker aus
 * modal.css (.popup-button), Tags aus tag-pills.css.
 */

/* ==========================================================================
   1. Gemeinsame Bausteine
   ========================================================================== */

.go-kind {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #815da7;
  margin-bottom: 8px;
}

.go-title {
  font-size: 30px;
  font-weight: 800;
  color: #e38722;
  line-height: 1.2;
  margin-bottom: 6px;
}

.go-title-dates {
  font-size: 16px;
  font-weight: 700;
  color: #815da7;
  margin: -2px 0 8px;
}

.go-sub {
  font-size: 14px;
  color: #6b7280;
  margin-bottom: 20px;
}

.go-section-title {
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin: 26px 0 14px;
}

/* --- Statuszeile: was gerade gilt, in einem Satz ------------------------- */

/* Steht bewusst ganz oben und auch dann, wenn noch geantwortet werden kann.
   Vorher blieb der Zustand in genau dem Moment leer, in dem er am meisten
   zählt. */
.go-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  padding: 14px 16px;
  margin-bottom: 16px;
  border-radius: 12px;
  background: #f9f7fb;
  border: 1px solid #eee6f5;
}
.go-status-text {
  flex: 1 1 220px;
  min-width: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #4b5563;
}
.go-status-title {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  margin-bottom: 2px;
}

.go-decline-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
}
.go-decline-chip {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1.5px solid #d9d0e3;
  background: #fff;
  color: #444;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
  font-family: inherit;
}
.go-decline-chip.is-on {
  border-color: #815da7;
  background: #f6f1fa;
  color: #5c3d82;
}
.go-public-decline {
  margin-top: 8px;
}
.go-public-decline-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 999px;
  border: 1.5px solid #815da7;
  background: #f6f1fa;
  color: #5c3d82;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
}
.go-status .go-public-decline {
  flex: 1 1 100%;
  margin-top: 2px;
}
.go-dm-error {
  display: none;
  margin: 0 0 12px;
  font-size: 13px;
  color: #b42318;
}
.go-dm-error.is-on { display: block; }

/* --- Preis-Kette --------------------------------------------------------- */

/* Der Kern der Ansicht: welcher Betrag gerade auf dem Tisch liegt und wie er
   dorthin kam. Der geltende Schritt hebt sich über Größe, Fettung und
   Beschriftung ab, nicht nur über die Farbe. */
.go-price {
  border: 1px solid #f0e2cf;
  border-radius: 14px;
  background: linear-gradient(135deg, #fffaf4, #fdf1e4);
  padding: 14px 16px 16px;
  margin-bottom: 18px;
}
.go-price-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.go-price-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #a35c14;
}
.go-price-title svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}
.go-price-rounds {
  font-size: 11px;
  font-weight: 600;
  color: #8a6a45;
  white-space: nowrap;
}

/* Die geltende Zahl: groß, fett, oben. Trägt den Rang allein über Größe und
   Fettung, nicht nur über die Farbe. */
.go-price-current {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.go-price-current-v {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  color: #e38722;
}
.go-price-current-k {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #a35c14;
}

/* Die früheren Runden: klein, durchgestrichen, Geschichte statt Angebot. */
.go-price-history {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #eddcc4;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.go-price-history-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.go-price-history-v {
  font-size: 14px;
  font-weight: 600;
  color: #ab9075;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.go-price-history-k {
  font-size: 12px;
  font-weight: 500;
  color: #ab9075;
}

.go-price-lead {
  margin: 12px 0 0;
  font-size: 14px;
  font-weight: 600;
  color: #7a5c38;
  line-height: 1.5;
}
.go-price-note {
  margin: 6px 0 0;
  font-size: 12px;
  color: #8a6a45;
  line-height: 1.45;
}
.go-price .direct-offer-extra-badges { margin-top: 12px; }

/* --- Termin-Zeile -------------------------------------------------------- */

/* Nach der Gage die zweitwichtigste Angabe. Im dichten Raster ginge der Abend
   zwischen Anlass und Besetzung unter, deshalb steht er einmal groß darüber. */
.go-when {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  margin-bottom: 4px;
  border-radius: 12px;
  background: #f8f5fc;
  border: 1px solid #eee6f5;
}
.go-when svg {
  width: 20px;
  height: 20px;
  stroke: #815da7;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
  margin-top: 1px;
}
.go-when-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.go-when-v {
  font-size: 16px;
  font-weight: 700;
  color: #4a3563;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.go-when-k {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6a4a8c;
  order: -1;
}
.go-when-time { font-size: 14px; color: #5c3f7d; }

.go-budget {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 4px;
  border-radius: 12px;
  background: #fff6ec;
  border: 1px solid #f3d5b0;
}
.go-budget svg {
  width: 20px;
  height: 20px;
  stroke: #e38722;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}
.go-budget-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.go-budget-k {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #c56e14;
}
.go-budget-v {
  font-size: 18px;
  font-weight: 800;
  color: #e38722;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

/* --- Eckdaten-Raster ----------------------------------------------------- */

.go-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 22px;
}
/* Steht eine Angabe allein in der letzten Zeile, nimmt sie die volle Breite. */
.go-facts > .go-fact:last-child:nth-child(odd) { grid-column: 1 / -1; }
/* Ebenso, wenn eine einzelne Angabe zwischen Badge-Zeilen (volle Breite) steht
   oder ganz am Anfang direkt vor einer solchen: sie steht dann allein in ihrer Zeile. */
.go-facts > .go-fact:not(.go-fact--wide):first-child:has(+ .go-fact--wide),
.go-facts > .go-fact--wide + .go-fact:not(.go-fact--wide):has(+ .go-fact--wide),
.go-facts > .go-fact--wide + .go-fact:not(.go-fact--wide):last-child { grid-column: 1 / -1; }
.go-fact {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 0;
  border-top: 1px solid #f0f0f0;
  font-size: 14px;
  min-width: 0;
}
.go-fact svg {
  width: 17px;
  height: 17px;
  stroke: #815da7;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}
/* #9a9a9a auf Weiß sind 2,9:1 und fallen unter WCAG durch. */
.go-fact-k { color: #6b7280; flex-shrink: 0; }
.go-fact-v {
  color: #2a2a2a;
  font-weight: 600;
  margin-left: auto;
  text-align: right;
  overflow-wrap: anywhere;
}

/* --- Fristbalken --------------------------------------------------------- */

.go-deadline {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #f6f1fa;
  border: 1px solid #e6dcf1;
  color: #5c3f7d;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
}
.go-deadline-copy {
  display: flex;
  align-items: center;
  gap: 10px;
}
.go-deadline svg {
  width: 16px;
  height: 16px;
  stroke: #815da7;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}
.go-deadline-track {
  height: 6px;
  border-radius: 999px;
  background: #eadff3;
  overflow: hidden;
}
.go-deadline-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #815da7;
}
.go-deadline--urgent {
  background: #fdf3e8;
  border-color: #f0d9bd;
  color: #a35c14;
}
.go-deadline--urgent svg { stroke: #e38722; }
.go-deadline--urgent .go-deadline-track { background: #f0d9bd; }
.go-deadline--urgent .go-deadline-fill { background: #e38722; }

.go-deadline-mini {
  display: block;
  width: 56px;
  height: 4px;
  border-radius: 999px;
  background: #eadff3;
  overflow: hidden;
}
.go-deadline-mini-fill {
  display: block;
  height: 100%;
  background: #815da7;
  border-radius: inherit;
}
.go-deadline-mini--urgent { background: #f0d9bd; }
.go-deadline-mini--urgent .go-deadline-mini-fill { background: #e38722; }

/* --- Terminkacheln ------------------------------------------------------- */

.go-deal { margin-bottom: 16px; }
.go-deal .go-price { margin-bottom: 0; }
.go-deal-dates { margin-top: 14px; }
.go-deal-foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 16px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.go-deal-foot .go-deal-dates {
  margin-top: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.go-deal-foot .go-btn--withdraw {
  flex-shrink: 0;
  margin-left: auto;
  align-self: flex-end;
}
.go-deal-foot--action-only {
  justify-content: flex-end;
}
.go-deal-dates-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #815da7;
  margin-bottom: 8px;
}
.go-date-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.go-date-tile {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-height: 44px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 2px solid #eadff3;
  background: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #333;
  line-height: 1.3;
  cursor: default;
}
.go-date-tiles--pick .go-date-tile { cursor: pointer; }
.go-date-tile.is-selected {
  border-color: #e38722;
  background: #fdf3e8;
  color: #c56a12;
}
.go-date-tile.is-confirmed {
  border-color: #815da7;
  background: #f6f1fa;
  color: #5c3f7d;
}
/* Termin, der als konkretes Angebot/Gegenangebot auf dem Tisch liegt, aber
   noch nicht bestaetigt ist: derselbe Ton wie is-selected, aber mit
   staerkerer Kontur, damit er sich klar von einer blossen Verfuegbarkeits-
   Markierung abhebt. */
.go-date-tile.is-pinned {
  border-width: 3px;
  font-weight: 700;
}
/* Neuer, bisher nicht angebotener Termin: deutlich abgesetzt vom Rest. */
.go-deal-newdate {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 6px 0 12px;
  padding: 10px 14px;
  border: 2px solid #e38722;
  border-radius: 10px;
  background: #fff6ea;
}
.go-deal-newdate-k {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #c56a12;
}
.go-deal-newdate-v {
  font-size: 16px;
  font-weight: 500;
  color: #2a2a2a;
}
.go-date-tile-sub {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.75;
}
/* Termin, an dem das Musikprofil nachweislich nicht kann: sichtbar, aber
   erkennbar ausgegraut und nicht anwaehlbar. */
.go-date-tile.is-unavailable {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}
/* Groesseres Format fuer die zusammengefasste Terminauswahl beim Bestaetigen
   (ersetzt dort die getrennte Termine-Faktenzeile + Auswahl-Kacheln). Hoehere
   Spezifitaet als .go-acc-body .go-date-tile, damit die dortige Verkleinerung
   nicht gewinnt. */
.go-acc-body .go-date-tiles--lg .go-date-tile {
  min-height: 52px;
  padding: 14px 18px;
  border-radius: 14px;
  font-size: 15px;
}
.go-date-tile input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* --- Tags ---------------------------------------------------------------- */

.go-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

/* --- Fact-Tag-Badges (Rolle der Musik, Dazu, Veranstaltungstyp) ---------- */

.go-fact--wide {
  grid-column: 1 / -1;
  align-items: flex-start;
  padding-top: 14px;
  padding-bottom: 10px;
  margin-top: 4px;
  border-top: 1px solid #eaeaea;
}
/* Unmittelbar aufeinander folgende Badge-Zeilen: kein doppelter Border */
.go-fact--wide + .go-fact--wide {
  margin-top: 0;
  border-top: none;
  padding-top: 4px;
}
.go-fact-v--badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  justify-content: flex-end;
  margin-left: auto;
  min-width: 0;
}
.go-fact-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  background: #f0ebf8;
  color: #5b3d8a;
  border: 1px solid #e2d5f3;
  white-space: nowrap;
}
.go-fact--extras .go-fact-tag,
.go-fact-tag--extra {
  background: #fff4e6;
  color: #a35c14;
  border-color: #ffe0b2;
}
.go-fact-tag--extra {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.go-fact-tag--extra svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  stroke: currentColor;
}
.go-fact--venue .go-fact-tag {
  background: #f5f0fa;
  color: #5b3d8a;
  border-color: #ddd0f0;
}

.go-fact--genres .genre-tag {
  padding: 3px 9px;
  font-size: 11px;
  font-weight: 600;
  box-shadow: none;
  margin: 0;
  background: #815da7;
  color: #fff;
}
.go-fact--genres .genre-tag:hover { transform: none; }

/* --- Verlauf ------------------------------------------------------------- */

/* Kontext, kein Blickfang: eingeklappt, damit klar bleibt, was gilt und was
   nur Geschichte ist. */
.go-trail {
  margin-top: 16px;
  padding: 0 16px 6px;
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 12px;
}
.go-trail-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 12px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 12px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.go-trail-toggle:hover { color: #4b5563; }
.go-trail-toggle svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.go-trail-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.go-trail-body[hidden] { display: none; }
.go-trail-body { padding-bottom: 8px; }

.go-trail-section { padding: 10px 0 2px; border-top: 1px solid #ececec; }
.go-trail-section:first-child { border-top: none; padding-top: 2px; }
.go-trail-section h4 {
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
  margin-bottom: 6px;
}
.go-trail-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  border-bottom: 1px solid #f2f2f2;
  font-size: 14px;
}
.go-trail-row:last-child { border-bottom: none; }
.go-trail-row span { color: #6b7280; }
.go-trail-row strong { color: #333; font-weight: 600; text-align: right; }
.go-trail-was {
  font-weight: 400;
  color: #8a6a45;
  font-size: 13px;
  text-decoration: line-through;
}
.go-trail-note {
  margin: 8px 0 0;
  font-size: 14px;
  color: #4b5563;
  line-height: 1.6;
  white-space: pre-line;
}

/* --- Hinweiskästen ------------------------------------------------------- */

.go-box {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 12px;
  text-align: left;
}
.go-box h4 { margin: 0 0 6px; font-size: 15px; }
.go-box p { margin: 0 0 10px; font-size: 13px; color: #555; line-height: 1.55; }
.go-box p:last-child { margin-bottom: 0; }

.go-box--contact { background: #f6f1fa; border-left: 4px solid #815da7; }
.go-box--contact h4 { color: #815da7; }
.go-box--meet { background: #fdf3e8; border-left: 4px solid #e38722; }
.go-box--meet h4 { color: #a35c14; }
.go-box--aftercare { background: #f6f1fa; border-left: 4px solid #815da7; }
.go-box--aftercare h4 { color: #815da7; }

.go-contact-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 6px 0;
  font-size: 15px;
  border-bottom: 1px solid rgba(129, 93, 167, 0.15);
}
.go-contact-row:last-child { border-bottom: none; }
.go-contact-row span { min-width: 120px; color: #6b7280; }
.go-contact-row a { color: #815da7; font-weight: 600; }
.go-contact-row strong { color: #333; }

.go-error {
  display: none;
  color: #c62828;
  font-size: 13px;
  margin-top: 12px;
  line-height: 1.5;
}

/* ==========================================================================
   2. Veranstalter-Seite (gig-offer-organizer.html)
   ========================================================================== */

/* --- Accordion: aufklappbare Anfragen-Zeilen ----------------------------- */

.go-acc-item {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.go-acc-item--decide {
  border-color: #e6c79c;
  box-shadow: 0 4px 16px rgba(227, 135, 34, 0.12);
}

.go-suggest-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
}
.go-suggest-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.go-suggest-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.go-suggest-actions .go-btn {
  flex: 1 1 auto;
  min-width: 0;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.go-suggest-actions .go-btn.is-disabled,
.go-suggest-actions .go-btn:disabled {
  opacity: 0.55;
  cursor: default;
}
.go-suggest-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
  text-decoration: none;
  color: inherit;
}
.go-suggest-identity .go-acc-name {
  color: #815da7;
}
.go-suggest-identity:hover .go-acc-name,
.go-suggest-identity:focus-visible .go-acc-name {
  text-decoration: underline;
}
.go-suggest-item .go-avatar,
.go-suggest-item .go-avatar--sm {
  border-radius: 10px;
}
.go-suggest-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}
.go-suggest-toolbar .go-btn {
  text-decoration: none;
}
.go-btn--danger {
  background: #fff;
  border-color: #fecaca;
  color: #dc2626;
}
.go-btn--danger:hover:not(:disabled) {
  background: #fef2f2;
  border-color: #fca5a5;
  color: #b91c1c;
}

.go-acc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 14px;
  min-height: 48px;
  background: none;
  border: none;
  font-family: 'Montserrat', Arial, sans-serif;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease;
}
.go-acc-row:hover { background: #fafafa; }
.go-acc-row[aria-expanded="true"] {
  background: #fafafa;
  border-bottom: 1px solid #f0f0f0;
}
.go-acc-info {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
}
.go-acc-name-mask {
  display: block;
  overflow: hidden;
  white-space: nowrap;
}
.go-acc-name {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  display: inline-block;
  white-space: nowrap;
}
.go-acc-name.is-marquee {
  animation: goAccNameScroll 7s ease-in-out infinite;
}
@keyframes goAccNameScroll {
  0%, 12%  { transform: translateX(0); }
  50%, 62% { transform: translateX(var(--go-name-scroll, 0)); }
  100%     { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .go-acc-name.is-marquee { animation: none; }
}
.go-acc-meta { font-size: 12px; color: #6b7280; }
.go-acc-fee {
  font-size: 14px;
  font-weight: 700;
  color: #e38722;
  white-space: nowrap;
  flex-shrink: 0;
}
.go-acc-deadline {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  font-size: 12px;
  color: #6b7280;
  white-space: nowrap;
  flex-shrink: 0;
}
.go-acc-details-label {
  font-size: 11px;
  font-weight: 600;
  color: #9ca3af;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.go-acc-row[aria-expanded="true"] .go-acc-details-label { color: #815da7; }

.go-acc-chevron {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.go-acc-chevron svg {
  width: 16px;
  height: 16px;
  stroke: #9ca3af;
  stroke-width: 2;
  fill: none;
  transition: transform 0.2s ease;
}
.go-acc-row[aria-expanded="true"] .go-acc-chevron svg { transform: rotate(180deg); }

.go-avatar--sm {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  background: #ece7f2;
  flex-shrink: 0;
}
/* go-avatar--empty gilt für beide Größen */
.go-avatar--sm.go-avatar--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: #815da7;
}

.go-acc-body[hidden] { display: none; }
.go-acc-body { padding: 10px 14px 12px; }

/* Kompaktere Aufklapp-Inhalte: der Body war unnötig in die Höhe gewachsen.
   Nur hier gedrängt, die geteilten Bausteine auf gig-offer-artists.html bleiben
   großzügig. */
.go-acc-body .go-public-decline { margin: 0 0 8px; }
.go-acc-body .go-deadline { margin-bottom: 8px; padding: 6px 10px; gap: 4px; font-size: 12px; }
.go-acc-body .go-deadline-track { height: 4px; }
.go-acc-body .go-deal { margin-bottom: 8px; }
.go-acc-body .go-price { padding: 8px 12px 9px; border-radius: 12px; }
.go-acc-body .go-price-head { margin-bottom: 6px; }
.go-acc-body .go-price-current-v { font-size: 22px; }
.go-acc-body .go-price-lead { margin-top: 4px; font-size: 12px; line-height: 1.4; }
.go-acc-body .go-price-note { margin-top: 3px; }
.go-acc-body .go-deal-dates { margin-top: 0; }
.go-acc-body .go-deal-dates-title { margin-bottom: 4px; }
.go-acc-body .go-date-tile { min-height: 34px; padding: 6px 10px; border-radius: 10px; }
.go-acc-body .go-deal-foot { margin-top: 6px; }
.go-acc-body .go-actions { margin-top: 8px; gap: 8px; }
.go-acc-body .go-btn { min-height: 38px; padding: 8px 18px; }

/* Entscheidungsknoepfe wie auf der Musikerseite: Gegenangebot (violett gefuellt)
   und Ablehnen (nur umrandet) nebeneinander, darunter gross und breit die
   Hauptaktion. */
.go-acc-body .go-actions {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #eee;
  gap: 10px;
}
.go-acc-body .go-actions .go-btn {
  flex: 1 1 140px;
  min-height: 48px;
  border-radius: 24px;
  padding: 0 20px;
}
.go-acc-body .go-actions [data-go-action="counter-open"] {
  order: 1;
  background: #815da7;
  border-color: #815da7;
  color: #fff;
}
.go-acc-body .go-actions [data-go-action="counter-open"]:hover:not(:disabled) {
  background: #6f4d96;
}
.go-acc-body .go-actions [data-go-action="decline"] {
  order: 2;
  background: #fff;
  border-color: #d92d20;
  color: #d92d20;
}
.go-acc-body .go-actions [data-go-action="decline"]:hover:not(:disabled) {
  background: #fdf1f0;
  border-color: #d92d20;
  color: #d92d20;
}
.go-acc-body .go-actions [data-go-action="confirm"] {
  order: 3;
  flex: 1 1 100%;
  min-height: 56px;
  font-size: 17px;
}
.go-acc-body .go-btn--withdraw { font-size: 13px; padding: 8px 14px; }

/* Abstand zwischen Accordion-Items */
#goList { gap: 10px; }

/* Gemeinsame Eckdaten-Karte: etwas Abstand nach oben */
#goFacts { margin-top: 18px; }

/* --- Decline-Bestätigungs-Modal -----------------------------------------*/

.go-dm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1200;
  padding: 20px;
  transition: background 0.2s ease;
}
.go-dm-overlay--open { background: rgba(0, 0, 0, 0.45); }

.go-dm {
  background: #fff;
  border-radius: 18px;
  padding: 28px 28px 24px;
  max-width: 440px;
  width: 100%;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
  transform: translateY(12px);
  opacity: 0;
  transition: transform 0.22s ease, opacity 0.22s ease;
}
/* Gegenangebot-Formular: breiter und scrollbar, falls das Display kurz ist. */
.go-dm--form {
  max-width: 520px;
  max-height: 92vh;
  overflow-y: auto;
}
.go-dm--form .go-consent { margin-top: 4px; }
/* Felder untereinander statt zwei ungleich hohe Spalten: Datum (Kacheln oder
   Datumsfeld), Gage und Begruendung haben alle die volle Breite. */
.go-dm--form .go-field-row { flex-direction: column; gap: 0; }
.go-dm--form .go-field { margin-bottom: 14px; }
.go-dm--form .go-field > label { margin-bottom: 6px; }
.go-dm--form .go-date-tiles { margin-bottom: 4px; }
.go-dm--form input[type="number"],
.go-dm--form input[type="date"] { width: 100%; box-sizing: border-box; }
.go-dm--form .go-link-btn { display: inline-block; margin-top: 6px; }
.go-dm--form .go-link-btn[hidden],
.go-dm--form [data-go-counter-date-custom][hidden] { display: none; }
.go-dm--form .go-dm-title { margin-bottom: 4px; }
.go-dm--form .go-panel-hint { margin-bottom: 16px; }

.go-dm-overlay--open .go-dm {
  transform: translateY(0);
  opacity: 1;
}

.go-dm-title {
  font-size: 18px;
  font-weight: 800;
  color: #333;
  margin: 0 0 10px;
}
.go-dm-text {
  font-size: 14px;
  color: #555;
  line-height: 1.6;
  margin: 0 0 12px;
}
.go-dm-list {
  margin: 0 0 14px 18px;
  padding: 0;
  font-size: 14px;
  color: #4b5563;
  line-height: 1.7;
}

.go-dm-hint {
  background: #f0ebf8;
  border-left: 3px solid #815da7;
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 20px;
}
.go-dm-hint p {
  margin: 0;
  font-size: 13px;
  color: #5b3d8a;
  line-height: 1.6;
}

.go-dm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.go-dm-actions .go-btn { flex-shrink: 0; }

/* Konfetti-Popup nach dem Bestaetigen. Eigene, schlanke Kopie der
   Konfetti-Regeln aus css/wizard-success.css (dort auf #successPopup
   verengt): das Keyframe selbst kommt weiterhin von dort. */
.go-dm--success { position: relative; overflow: visible; text-align: center; }
.go-dm--success .confetti-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: visible;
}
.go-dm--success .confetti-layer .confetti-piece {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 1px;
  background: var(--confetti-color);
  transform: translate(-50%, -50%);
  animation: confettiBurstRef ease-out forwards;
}
.go-dm--success .go-dm-title,
.go-dm--success .go-dm-text { position: relative; z-index: 1; }

@media (max-width: 480px) {
  .go-dm { padding: 22px 18px 20px; }
  .go-dm-actions { flex-direction: column-reverse; }
  .go-dm-actions .go-btn { width: 100%; }
}

.go-page {
  background: #fff;
  border-radius: 20px;
  padding: 32px 40px 40px;
  margin: 100px auto 40px;
  width: 90%;
  max-width: 920px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  flex: 1;
}

/* Eingebettet in eine bestehende Karte (start-live-event .container). */
.go-page.go-page--embedded {
  margin: 0;
  width: 100%;
  max-width: none;
  box-shadow: none;
  padding: 0;
  background: transparent;
  border-radius: 0;
}

/*
 * Vorschlagskarten auf der Ausschreibungsseite (tender-wizard-organizer.js):
 * dieselbe .sug-card-Gestaltung wie im Dashboard-Footer, aber ohne dessen
 * Platznot dort. Deshalb hier immer umbrechen statt wie im Dashboard ab vier
 * Profilen auf das Rotator-Karussell auszuweichen.
 */
.go-page.go-page--embedded .organizer-tender-suggests {
  border-top: none;
  padding-top: 0;
}

.go-page.go-page--embedded .organizer-tender-suggests .suggestions-container {
  flex-wrap: wrap;
}

.go-topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
}
.go-topbar-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.go-topbar-actions .action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 18px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid #e5e5e5;
  background: #fff;
  color: #555;
  font-family: inherit;
}
.go-topbar-actions .action-button:hover { border-color: #ccc; color: #333; }
.go-topbar-actions .delete-button { color: #c62828; border-color: #f2d2d2; }
.go-topbar-actions .delete-button:hover { background: #fdf0f0; border-color: #e5b4b4; }
.go-topbar-actions .add-button { color: #815da7; border-color: #d5c9e3; }
.go-topbar-actions .add-button:hover { background: #f6f1fa; border-color: #815da7; }
.go-topbar-actions .accept-button { color: #c56a10; border-color: #f0d4b0; }
.go-topbar-actions .accept-button:hover { background: #fdf6ed; border-color: #e38722; }
.go-topbar-actions .accept-button.is-on { background: #fdf6ed; border-color: #e38722; }
.go-topbar-actions .add-button.is-on { background: #f6f1fa; border-color: #815da7; }
.go-topbar-actions .delete-button.is-on { background: #fdf0f0; border-color: #e5b4b4; }

.go-loading,
.go-error-state {
  text-align: center;
  padding: 48px 16px;
  color: #666;
}

/* Ladeanimation wie Dashboard / edit-tender (lila Spinner + Pulse-Text). */
.go-loading .spinner-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 0;
}
.go-loading .spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(129, 93, 167, 0.1);
  border-radius: 50%;
  border-top-color: #815da7;
  animation: go-spin 1s cubic-bezier(0.55, 0.055, 0.675, 0.19) infinite;
}
.go-loading .loading-text {
  margin-top: 15px;
  color: #815da7;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  opacity: 0.8;
  animation: go-pulse-text 1.5s infinite ease-in-out;
}
@keyframes go-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes go-pulse-text {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 1; }
}

/* --- Kopfkarte: alles, was für alle Angefragten gleich ist --------------- */

.go-header {
  border: 1px solid #eee;
  border-radius: 15px;
  padding: 20px 22px;
  margin-bottom: 18px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.go-header .go-facts { margin-top: 4px; }
.go-header-motivation {
  font-size: 14px;
  color: #4b5563;
  line-height: 1.55;
  margin-bottom: 4px;
}

/* --- Gruppen-Label über den aktiven Anfragen-Zeilen ---------------------- */

/* Schlichte Gruppen-Überschrift statt der früheren Zählleiste. Sitzt direkt
   über #goList und bildet mit dem Archiv-Umschalter darunter ein Paar aus
   gleichwertigen Gruppen-Überschriften. */
.go-group-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #815da7;
  margin: 6px 0 12px;
}

/* Ausformulierter Einleitungssatz direkt ueber den vorgeschlagenen Profilen
   auf der Ausschreibungsseite (tender-wizard-organizer.js) - bewusst kein
   kleines Uppercase-Label wie .go-group-label, sondern ein normaler Satz. */
.go-suggest-intro {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  line-height: 1.4;
  margin: 6px 0 12px;
}

/* --- Vergleichszeile: Name/Status/Gage/Frist auf einen Blick ------------- */

.go-overview {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 22px;
}
.go-overview-row {
  display: grid;
  grid-template-columns: 1.4fr auto auto auto;
  align-items: center;
  gap: 10px 14px;
  width: 100%;
  padding: 10px 14px;
  min-height: 44px;
  border: 1px solid #eee;
  border-radius: 10px;
  background: #fff;
  font-family: 'Montserrat', Arial, sans-serif;
  text-align: left;
  cursor: pointer;
}
.go-overview-row:hover { border-color: #d8c4ef; background: #fbf9fd; }
.go-overview-name {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.go-overview-fee {
  font-size: 14px;
  font-weight: 700;
  color: #e38722;
  white-space: nowrap;
}
.go-overview-deadline {
  font-size: 12px;
  color: #6b7280;
  white-space: nowrap;
}

/* --- Karten je Angefragtem ---------------------------------------------- */

.go-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.go-card {
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 15px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
  text-align: left;
}
/* Wer eine Entscheidung braucht, sagt das auch optisch. */
.go-card--decide { border-color: #e6c79c; box-shadow: 0 4px 16px rgba(227, 135, 34, 0.12); }

.go-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.go-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  background: #ece7f2;
  flex-shrink: 0;
}
.go-avatar--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #815da7;
}
.go-card-head-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}
.go-name {
  font-size: 17px;
  font-weight: 600;
  color: #333;
  text-decoration: none;
}
.go-name:hover { color: #815da7; }
.go-meta { font-size: 13px; color: #6b7280; }

.go-card-text {
  font-size: 14px;
  color: #4b5563;
  line-height: 1.55;
  margin-bottom: 14px;
}

/* Eckdaten, die von der Kopfkarte abweichen, stehen in der Karte. */
.go-card-facts { margin-top: 4px; }
.go-card-facts-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6b7280;
  margin-bottom: 2px;
}

/* --- Archiv, eingeklappt ------------------------------------------------- */

/* #goDone ist der Wrapper im HTML; .go-done war nie am Element gesetzt. */
#goDone,
.go-done {
  margin-top: 18px;
  padding-top: 0;
}
.go-done-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 10px 14px;
  background: #f9f7fb;
  border: 1px solid #eee6f5;
  border-radius: 12px;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #6b7280;
}
.go-done-toggle:hover { background: #f4f4f4; }
.go-done-toggle svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.go-done-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.go-done-body[hidden] { display: none; }
/* Gleicher Zeilenabstand wie die aktive Liste (#goList), damit aktive und
   Archiv-Zeilen identisch wirken. */
.go-done-body { margin-top: 14px; gap: 10px; }

/* --- Entscheidungsknöpfe ------------------------------------------------- */

.go-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.go-btn {
  min-height: 44px;
  border-radius: 20px;
  padding: 12px 24px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  font-family: 'Montserrat', Arial, sans-serif;
  transition: background 0.2s ease, color 0.2s ease;
}
.go-btn:disabled { opacity: 0.55; cursor: default; }
.go-btn--primary { background: #e38722; color: #fff; }
.go-btn--primary:hover:not(:disabled) { background: #cf7a1d; }
.go-btn--outline { background: #fff; border-color: #e38722; color: #a35c14; }
.go-btn--outline:hover:not(:disabled) { background: #fdf3e8; }
.go-btn--ghost { background: #fff; border-color: #e5e5e5; color: #6b7280; }
.go-btn--ghost:hover:not(:disabled) { border-color: #ccc; color: #444; }

/* --- Kontakt-Zustimmung -------------------------------------------------- */

.go-consent {
  margin: 14px 0;
  padding: 14px 16px;
  border: 1px solid #eee;
  border-radius: 10px;
  background: #fafafa;
  text-align: left;
}
.go-consent-details { margin: 0 0 10px; }
.go-consent-details[open] { margin-bottom: 12px; }
.go-consent-summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: #815da7;
  list-style: none;
}
.go-consent-summary::-webkit-details-marker { display: none; }
.go-consent-summary:hover { color: #6b46c1; }
.go-consent-lead {
  font-size: 14px;
  color: #333;
  line-height: 1.55;
  margin: 8px 0 8px;
}
.go-consent-note {
  font-size: 13px;
  color: #6b7280;
  line-height: 1.5;
  margin: 0 0 12px;
}
.go-consent-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 6px 0;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  cursor: pointer;
}
.go-consent-check input {
  margin-top: 2px;
  accent-color: #e38722;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
}
.go-consent-check--optional {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #eee;
  font-weight: 500;
}
.go-consent-check--optional em {
  display: block;
  font-style: normal;
  font-size: 12px;
  font-weight: 400;
  color: #6b7280;
  margin-top: 2px;
}

/* --- Formular für das finale Gegenangebot ------------------------------- */

.go-panel {
  margin-top: 14px;
  margin-bottom: 4px;
  padding: 16px 18px;
  border: 2px solid #e38722;
  border-radius: 12px;
  background: #fff9f2;
  box-shadow: 0 2px 10px rgba(227, 135, 34, 0.12);
  text-align: left;
}
.go-panel[hidden] { display: none; }
.go-panel-title {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 600;
  color: #333;
}
.go-panel-hint {
  margin: 0 0 14px;
  font-size: 13px;
  color: #6b7280;
  line-height: 1.5;
}
.go-field-row { display: flex; gap: 12px; }
.go-field-row .go-field { flex: 1 1 0; min-width: 0; }
.go-field { margin-bottom: 13px; }
.go-field label {
  display: block;
  margin-bottom: 5px;
  font-size: 13px;
  font-weight: 600;
  color: #4b5563;
}
.go-field input,
.go-field textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  font-size: 15px;
  font-family: 'Montserrat', Arial, sans-serif;
  color: #333;
  background: #fff;
}
.go-field input:focus,
.go-field textarea:focus { outline: none; border-color: #815da7; }
.go-field textarea { min-height: 76px; resize: vertical; }
.go-field-note {
  margin: 6px 0 0;
  font-size: 12px;
  color: #6b7280;
  line-height: 1.5;
}
/* Fluchtweg-Link neben der Termin-Kachelreihe im Gegenangebot ("Anderen Tag
   anfragen"): dezent, kein eigener Button-Look, damit die Kacheln der
   naheliegende Weg bleiben. */
.go-link-btn {
  display: inline-block;
  margin-top: 8px;
  padding: 0;
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: #815da7;
  text-decoration: underline;
  cursor: pointer;
}
.go-link-btn:hover { color: #6b46c1; }

/* Info-Icon mit Tooltip im Stil des Profil-Wizards (create-profile): grauer
   Kreis mit "?", dunkler Tooltip zentriert unter dem Icon. */
.go-label-info {
  display: flex;
  align-items: center;
  gap: 6px;
}
.go-info-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border: 1px solid #A0A0A0;
  border-radius: 50%;
  background: transparent;
  color: #A0A0A0;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}
.go-info-btn::before { content: '?'; }
.go-info-tip {
  position: absolute;
  top: 100%;
  left: 50%;
  margin-top: 8px;
  transform: translateX(-50%);
  width: 180px;
  background: #4A4A4A;
  color: #E5E5E5;
  font-size: 11px;
  font-weight: 400;
  line-height: normal;
  padding: 8px;
  border-radius: 5px;
  text-align: center;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
  transition: opacity 0.3s ease;
  z-index: 1300;
}
.go-info-tip::after {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #4A4A4A transparent;
}
.go-info-btn:hover .go-info-tip,
.go-info-btn.is-open .go-info-tip {
  visibility: visible;
  opacity: 1;
}
.go-panel .go-btn { margin-top: 4px; }

/* ==========================================================================
   3. Mobil
   ========================================================================== */

@media (max-width: 768px) {
  .go-page {
    width: 94%;
    padding: 24px 18px 30px;
    margin: 90px auto 30px;
  }
}

@media (max-width: 600px) {
  .go-title { font-size: 24px; }
  .go-facts { grid-template-columns: 1fr; }
  .go-fact--wide { grid-column: 1; }
  .go-card { padding: 16px; }
  .go-header { padding: 16px 18px; }

  .go-price-current-v { font-size: 26px; }

  /* Acc-Zeile auf Mobil: Fee und Deadline unter Name/Badge */
  .go-acc-row {
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 12px 14px;
  }
  .go-acc-info { flex: 1 1 calc(100% - 100px); }
  .go-acc-row .status-badge { flex-shrink: 0; }
  .go-acc-fee { font-size: 13px; }
  .go-acc-deadline { display: none; }
  .go-acc-body { padding: 10px 12px 12px; }

  .go-deal-foot {
    flex-wrap: nowrap;
    align-items: flex-end;
  }
  .go-deal-foot .go-btn--withdraw {
    white-space: nowrap;
  }

  .go-actions .go-btn { flex: 1 1 100%; }
  .go-panel .go-btn { width: 100%; }
  .go-field-row { flex-direction: column; gap: 0; }

  .go-topbar-actions { flex: 1 1 100%; }
  .go-topbar-actions .action-button { flex: 1; }
}

/* ==========================================================================
   Ausschreibungs-Brief: was die Veranstaltung erstellend eingegeben hat
   (Budget-Spanne, Stimmung/Genres, Vibe-Zitat, Freitext). Gilt nur, solange
   noch kein konkretes Gigangebot steht (origin !== 'direct') — sonst steht
   die Gage schon in der Preis-Kette. Genutzt von view-tender.html und der
   Master-/Organizer-Konsole (js/gig-offer-owner.js).
   ========================================================================== */

.go-header .info-badge-purple {
  background: #fcfaff;
  color: #815da7;
  border: 1px solid #e0d4fc;
  padding: 8px 14px;
  border-radius: 10px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}

.genres-container {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 22px;
}

.genre-tag {
  padding: 8px 14px;
  font-size: 15px;
  border-radius: 12px;
  color: #FFFFFF;
  font-weight: 500;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s;
}
.genre-tag:hover { transform: scale(1.05); }

.genre-tag[data-tag="rock"] { background: #E57373; }
.genre-tag[data-tag="jazz"] { background: #81C784; }
.genre-tag[data-tag="pop"] { background: #F06292; }
.genre-tag[data-tag="electronic"] { background: #4FC3F7; }
.genre-tag[data-tag="folk"] { background: #A1887F; }
.genre-tag[data-tag="hiphop"] { background: #9575CD; }
.genre-tag[data-tag="klassik"] { background: #FFD54F; color: #333; }
.genre-tag[data-tag="blues"] { background: #4DD0E1; }
.genre-tag[data-tag="metal"] { background: #B0BEC5; color: #333; }
.genre-tag[data-tag="reggae"] { background: #FFCA28; color: #333; }
.genre-tag[data-tag="indie"] { background: #FF8A65; }
.genre-tag[data-tag="punk"] { background: #D81B60; }
.genre-tag[data-tag="soul"] { background: #FF8A80; }
.genre-tag[data-tag="country"] { background: #BCAAA4; color: #333; }
.genre-tag[data-tag="funk"] { background: #CE93D8; }
.genre-tag[data-tag="rnb"] { background: #90CAF9; }
.genre-tag[data-tag="latin"] { background: #FFAB91; }
.genre-tag[data-tag="gospel"] { background: #FFCC80; color: #333; }
.genre-tag[data-tag="disco"] { background: #F06292; }
.genre-tag[data-tag="house"] { background: #4DD0E1; }
.genre-tag[data-tag="techno"] { background: #A0A0A0; color: #333; }
.genre-tag[data-tag="trance"] { background: #80DEEA; }
.genre-tag[data-tag="dubstep"] { background: #B39DDB; }
.genre-tag[data-tag="ambient"] { background: #B0BEC5; color: #333; }
.genre-tag[data-tag="schlager"], .genre-tag[data-tag="schlagermusik"] { background: #FF69B4; color: #FFFFFF; }
.genre-tag[data-tag="volksmusik"] { background: #228B22; color: #FFFFFF; }
.genre-tag[data-tag="austropop"] { background: #DC143C; color: #FFFFFF; }
.genre-tag[data-tag="wienerlied"] { background: #D2B48C; color: #333; }
.genre-tag[data-tag="alpenrock"] { background: #8B4513; color: #FFFFFF; }
.genre-tag[data-tag="kabarett"] { background: #DAA520; color: #FFFFFF; }
.genre-tag[data-tag="weltmusik"] { background: #556B2F; color: #FFFFFF; }
.genre-tag[data-tag="singersongwriter"] { background: #4682B4; color: #FFFFFF; }
.genre-tag[data-tag="liedermacher"] { background: #D2691E; color: #FFFFFF; }
.genre-tag[data-tag="alternative"] { background: #6A5ACD; color: #FFFFFF; }
.genre-tag[data-tag="mood"] { background: #815da7; color: #fff; }
.genre-tag.mood-context-badge,
.genre-tag[data-tag="mood-context"] { background: #9b7bb8; color: #fff; }

.trust-quote {
  font-style: italic;
  color: #555;
  line-height: 1.6;
  background: #faf8fc;
  padding: 15px 18px;
  border-left: 4px solid #815da7;
  border-radius: 4px;
  margin-bottom: 22px;
}

.description-section {
  background: #f9f9f9;
  padding: 22px 25px;
  border-radius: 12px;
  line-height: 1.6;
  color: #333;
  white-space: pre-wrap;
  margin-bottom: 8px;
}

/* --- Verhandlungsverlauf (chronologisch, aktuellster Stand unten) ---------- */

.go-timeline {
  list-style: none;
  margin: 0;
  padding: 0 0 0 16px;
  position: relative;
}
.go-timeline::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: #eddcc4;
}
.go-tl-step {
  position: relative;
  padding: 0 0 12px;
}
.go-tl-step:last-child { padding-bottom: 0; }
.go-tl-step::before {
  content: '';
  position: absolute;
  left: -16px;
  top: 5px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #f5e6d0;
  border: 2px solid #d8bd98;
  box-sizing: border-box;
}
.go-tl-step.is-current::before {
  background: #e38722;
  border-color: #e38722;
}
.go-tl-top {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 8px;
}
.go-tl-k {
  font-size: 12px;
  font-weight: 600;
  color: #ab9075;
}
.go-tl-step.is-current .go-tl-k {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #a35c14;
}
.go-tl-now {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #e38722;
}
.go-tl-at {
  margin-left: auto;
  font-size: 11px;
  color: #ab9075;
  white-space: nowrap;
}
.go-tl-v {
  font-size: 16px;
  font-weight: 600;
  color: #7a5c38;
  line-height: 1.3;
}
.go-tl-step.is-current .go-tl-v {
  font-size: 30px;
  font-weight: 800;
  line-height: 1.1;
  color: #e38722;
}
.go-tl-same {
  font-size: 11px;
  font-weight: 500;
  color: #ab9075;
}
.go-tl-meta {
  margin-top: 2px;
  font-size: 12px;
  color: #8a6a45;
}
.go-acc-body .go-tl-step.is-current .go-tl-v { font-size: 22px; }

/* --- Weitere Details (eingeklappt) ---------------------------------------- */

.go-more { margin-top: 12px; }
.go-more-summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #6e4a9e;
  list-style: none;
  padding: 6px 0;
}
.go-more-summary::-webkit-details-marker { display: none; }
.go-more-summary::after { content: ' ▾'; }
.go-more[open] > .go-more-summary::after { content: ' ▴'; }
.go-more > .go-facts { margin-top: 6px; }
/* "Weitere Details" am Desktop durchgehend in zwei Spalten: auch die Zeilen mit
   Badges (Rolle der Musik, Stimmung, Genres, Typ) teilen sich das Raster statt
   ueber die volle Breite zu laufen. Am Handy bleibt es eine Spalte. */
@media (min-width: 601px) {
  .go-more > .go-facts .go-fact--wide {
    grid-column: auto;
    align-items: center;
    margin-top: 0;
    padding: 9px 0;
    border-top: 1px solid #f0f0f0;
  }
  .go-more > .go-facts .go-fact--wide + .go-fact--wide {
    padding-top: 9px;
    border-top: 1px solid #f0f0f0;
  }
  .go-more > .go-facts .go-fact--wide .go-fact-v--badges { justify-content: flex-end; }
}
