body {
    background-color: skyblue;
}

.min-height-chip {
    min-height: 2rem;
}

/* Required field indicator */
label.required::after {
    content: ' *';
    color: var(--bs-danger, #dc3545);
}

/* ── Timeline blocks (global: calendar + abschluss) ─────────── */
.tl-block {
    position: absolute; top: 2px; bottom: 2px;
    border-radius: 3px; overflow: hidden;
    display: flex; align-items: center; padding: 0 4px;
    font-size: .68rem; white-space: nowrap; cursor: pointer;
    transition: filter .1s;
    touch-action: manipulation;
    z-index: 1;
}
.tl-block:hover { filter: brightness(1.2); z-index: 2; }
.tl-block[data-block-type="zusatz"]:not(.tl-block-fahrt) { cursor: grab; touch-action: none; }
.tl-block-label { overflow: hidden; text-overflow: ellipsis; flex: 1 1 0; min-width: 0; }
.tl-block-time  { display: none; flex: 0 0 auto; font-size: .6rem; opacity: .85; padding-left: .35em; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tl-is-dragging .tl-block[data-start-min] .tl-block-time { display: inline; }

/* Midnight overflow indicators */
.tl-block--truncated {
    border-right: 2px dashed rgba(255,255,255,.55);
    border-radius: 3px 0 0 3px;
}
.tl-block--truncated::after {
    content: '→';
    position: absolute; right: 3px;
    font-size: .62rem; opacity: .85;
    pointer-events: none;
}
.tl-block--continuation {
    border-left: 2px dashed rgba(255,255,255,.55);
    border-radius: 0 3px 3px 0;
}
.tl-block--continuation::before {
    content: '←';
    position: absolute; left: 3px;
    font-size: .62rem; opacity: .85;
    pointer-events: none;
}

/* Phase colors – dark theme */
.tl-block-fahrt         { background: rgba(100,116,139,.55); color: #cbd5e1; }
.tl-block-gig-booked    { background: rgba(37,99,235,.6);   color: #93c5fd; }
.tl-block-gig-confirmed { background: rgba(37,99,235,.6);   color: #93c5fd; }
.tl-block-gig-inquiry   { background: rgba(251,191,36,.45); color: #fde68a; }
.tl-block-gig-tentative { background: rgba(168,85,247,.4);  color: #d8b4fe; border: 1px dashed rgba(168,85,247,.65); }
.tl-block-probe         { background: rgba(234,88,12,.55);  color: #fed7aa; }
.tl-block-aufbau        { background: rgba(202,138,4,.5);   color: #fef08a; }
.tl-block-soundcheck    { background: rgba(8,145,178,.55);  color: #a5f3fc; }
.tl-block-essen         { background: rgba(22,163,74,.5);   color: #bbf7d0; }
.tl-block-zusatz        { background: rgba(148,163,184,.4); color: #e2e8f0; }
.tl-block-abbau         { background: rgba(194,65,12,.5);  color: #fed7aa; }
.tl-block-einladen      { background: rgba(139,92,246,.45);  color: #ddd6fe; }
.tl-block-ausladen      { background: rgba(139,92,246,.45);  color: #ddd6fe; }

/* Reluctant (bedingt zugesagt) – dashed border, muted orange */
.tl-block--reluctant    { background: rgba(251,146,60,.3) !important; color: #fdba74 !important; border: 2px dashed rgba(251,146,60,.7); }

/* Light theme overrides */
[data-bs-theme="light"] .tl-block--truncated { border-right-color: rgba(0,0,0,.35); }
[data-bs-theme="light"] .tl-block--continuation { border-left-color: rgba(0,0,0,.35); }
[data-bs-theme="light"] .tl-block-fahrt         { background: rgba(100,116,139,.7);  color: #f8fafc; }
[data-bs-theme="light"] .tl-block-gig-booked    { background: rgba(37,99,235,.65);  color: #eff6ff; }
[data-bs-theme="light"] .tl-block-gig-confirmed { background: rgba(37,99,235,.65);  color: #eff6ff; }
[data-bs-theme="light"] .tl-block-gig-inquiry   { background: rgba(217,119,6,.65);  color: #fffbeb; }
[data-bs-theme="light"] .tl-block-gig-tentative { background: rgba(126,34,206,.55); color: #f5f3ff; }
[data-bs-theme="light"] .tl-block-probe         { background: rgba(234,88,12,.65);  color: #fff7ed; }
[data-bs-theme="light"] .tl-block-aufbau        { background: rgba(202,138,4,.65);  color: #fefce8; }
[data-bs-theme="light"] .tl-block-soundcheck    { background: rgba(8,145,178,.65);  color: #ecfeff; }
[data-bs-theme="light"] .tl-block-essen         { background: rgba(22,163,74,.65);  color: #f0fdf4; }
[data-bs-theme="light"] .tl-block-zusatz        { background: rgba(148,163,184,.65);color: #f8fafc; }
[data-bs-theme="light"] .tl-block-abbau         { background: rgba(194,65,12,.65);  color: #fff7ed; }
[data-bs-theme="light"] .tl-block-einladen      { background: rgba(109,40,217,.6);  color: #f5f3ff; }
[data-bs-theme="light"] .tl-block-ausladen      { background: rgba(109,40,217,.6);  color: #f5f3ff; }
[data-bs-theme="light"] .tl-block--reluctant     { background: rgba(251,146,60,.5) !important; color: #fff7ed !important; border: 2px dashed rgba(234,88,12,.7); }

/* Locked blocks (abgeschlossene Gigs) */
.tl-block-locked { opacity: .75; cursor: default !important; }
.tl-block-locked .tl-resize-handle,
.tl-block-locked .tl-lock-btn { display: none !important; }

/* Hide native number spinners in play-count inputs */
.play-count-group input[type="number"]::-webkit-inner-spin-button,
.play-count-group input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.play-count-group input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
