/* projekt-drawer.css — Projekt-Drawer Create-Firma-Row + Card-Mode-Consumer. */

/* ─────────────────────────────────────────────────────────────────────
 Projekt-Create-Drawer: Firma-Typeahead-Eingabe + Anhang-Zone.
 Firma-Wizard wird vom DrawerContextChips-Modul
 gehostet (slotVariant='inline'). pj-drawer rendert das innere Eingabe-
 Layout (.app-projekt-firma-field + .app-projekt-firma-typeahead) in den
 .f-chip-inline-picker-host. Die separate .app-projekt-create-firma-row-
 Wrapper-Klasse entfaellt damit (war: negative -10px-Margins).
 ───────────────────────────────────────────────────────────────────── */
.shared-drawer .app-projekt-firma-field {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  /* padding-right groesser: der Pflicht-Asterisk (.app-required-dot) sitzt absolut
     bei right:8px im Inline-Slot. Ohne reservierten Platz laeuft der scrollende
     Suchtext/Caret unter das *-Zeichen. */
  padding: var(--space-1-5) var(--space-5) var(--space-1-5) var(--space-2-5);
  border: 1px solid var(--lod-gray-200);
  border-radius: var(--radius-md);
  background: var(--color-surface);
}
.shared-drawer .app-projekt-firma-field:focus-within {
  border-color: var(--lod-darkblue-300);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--lod-darkblue-300) 30%, transparent);
}
.shared-drawer .app-projekt-firma-field > .field-icon {
  width: 16px;
  height: 16px;
  opacity: 0.55;
  flex-shrink: 0;
}
.shared-drawer .app-projekt-firma-input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  outline: none;
  font: inherit;
  color: inherit;
  background: transparent;
  padding: var(--space-xxs) 0;
}
.shared-drawer .app-projekt-firma-typeahead {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 20;
  max-height: 260px;
  overflow-y: auto;
  background: var(--color-surface);
  border: 1px solid var(--lod-gray-200);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-8);
}
.shared-drawer .app-projekt-firma-typeahead.hidden { display: none; }
.shared-drawer .app-projekt-firma-ta-item {
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  font-size: var(--fs-body);
}
.shared-drawer .app-projekt-firma-ta-item:hover,
.shared-drawer .app-projekt-firma-ta-item[aria-selected="true"] {
  background: var(--lod-gray-50);
}
.shared-drawer .app-projekt-firma-ta-item.is-empty {
  color: var(--color-text-muted);
  cursor: default;
  font-style: italic;
}

/* Upload-Zone im Create-Modus */
.shared-drawer .app-projekt-upload-zone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2-5);
  padding: var(--space-4-5) var(--space-4);
  border: 1.5px dashed var(--lod-gray-300);
  border-radius: var(--radius-lg);
  background: var(--lod-gray-50);
  color: var(--color-text-secondary);
  font-size: var(--fs-body);
  cursor: pointer;
  transition: background var(--duration-quick), border-color var(--duration-quick);
}
.shared-drawer .app-projekt-upload-zone:hover,
.shared-drawer .app-projekt-upload-zone:focus-visible {
  border-color: var(--lod-darkblue-300);
  background: color-mix(in srgb, var(--lod-darkblue-300) 8%, var(--color-surface));
  outline: none;
}
.shared-drawer .app-projekt-upload-zone.is-dragover {
  border-color: var(--lod-turquoise);
  background: color-mix(in srgb, var(--lod-turquoise) 8%, var(--color-surface));
}
.shared-drawer .app-projekt-upload-zone img { opacity: 0.65; }
.shared-drawer .app-projekt-upload-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  margin-top: var(--space-2);
}
.shared-drawer .app-projekt-upload-list:empty { display: none; }
.shared-drawer .app-projekt-upload-chip {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1-5) var(--space-2-5);
  border: 1px solid var(--lod-gray-200);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  font-size: 12.5px; /* bewusster Zwischenwert (--fs-meta < x < --fs-body), wie .subgrid-summary */
}
.shared-drawer .app-projekt-upload-chip img { flex-shrink: 0; opacity: 0.6; }
.shared-drawer .app-projekt-upload-chip-name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shared-drawer .app-projekt-upload-chip-size {
  color: var(--color-text-muted);
  font-size: 11.5px; /* bewusster Zwischenwert (--fs-badge < x < --fs-meta), wie .card-app-meta-row */
  flex-shrink: 0;
}
.shared-drawer .app-projekt-upload-chip-remove {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  padding: 0;
}
.shared-drawer .app-projekt-upload-chip-remove:hover {
  background: var(--lod-gray-100);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Projekt-Drawer Card-Mode Consumer-Styles
   ═══════════════════════════════════════════════════════════════════════════ */

/* KPI-Section: schmalerer Block unter Titel, aber ueber Details */
.shared-drawer .drawer-section--kpi {
  padding-top: var(--space-2);
  padding-bottom: var(--space-2);
}

/* Phase-Row im SubgridList-Konsumenten */
.shared-drawer .app-projekt-phase-row { padding: var(--space-2-5) var(--space-3); }
.shared-drawer .app-projekt-phase-row-inner {
  display: flex;
  flex-direction: column;
  gap: var(--space-1-5);
  width: 100%;
  min-width: 0;
}
.shared-drawer .app-projekt-phase-row-top {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.shared-drawer .app-projekt-phase-name {
  font-weight: var(--fw-semibold);
  color: var(--lod-darkblue-700);
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.shared-drawer .app-projekt-phase-status {
  font-size: var(--fs-badge);
  padding: var(--space-xxs) var(--space-2);
  border-radius: var(--radius-circular);
  background: var(--lod-gray-100);
  color: var(--lod-gray-700);
}
.shared-drawer .app-projekt-phase-warn {
  color: var(--lod-amber-600);
  font-weight: var(--fw-bold);
}
/* Extern-Sichtbar-Badge :
 Konsistent mit Status-Badge-Stil — runder Pill, kompakt, Icon + Label. */
.shared-drawer .app-projekt-phase-extern {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-size: var(--fs-badge);
  padding: var(--space-xxs) var(--space-2);
  border-radius: var(--radius-circular);
  font-weight: var(--fw-medium);
  white-space: nowrap;
}
.shared-drawer .app-projekt-phase-extern img {
  display: block;
  flex-shrink: 0;
}
.shared-drawer .app-projekt-phase-extern--on {
  background: color-mix(in srgb, var(--brand-default) 10%, transparent);
  color: var(--color-brand);
}
.shared-drawer .app-projekt-phase-extern--off {
  background: var(--lod-gray-100);
  color: var(--lod-gray-600);
  opacity: 0.8;
}
.shared-drawer .app-projekt-phase-extern--off img { opacity: 0.7; }
.shared-drawer .app-projekt-phase-row .app-projekt-phase-progress {
  width: 100%;
  height: 4px;
  background: var(--lod-gray-100);
  border-radius: var(--radius-xxs);
  overflow: hidden;
}
.shared-drawer .app-projekt-phase-row .app-projekt-phase-progress-fill {
  height: 100%;
  background: var(--lod-turquoise);
  transition: width var(--duration-normal) var(--ease-soft);
}
.shared-drawer .app-projekt-phase-stats {
  display: flex;
  align-items: center;
  gap: var(--space-2-5);
  flex-wrap: wrap;
  /* bewusster Zwischenwert (--fs-badge < x < --fs-meta), wie .card-app-meta-row */
  font-size: 11.5px;
  color: var(--lod-gray-600);
}
.shared-drawer .app-projekt-phase-stats .pj-stat-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
}
.shared-drawer .app-projekt-phase-pct {
  margin-left: auto;
  font-weight: var(--fw-semibold);
  color: var(--lod-darkblue-700);
}

/* .drawer-head-icon-btn kommt vollstaendig aus der shared-drawer.css-SSOT —
   das fruehere 28px-Duplikat hier war durch die hoehere Spezifitaet der
   SSOT-Regel (.app-scope .shared-drawer …) ohnehin wirkungslos (wie im
   wn-drawer bereits bereinigt). */

/* Projekt-Drawer: Team-Panel + Warnhinweise (aus _shared/drawer-fields.css
   hierher verlagert — nur der pj-drawer konsumiert die .app-projekt-team-*-
   Klassen). Sitzt unterhalb vom Berechtigungstyp-Select. Zeigt aktuelles Team
   + ggf. Warnung bei BT-Wechsel. Scoping via .app-scope (App-Root), da das
   Markup Kind des Drawers ist. */
.app-scope .app-projekt-team-panel {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-top: var(--space-1);
}
.app-scope .app-projekt-team-panel:empty { display: none; }
.app-scope .app-projekt-team-info {
  display: flex;
  flex-direction: column;
  gap: var(--space-xxs);
  padding: var(--space-2-5) var(--space-3);
  border: 1px solid var(--lod-gray-200);
  border-radius: var(--radius-md);
  background: var(--lod-gray-50);
  font-size: 12.5px;
}
.app-scope .app-projekt-team-info strong {
  color: var(--lod-darkblue-700);
}
.app-scope .app-projekt-team-info .muted {
  font-size: 11.5px;
  color: var(--lod-gray-600);
}
.app-scope .app-projekt-team-empty {
  padding: var(--space-2-5) var(--space-3);
  border: 1px dashed var(--lod-gray-200);
  border-radius: var(--radius-md);
  font-size: var(--font-size-sm);
  color: var(--lod-gray-600);
}
.app-scope .app-projekt-team-warn {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-2-5) var(--space-3);
  border-radius: var(--radius-md);
  font-size: 12.5px;
  line-height: 1.4;
  border: 1px solid var(--lod-warning-300);
  background: var(--lod-warning-100);
  color: var(--lod-warning-800);
}
.app-scope .app-projekt-team-warn img {
  flex-shrink: 0;
  opacity: 0.85;
  margin-top: var(--space-px);
}

/* Stakeholder-Team-Mitglieder-Liste, direkt im Drawer editierbar:
   Add-Button unten, Remove-X pro Member. */
.app-scope .app-projekt-team-members {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.app-scope .app-projekt-team-member {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-md);
  background: var(--lod-gray-50);
  font-size: 12.5px;
}
.app-scope .app-projekt-team-member:hover {
  background: var(--lod-gray-100);
}
.app-scope .app-projekt-team-member .avatar-slot {
  flex-shrink: 0;
}
.app-scope .app-projekt-team-member-name {
  font-weight: var(--fw-medium);
  color: var(--lod-darkblue-700);
  /* Ohne E-Mail-Zeile fehlt das flex:1-Geschwister, das sonst den Ueberschuss
     schluckt — Name defensiv kuerzen statt den Remove-Button rauszuschieben. */
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.app-scope .app-projekt-team-member-email {
  flex: 1;
  text-align: right;
  font-size: var(--fs-badge);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.app-scope .app-projekt-team-member-remove {
  flex-shrink: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  padding: 3px;
  cursor: pointer;
  color: var(--lod-gray-500);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.app-scope .app-projekt-team-member-remove:hover {
  background: var(--color-surface);
  border-color: var(--lod-danger-300);
  color: var(--lod-danger);
}
.app-scope .app-projekt-team-member-remove:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.app-scope .app-projekt-team-add {
  margin-top: var(--space-1);
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: var(--space-1-5);
  padding: var(--space-1-5) var(--space-2-5);
  border: 1px dashed var(--lod-gray-300);
  border-radius: var(--radius-md);
  background: transparent;
  cursor: pointer;
  color: var(--lod-darkblue);
  font-size: var(--font-size-sm);
  font-weight: var(--fw-medium);
  transition: background var(--duration-quick), border-color var(--duration-quick);
}
.app-scope .app-projekt-team-add:hover {
  background: var(--lod-darkblue-50);
  border-color: var(--lod-darkblue-300);
  border-style: solid;
}
.app-scope .app-projekt-team-add:disabled { opacity: 0.5; cursor: not-allowed; }
