/* 11-crew-termine.css · Teil 11 von 19 · Zeilen-Aktionen, Termin-Agenda, Crew & Termine. Reihenfolge der Dateien = Kaskade (index.html), nicht umsortieren. */
/* Einheitliche Zeilen-Aktionen (Crew / Hotels / Bemerkungen) */
.z-edit, .z-del, .z-cal { font-size:11px; text-decoration:none; white-space:nowrap; cursor:pointer; }
.z-edit { color:var(--pink,#E8185A); } .z-del { color:#B4232A; } .z-cal { color:var(--navy,#1E2B5E); }
.z-cal.ok { color:#0A6B49; }
.z-edit:hover, .z-del:hover, .z-cal:hover { text-decoration:underline; }
.tc-x { color:#B4232A; text-decoration:none; cursor:pointer; font-size:10px; margin-left:3px; }
.tc-x:hover { text-decoration:underline; }
.tc-badge { font-size:12px; font-weight:600; border-radius:5px; padding:2px 8px; white-space:nowrap;
  text-transform:none; letter-spacing:normal; }
.tc-badge.past { background:#F0EEE8; color:var(--muted); }
.tc-badge.now { background:#FBE9EE; color:#C21D48; }
.tc-badge.next { background:#ECEBFA; color:#3B3A8F; }
.tc-body { display:flex; flex-direction:column; }
/* `.tc-body{display:flex}` hat dieselbe Spezifitaet wie die Browser-Vorgabe
   `[hidden]{display:none}` - Autoren-CSS gewinnt bei gleicher Spezifitaet
   IMMER gegen die UA-Vorgabe, das `hidden`-Attribut blieb also wirkungslos
   und nur der Pfeil drehte sich (aria-expanded). Explizit nachziehen. */
.tc-body[hidden] { display:none; }

/* Termin-Agenda (Crew & Termine + Uebersicht), Vorlage
   crew_termine_vorschlag_B2_seitenpanel.html: Datum, Schiene mit Punkt,
   Titel, Crew als Avatar-Stapel, Status rechts. */
.fl-h-zeile { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.fl-lnk { border:0; background:none; padding:0; font:inherit; font-size:13px; color:var(--pink); cursor:pointer;
  display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.fl-lnk:hover { text-decoration:underline; }
.fl-lnk .psub-i { width:13px; height:13px; }
.dk-btn.klein { height:32px; font-size:13px; }
/* Die Home-Regel `.ag` (grauer Grund, Grid mit 1px-Luecken) greift auch hier —
   ohne diese Ruecknahme stehen Kategorien und Termine auf demselben Grau. */
.fl-karte.ag { display:block; gap:0; background:#fff; border:1px solid var(--border); border-radius:10px; padding:4px 0; overflow:hidden; }
#ctAgenda { padding:0; }
.ag-grp + .ag-grp { border-top:1px solid var(--border); }
.ag-ph { display:flex; align-items:center; gap:10px; width:100%; padding:10px 16px; border:0; border-bottom:1px solid var(--border);
  background:#F3F1EC; font:inherit; text-align:left; color:inherit; cursor:pointer; }
.ag-ph:hover { background:#EDEAE3; }
.ag-ph[aria-expanded="false"] { border-bottom-color:transparent; }
.ag-ph .psub-i { width:14px; height:14px; color:#6B6A75; transition:transform .15s; flex:none; }
.ag-ph[aria-expanded="false"] .psub-i { transform:rotate(-90deg); }
.ag-nm { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--navy); }
.ag-rg { font-size:12px; color:var(--muted); }
.ag-r { margin-left:auto; display:flex; gap:10px; align-items:center; font-size:12px; color:var(--muted); white-space:nowrap; }
.ag-items { padding:4px 0 8px; }
/* Terminzeile, kompakt: Datum | Schiene | Titel + Zeitraum | Status, darunter
   die Mitte (Notiz, Crew, Einladung). Die Zellen sind ausdruecklich
   platziert — sonst wanderte bei automatischer Platzierung der Status in
   eine dritte Zeile. `.ag-breit` (nur Reiter Crew & Termine) legt ab
   1300 px alles in EINE Zeile, die schmale Uebersicht bleibt zweizeilig. */
.ag-it { display:grid; grid-template-columns:40px 14px minmax(0,1fr) auto; gap:0 12px; padding:8px 16px;
  cursor:pointer; transition:opacity .15s, background .15s; }
.ag-dt { grid-column:1; grid-row:1 / span 2; }
.ag-rail { grid-column:2; grid-row:1 / span 2; }
.ag-ti { grid-column:3; grid-row:1; min-width:0; }
.ag-rt { grid-column:4; grid-row:1; }
.ag-mid { grid-column:3 / span 2; grid-row:2; min-width:0; }
.ag-it.slot .ag-ti { grid-column:3 / -1; }
/* Feine Trennlinie zwischen den Terminen — erst ab der Titelspalte
   (16 Innenabstand + 40 Datum + 12 + 14 Schiene + 12 = 94 px), damit
   Datum und Zeitleiste durchgehend bleiben. */
.ag-it { position:relative; }
.ag-it + .ag-it::before { content:""; position:absolute; top:0; left:94px; right:16px; border-top:1px solid #E9E6DF; }
.ag-it:hover { background-color:#FAF9F6; }
.ag-it.sel { background-color:#FBF7F8; }
.ag.dim .ag-it:not(.sel) { opacity:.35; }
.ag-it.slot { cursor:default; }
.ag-it.slot:hover { background:none; }
.ag-dt { text-align:center; line-height:1.05; padding-top:1px; }
.ag-dt b { display:block; font-size:16px; font-weight:600; letter-spacing:-.02em; }
.ag-dt span { font-size:10.5px; color:var(--muted); }
.ag-rail { position:relative; display:flex; justify-content:center; }
.ag-rail::before { content:""; position:absolute; top:-8px; bottom:-8px; border-left:2px solid #EFEDE8; }
.ag-items > .ag-it:first-child .ag-rail::before, .fl-karte.ag > .ag-it:first-child .ag-rail::before { top:10px; }
.ag-it.last .ag-rail::before { bottom:calc(100% - 10px); }
.ag-dot { position:relative; margin-top:5px; width:10px; height:10px; border-radius:50%; background:#fff; border:2px solid #B9B6E8; }
.ag-it.run .ag-dot { background:var(--pink); border-color:var(--pink); box-shadow:0 0 0 3px #FBE9EE; }
.ag-it.done .ag-dot { background:#D6D2C8; border-color:#D6D2C8; }
.ag-it.ms .ag-dot { border-radius:2px; transform:rotate(45deg); background:var(--navy2); border-color:var(--navy2); }
.ag-it.slot .ag-dot { border-style:dashed; border-color:#B3B0BA; }
.ag-t { display:block; font-size:14px; font-weight:600; line-height:1.3; }
.ag-it.done .ag-t { color:var(--muted); font-weight:500; }
.ag-it.done .ag-dt b { color:#9794A0; }
.ag-m { font-size:12px; color:var(--muted); min-width:0; }
.ag-mid { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding-top:3px; }
.ag-mid:empty { display:none; }
.ag-notes { display:flex; flex-wrap:wrap; gap:4px; }
.ag-note { display:inline-flex; align-items:center; gap:4px; font-size:12px; background:#FBF3E4; color:#7A4F05; border-radius:4px; padding:1px 7px; }
/* Pensen aus MOCO: Eingeteilte an einem freien Tag (Wochenmodell) und das Pensum im Crew-Panel */
.ag-frei { display:flex; align-items:center; gap:5px; margin-top:4px; font-size:11.5px; color:#8A6414; }
.ag-frei .psub-i { width:13px; height:13px; flex:none; }
.ct-pensum { margin-left:4px; padding:0 5px; border-radius:6px; background:#ECEAE4; color:var(--muted); font-size:10.5px; font-weight:600; }
.ag-note .psub-i { width:11px; height:11px; }
.ag-bar { height:3px; background:#F0EEE8; border-radius:2px; margin-top:4px; max-width:180px; }
.ag-bar i { display:block; height:100%; background:var(--pink); border-radius:2px; }
.ag-who { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:12px; color:var(--muted); }
.ag-who.leer { color:#B3B0BA; }
.ag-stack { display:flex; flex:none; }
.ag-stack .ct-av { border:2px solid #fff; margin-left:-3px; width:22px; height:22px; font-size:9px; }
.ag-stack .ct-av:first-child { margin-left:0; }
.ag-rt { display:flex; align-items:center; justify-content:flex-end; gap:8px; white-space:nowrap; padding-top:1px; }
.ag-w { font-size:12px; font-weight:700; color:var(--muted); white-space:nowrap; }
.ag-slots { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.ag-slot { border:1px dashed #D6D2C8; border-radius:6px; padding:2px 8px; background:#fff; font:inherit; font-size:12px; color:#45434F; }
button.ag-slot { cursor:pointer; }
button.ag-slot:hover { border-color:var(--pink); color:var(--pink); }
/* Kalendereinladung je Termin (an alle Eingeteilten) */
.ag-einl { display:inline-flex; flex-wrap:wrap; align-items:center; gap:3px 8px; font-size:12px; color:var(--muted); }
.ag-einl > .psub-i { width:13px; height:13px; flex:none; }
.ag-einl.ok { color:#16623F; }
.ag-einl.alt { color:#8A5A06; }
.ag-einl-warn { color:#8A5A06; }
.ag-lnk { display:inline-flex; align-items:center; gap:4px; border:0; background:none; padding:0; margin-top:2px; font:inherit; font-size:12px;
  color:var(--muted); text-decoration:underline; text-decoration-color:#D6D2C8; text-underline-offset:2px; cursor:pointer; }
.ag-lnk:hover { color:var(--pink); text-decoration-color:currentColor; }
.ag-lnk.prim { color:var(--pink); text-decoration:none; border:1px solid #F3D5DD; border-radius:6px; padding:1px 8px; background:#fff; }
.ag-lnk .psub-i { width:12px; height:12px; }
@media (min-width:1300px) {
  .ag-breit .ag-it { grid-template-columns:40px 14px minmax(150px,.75fr) minmax(0,2fr) auto; }
  .ag-breit .ag-dt, .ag-breit .ag-rail { grid-row:1; }
  .ag-breit .ag-mid { grid-column:4; grid-row:1; padding-top:1px; }
  .ag-breit .ag-rt { grid-column:5; grid-row:1; }
  .ag-breit .ag-it.slot .ag-ti { grid-column:3 / -1; }
}

/* Crew & Termine: Band „Heute", Fokus-Hinweis, Seitenpanel */
.ct-heute { background:var(--navy); color:#fff; border-radius:10px; padding:16px 20px; margin-bottom:28px;
  display:grid; grid-template-columns:1fr auto auto; gap:20px; align-items:center; }
.ct-heute b { display:block; font-size:16px; font-weight:600; }
.ct-heute span { font-size:13px; color:#C9C9E3; }
.ct-fakt { border-left:1px solid #34357A; padding-left:18px; }
.ct-fakt b { font-size:15px; }
.ct-fakt.hot b { color:#FF8BA6; }
.ct-fokus { display:none; align-items:center; gap:10px; background:#FBE9EE; color:#8E1535; border-radius:8px; padding:8px 12px; font-size:13px; }
.ct-fokus.show { display:flex; }
.ct-fokus button { margin-left:auto; border:0; background:none; font:inherit; font-size:13px; color:var(--pink); font-weight:600; cursor:pointer; }
.vd-2.ct-2 { grid-template-columns:minmax(0,1fr) 380px; }
/* Crew-Spalte scrollt fuer sich: das Panel selbst bleibt weiss bis ganz unten,
   sein Innenteil klebt unter dem Projektkopf (--ct-top) und ist hoechstens so
   hoch wie der sichtbare Bereich (--ct-max) — gemessen von ctPanelMass(). */
.vd-side.ct-side { display:block; padding:0; }
.ct-side-in { position:sticky; top:var(--ct-top, 0px); max-height:var(--ct-max, none); overflow-y:auto;
  overscroll-behavior:contain; padding:24px; display:flex; flex-direction:column; gap:22px; }
.ct-seg { display:flex; width:100%; }
.ct-seg .seg-filter-i { flex:1; padding:0 6px; white-space:nowrap; }
.ct-seg .seg-filter-i b { margin:0 0 0 3px; font-weight:500; }
.fl-suche.ct-such { width:100%; height:34px; }
.ct-av { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; font-size:11px; font-weight:600; flex:none; }
.ct-av.in { background:#E3F2EA; color:#16623F; }
.ct-av.ex { background:#FBF0DC; color:#8A5A06; }
.ct-av.sm { width:22px; height:22px; font-size:9.5px; }
.ct-vorort { background:#FBF7F8; border:1px solid #F3D5DD; border-radius:10px; padding:10px 12px; display:flex; flex-direction:column; gap:8px; }
.ct-vorort h3 { margin:0; font-size:12px; font-weight:600; color:#8E1535; display:flex; justify-content:space-between; gap:8px; }
.ct-vorort h3 span { font-weight:500; color:var(--pink); text-align:right; }
.ct-olist { display:flex; flex-direction:column; gap:10px; }
.ct-orow { display:flex; align-items:center; gap:10px; font-size:13px; }
.ct-orow b { display:block; font-weight:600; }
.ct-orow div span { font-size:12px; color:var(--muted); }
.ct-call { margin-left:auto; width:30px; height:30px; border-radius:8px; border:1px solid #F3D5DD; background:#fff;
  color:var(--pink); display:grid; place-items:center; flex:none; }
.ct-call .psub-i { width:14px; height:14px; }
.ct-firm h3 { margin:0 0 4px; font-size:12px; font-weight:600; color:var(--muted); display:flex; justify-content:space-between; gap:8px; }
.ct-firm h3 span { font-weight:500; color:#9794A0; }
.ct-p { border-bottom:1px solid #F3F1EC; padding-bottom:8px; }
.ct-pk { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; align-items:center; padding:8px 6px 4px;
  border-radius:7px; cursor:pointer; }
.ct-pk:hover { background:#FAF9F6; }
.ct-p.hl .ct-pk { background:#FBE9EE; }
.ct-p.aktiv .ct-pk { background:#F6F5F2; }
.ct-pn { min-width:0; }
.ct-pn b { display:block; font-size:13.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ct-pn span { font-size:12px; color:var(--muted); }
.ct-offen { font-style:normal; color:#B3B0BA; }
.ct-tc { display:flex; gap:3px; flex-wrap:wrap; justify-content:flex-end; max-width:140px; }
.ct-tc i { font-style:normal; font-size:10.5px; padding:1px 6px; border-radius:4px; background:#F3F1EC; color:var(--muted); white-space:nowrap; }
.ct-tc i.run { background:#FBE9EE; color:#C21D48; }
.ct-tc i.plan { background:#ECEBFA; color:#3B3A8F; }
.ct-pd { display:flex; flex-direction:column; gap:3px; padding:0 6px 0 46px; font-size:12.5px; }
.ct-pd a { color:#1C1B22; text-decoration:none; display:flex; align-items:center; gap:7px; min-width:0; overflow-wrap:anywhere; }
.ct-pd a:hover { color:var(--pink); }
.ct-pd .psub-i { width:13px; height:13px; color:#9794A0; flex:none; }
.ct-pd .miss { color:#B3B0BA; display:flex; align-items:center; gap:7px; }
.ct-p.aus, .ct-firm.aus, .ct-vorort.aus { display:none; }
.ct-side .crew-add { flex-direction:column; align-items:stretch; margin-top:0; }
.ct-side .crew-add > * { flex:none; width:100%; min-width:0; }
/* Crew-Formular im Seitenpanel: nur noch fuer Personen ohne festen Termin
   (Support, Operations Manager …) — ruhige Box statt Formularzeile. */
.ct-side .crew-add.ct-add { gap:10px; margin-top:12px; padding:14px; border:1px solid var(--border); border-radius:10px; background:#FAF9F6; }
.ct-add-t { font-size:13px; font-weight:600; color:#1C1B22; }
.ct-add-hint { font-size:12px; line-height:1.45; color:var(--muted); margin-top:-4px; }
.ct-add-hint b { color:#45434F; font-weight:600; }
.ct-add input { height:36px; padding:0 11px; border:1px solid #DCD8CF; border-radius:8px; font:inherit; font-size:13.5px;
  background:#fff; color:#1C1B22; width:100%; min-width:0; box-sizing:border-box; }
.ct-side .crew-add.ct-add select { height:36px; padding:0 32px 0 11px; font-size:13.5px; border-color:#DCD8CF; }
.ct-add-2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
.ct-add-fuss { display:flex; align-items:center; gap:8px; }
.ct-side .crew-add.ct-add .ct-add-fuss select { width:auto; flex:none; }
.ct-add-fuss .m-msg { flex:1; min-width:0; font-size:12px; }
.ct-add-fuss .fl-btn-dunkel { margin-left:auto; height:36px; padding:0 16px; }
/* „+ Person" direkt am Termin: teilt fuer genau diese Phase ein. */
.ag-plus { display:inline-flex; align-items:center; gap:3px; flex:none; height:20px; padding:0 7px; margin-left:2px;
  border:1px dashed #E3C7CF; border-radius:6px; background:#fff; font:inherit; font-size:11.5px; color:var(--pink); cursor:pointer; }
.ag-plus:hover { border-style:solid; border-color:var(--pink); background:#FDF1F4; }
.ag-plus .psub-i { width:11px; height:11px; }
/* Ueber ein ganzes Team eingeteilt: Team als Chip vor der Crew (Teamfarbe als Strich) */
.ag-team { display:inline-flex; align-items:center; gap:4px; flex:none; height:20px; padding:0 8px 0 9px; border-radius:6px;
  font-size:11.5px; font-weight:600; color:#1C1B22; background:#F1F0EC; box-shadow:inset 3px 0 0 var(--tk-f); }
.ag-team-x { border:0; background:none; padding:0; font:inherit; font-size:11px; color:var(--muted); cursor:pointer; }
.ag-team-x:hover { color:#B4232A; }
.ag-slot-g { display:inline-flex; align-items:center; gap:4px; }
.ag-add { display:flex; flex-direction:column; gap:6px; margin-top:8px; padding:10px 12px; background:#FAF9F6;
  border:1px solid var(--border); border-radius:8px; cursor:default; }
.ag-add[hidden] { display:none; }
.ag-add-k { font-size:12px; color:#45434F; }
.ag-add-f { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.ag-add-f select, .ag-add-f input { height:32px; border:1px solid #DCD8CF; border-radius:7px; font:inherit; font-size:13px;
  background-color:#fff; color:#1C1B22; min-width:0; box-sizing:border-box; }
.ag-add-f select { flex:1 1 190px; padding:0 30px 0 10px; cursor:pointer; -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231C1B22' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 10px center; }
.ag-add-f input { flex:1 1 150px; padding:0 10px; }
.ag-add-f select:focus, .ag-add-f input:focus { outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(84,104,217,.16); }
.ag-add .m-msg { font-size:12px; }
.ag-add .m-msg:empty { display:none; }
.ct-hotel { border:1px solid var(--border); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:8px; font-size:13px; }
.ct-hotel b { font-size:14px; font-weight:600; }
.ct-fr { font-size:11.5px; background:#F3F1EC; color:#45434F; padding:1px 7px; border-radius:4px; margin-left:6px; font-weight:500; }
.ct-fr.ok { background:#E3F2EA; color:#16623F; }
.ct-ad { color:var(--muted); font-size:12.5px; }
.ct-gaeste { display:flex; flex-direction:column; gap:6px; border-top:1px solid #F3F1EC; padding-top:8px; }
.ct-gaeste > div { display:flex; gap:8px; align-items:center; }
.ct-gaeste a { margin-left:auto; color:var(--muted); font-size:12px; text-decoration:none; white-space:nowrap; }
.ct-gaeste a:hover { color:var(--pink); }
.ct-hotel-akt { display:flex; gap:12px; }

/* Projekt-Uebersicht in drei Spalten: Phase + Termine | Venue | Stammdaten */
.pu-3 { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 340px; gap:0; align-items:stretch; }
.dk-inhalt > .pu-3 > .pu-a { padding:24px 14px 32px var(--fx); min-width:0; }
.dk-inhalt > .pu-3 > .pu-b { padding:24px var(--fx) 32px 14px; min-width:0; }
.pu-v-kopf { display:flex; align-items:center; gap:14px; padding-bottom:12px; border-bottom:1px solid #EFEDE8; }
.pu-v-kopf .wb-id { color:var(--muted); flex:none; }
.pu-v-kopf b { display:block; font-size:15px; font-weight:600; }
.pu-v-kopf div span { font-size:13px; color:var(--muted); }
.pu-venue .kv-row { grid-template-columns:150px minmax(0,1fr); }
.pu-venue .fl-links, .pu-venue .fl-notiz { padding:12px 0 0; }
.pu-kontakte { display:flex; flex-direction:column; gap:14px; }
.pu-k { display:flex; gap:10px; align-items:flex-start; font-size:13px; }
.pu-k-t { min-width:0; }
.pu-k b { display:block; font-weight:600; }
.pu-k-rolle { display:block; font-size:12px; color:var(--muted); margin-bottom:4px; }
.pu-k .ct-pd { padding:0; }
/* Projekt-Übersicht: Technik-Dokumente für Technikpartner (19.10.2026, vorher am Venue). Je Dokument über die ganze Breite:
   Kopf (Art + Knöpfe), Dateiname in einer Zeile (Ellipsis, voller Name im Tooltip), Version/Datum, Bemerkung (nur intern). */
.ptd-lead { font-size:13px; color:var(--muted); margin-bottom:10px; }
/* Technik-Dokumente im Seitenpanel unter den Stammdaten (20.10.2026): kompakte Liste, Bearbeiten klappt die Felder auf */
#ptdSek { gap:6px; }
.ptd-k .kv-row { grid-template-columns:112px minmax(0,1fr); gap:8px; min-height:28px; }
.ptd-k .kv-l { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ptd-k .kv-w { display:flex; align-items:baseline; gap:6px; min-width:0; }
.ptd-k .kv-w a { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ptd-v { flex:none; font-size:11px; font-weight:400; color:var(--muted); }
.ptd-bk { grid-column:1 / -1; margin:-4px 0 5px; padding-left:8px; border-left:2px solid #D6D2C8; font-size:11.5px; line-height:1.4; color:#45434F; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ptd-k0 { font-size:12.5px; color:var(--muted); }
.ptd-top { display:flex; justify-content:flex-end; margin:-4px 0 6px; }
.ptd-liste { border-top:1px solid var(--border); }
.ptd-z { display:flex; flex-direction:column; gap:4px; padding:10px 0; border-bottom:1px solid var(--border); }
.ptd-z:last-child { border-bottom:0; padding-bottom:0; }
.ptd-kopf { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:30px; }
.ptd-typ { font-weight:600; font-size:13px; color:var(--navy); }
.ptd-akt { display:flex; gap:6px; flex:none; }
.ptd-ib { display:inline-flex; align-items:center; justify-content:center; padding:5px 9px; }
.ptd-ib .psub-i { width:14px; height:14px; }
.ptd-datei { min-width:0; font-size:13px; }
.ptd-datei a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ptd-sub { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.ptd-meta { font-size:12px; color:var(--muted); }
.ptd-auto { font-size:11px; color:#1F7A3D; background:#E3F3E8; border-radius:99px; padding:1px 8px; }
.ptd-leer { font-size:12.5px; color:var(--muted); font-style:italic; }
.ptd-hub { font-size:11px; color:#1F7A3D; background:#E3F3E8; border-radius:99px; padding:1px 8px; margin-left:6px; font-style:normal; }
.ptd-bem { font-size:12.5px; line-height:1.45; color:#45434F; background:#F7F6F2; border-left:3px solid #D6D2C8; border-radius:0 6px 6px 0;
  padding:6px 10px; white-space:pre-wrap; overflow-wrap:anywhere; }
.ptd-form, .ptd-bform { display:flex; gap:8px; align-items:center; margin-top:2px; }
.ptd-bform { align-items:flex-start; }
.ptd-form[hidden], .ptd-bform[hidden] { display:none; }
.ptd-f2 { flex-wrap:wrap; }
.ptd-f2 input { flex:1 1 100%; }
.ptd-w { margin-top:16px; }
.ptd-w-kopf { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.ptd-w-t { font-size:13px; color:var(--navy); }
.ptd-w-t span { font-weight:400; color:var(--muted); margin-left:4px; }
.ptd-w-leer { font-size:12.5px; color:var(--muted); padding:4px 0 6px; }
.ptd-form input, .ptd-bform textarea { flex:1; min-width:0; padding:7px 10px; border:1px solid var(--border); border-radius:8px; font:inherit; font-size:13px; }
.ptd-bform textarea { resize:vertical; }
.ptd > .m-msg { display:block; margin-top:8px; }
.ptd > .m-msg:empty { display:none; }
/* Hinweis im Bearbeiten-Dialog, sobald „Archiv“ gewählt ist: der Inhalt wird nur eingesetzt, wenn er gilt (kein hidden, kein display) */
.ue-archiv { margin:2px 0 14px; padding:9px 12px; border:1px solid #E7C4C1; border-left:3px solid #B3261E; border-radius:8px; background:#FDF4F3; font-size:12.5px; line-height:1.5; color:#5A1A16; }
@media (max-width:1350px) {
  .pu-3 { grid-template-columns:minmax(0,1fr) 340px; }
  .pu-3 > .vd-side { grid-column:2; grid-row:1 / span 2; }
  .dk-inhalt > .pu-3 > .pu-a { padding-right:var(--fx); }
  .dk-inhalt > .pu-3 > .pu-b { grid-column:1; padding:0 var(--fx) 32px; }
}
@media (max-width:900px) {
  .pu-3, .vd-2.ct-2 { grid-template-columns:1fr; }
  .ct-side-in { position:static; max-height:none; overflow:visible; padding:20px var(--fx); }
  .pu-3 > .vd-side { grid-column:auto; grid-row:auto; }
  .dk-inhalt > .pu-3 > .pu-b { grid-column:auto; }
  .ct-heute { grid-template-columns:1fr; gap:10px; }
  .ct-fakt { border:0; padding:0; }
}
/* Hotel-Formular: Personen-Auswahl */
.frm-row label.ho-inline { display:inline-flex; align-items:center; gap:7px; text-transform:none; font-size:14px;
  font-weight:400; color:var(--navy); letter-spacing:0; margin:0; padding:9px 0; cursor:pointer; }
.ho-pers-box { border:1px solid var(--border); border-radius:10px; padding:11px 13px; margin-top:2px; }
.ho-pers-h { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); margin-bottom:8px; }
.ho-pers-h span { color:var(--cyan,#00A5A6); font-weight:700; }
.ho-filter { width:100%; padding:7px 10px; border:1px solid var(--border); border-radius:7px; font:inherit; font-size:13px; margin-bottom:8px; }
.ho-filter:focus { outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(84,104,217,.16); }
.ho-chks { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:2px 14px;
  max-height:230px; overflow-y:auto; }
.ho-chks label { display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; padding:3px 4px;
  border-radius:6px; text-transform:none; font-weight:400; color:var(--navy); letter-spacing:0; margin:0; }
.ho-chks label:hover { background:#F5F6FA; }
.ho-chks label.prio { font-weight:600; }
.ho-chks label i { font-style:normal; color:var(--muted); font-size:11px; }
.ho-chks input { flex:none; }
/* Termin-Formular */
.frm-scroll { max-height:60vh; overflow-y:auto; padding-right:6px; }
.frm-phase { border:1px solid var(--border); border-radius:10px; padding:10px 12px; margin-bottom:10px; }
.frm-phase-t { font-weight:700; color:var(--navy); font-size:13px; margin-bottom:6px; }
/* Termine bearbeiten — eine Zeile je Phase: Name · Zeit von · Zeit bis · Datum von · Datum bis · Notiz */
.tm-scroll { padding-bottom:4px; }
.tm-row { display:grid; grid-template-columns:140px 82px 82px 146px 146px minmax(120px,1fr);
  gap:6px 8px; align-items:center; margin-bottom:6px; }
.tm-row.tm-head { font-size:10px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted);
  font-weight:700; margin-bottom:8px; position:sticky; top:0; background:#fff; z-index:1; padding-bottom:4px; }
.tm-key { font-weight:700; color:var(--navy); font-size:12.5px; }
/* Kategorie-Band im Termin-Editor (wie der Kopf einer Kategorie in der Zeitleiste) */
.tm-kat { margin:14px 0 8px; padding:8px 12px; background:#F3F1EC; border-radius:8px; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.07em; color:var(--navy); }
.tm-head + .tm-kat { margin-top:4px; }
/* eigene Termine: Bereich wählen und entfernen direkt unter dem Namen */
.tm-key.tm-eigen { display:flex; flex-direction:column; gap:3px; align-items:flex-start; }
.tm-grp { max-width:100%; font:inherit; font-size:11px; font-weight:400; padding:2px 4px; border:1px solid var(--border); border-radius:6px; background:#fff; }
.tm-weg { font:inherit; font-size:11px; font-weight:400; color:#B4232A; background:none; border:0; padding:0; cursor:pointer; }
.tm-weg:hover { text-decoration:underline; }
.ct-hk { display:flex; gap:8px; }
.ct-eg2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.tm-row input { width:100%; padding:7px 9px; border:1px solid var(--border); border-radius:7px;
  font-size:13px; font-family:inherit; background:#fff; }
.tm-row input:focus { outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(84,104,217,.16); }
@media (max-width:820px){
  .tm-row { grid-template-columns:1fr 1fr; }
  .tm-row.tm-head { display:none; }
  .tm-key { grid-column:1/-1; margin-top:8px; }
}
/* Budget (Finanzen) */
.bud-kopf { font-size:13px; color:var(--muted); margin-bottom:10px; }
.bud-liste { display:flex; flex-direction:column; gap:2px; }
.bud-z { display:grid; grid-template-columns:200px 1fr 140px; gap:12px; align-items:center; padding:5px 2px; border-bottom:1px solid #EEF0F4; font-size:13px; }
.bud-z:last-child { border-bottom:none; }
.bud-l { color:var(--navy); }
.bud-bar { background:#EEF0FB; border-radius:99px; height:10px; overflow:hidden; }
.bud-fill { display:block; height:100%; background:var(--pink,#E8185A); border-radius:99px; }
.bud-n { text-align:right; font-family:"IBM Plex Mono",monospace; font-weight:600; white-space:nowrap; }
.bud-sum .bud-l, .bud-sum .bud-n { font-weight:700; }
.bud-total { border-top:2px solid var(--navy); margin-top:4px; padding-top:8px; }
.bud-total .bud-l, .bud-total .bud-n { font-weight:800; color:var(--navy); font-size:15px; }
.bud-kacheln { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.bud-k { flex:1; min-width:150px; border:1px solid #E4E7F0; border-radius:10px; padding:10px 12px; background:#FAFBFF; }
.bud-k.hl { border-color:#F3B7C6; background:#FFF4F7; }
.bud-k-l { font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; }
.bud-k-w { font-size:17px; font-weight:700; color:var(--navy); margin-top:2px; }
.bud-k.hl .bud-k-w { font-size:22px; }
.bud-a { color:var(--muted); font-weight:400; }
/* Zaehler neben einer Ueberschrift. Die Klasse wurde seit je benutzt
   (Pikett, Venues, Budget), hatte aber **nie** eine Regel — darum klebte die
   Zahl direkt am Titel: „Venue-Evaluation 92". */
.wb-count { display:inline-block; margin-left:8px; padding:1px 9px; border-radius:99px;
  background:#EEF0FB; color:#3A4A8F; font-size:12px; font-weight:700; vertical-align:middle; }
.ds-t .wb-count, h2 .wb-count { font-weight:700; }

