/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/*
 * Persönliches Ticket-Layout
 * =========================
 *
 * Zwei feste Spalten, Blöcke in gewählter Reihenfolge, auf- oder zugeklappt.
 * Keine freie Fläche und kein Zoom mehr — die Schrift ist überall gleich groß.
 */

/* Im Anpassen-Modus ist der Inhalt nicht bedienbar: Wir bauen das Layout,
   nicht das Ticket — sonst klickt man beim Schieben versehentlich etwas. */
.ticket-layout-editing [data-ticket-layout-target="body"] {
  pointer-events: none;
  user-select: none;
  opacity: 0.55;
}

.ticket-layout-editing [data-ticket-layout-target="block"] {
  outline: 2px dashed color-mix(in oklab, var(--color-primary) 45%, transparent);
  outline-offset: 2px;
  cursor: grab;
}

.ticket-layout-editing [data-ticket-layout-target="block"]:active {
  cursor: grabbing;
}

/* Die Aktionen (Knöpfe rechts in der Kopfzeile) treten zurück, die
   Verschiebe-Knöpfe nach vorn. */
.ticket-layout-editing .ticket-block-actions {
  display: none;
}

/* Leere Spalte bleibt als Ablagefläche sichtbar. */
.ticket-layout-editing [data-ticket-layout-target="column"] {
  min-height: 6rem;
  border-radius: 0.5rem;
  background:
    linear-gradient(to right, color-mix(in oklab, var(--color-primary) 6%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in oklab, var(--color-primary) 6%, transparent) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Zugeklappt zeigt der Pfeil nach rechts. */
[data-ticket-layout-target="block"][data-collapsed="true"] .ticket-block-chevron svg {
  transform: rotate(-90deg);
}

.ticket-block-dragging {
  opacity: 0.4;
}

/* Kurzes Aufleuchten nach dem Verschieben, damit man sieht, was sich bewegt hat. */
.ticket-block-moved {
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 35%, transparent);
  transition: box-shadow 0.6s ease-out;
}

/*
 * Disposition
 * ===========
 * Fahrzeit schraffiert, Outlook-Belegung grau, außerhalb der Arbeitszeit
 * abgedunkelt, Geisterbalken beim Ziehen. Farbe ist nie der einzige
 * Hinweis — Text und Zeichen stehen immer daneben.
 */
.dispatch-travel {
  background: repeating-linear-gradient(45deg, transparent 0 4px, color-mix(in srgb, var(--color-base-content) 18%, transparent) 4px 8px);
}
.dispatch-busy {
  background: color-mix(in srgb, var(--color-base-content) 12%, transparent);
}
.dispatch-off {
  background: color-mix(in srgb, var(--color-base-content) 6%, transparent);
}
.dispatch-ghost {
  outline: 2px dashed var(--color-primary);
  z-index: 20;
}
[data-controller~="dispatch-calendar"] {
  position: relative;
}
