/* Projektkatalog-Design fuer Good Practice Beispiele */
:root {
  --pk-primary: #1a5490;
  --pk-primary-dark: #0f3d6b;
  --pk-accent: #f39c12;
  --pk-bg: #f7f9fc;
  --pk-card-bg: #ffffff;
  --pk-border: #e1e6ee;
  --pk-text: #1f2937;
  --pk-text-muted: #6b7280;
  --pk-danger: #dc2626;
  --pk-radius: 10px;
  --pk-radius-sm: 6px;
  --pk-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --pk-shadow-hover: 0 6px 20px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.04);
}
.pk-container, .pk-wrap, .pk-catalog { color: var(--pk-text); }
.pk-catalog-head { margin: 0 0 1rem; }
.pk-catalog-title { font-size: 1.6rem; margin: 0 0 .25rem; color: var(--pk-primary-dark); }
.pk-catalog-lead { margin: 0; color: var(--pk-text-muted); }
.pk-filters {
  background: var(--pk-card-bg);
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius);
  padding: 1rem;
  margin: 0 0 1.25rem;
  box-shadow: var(--pk-shadow);
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.pk-filter-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.pk-filter-row--top { justify-content: space-between; }
.pk-search {
  position: relative;
  flex: 1 1 300px;
  min-width: 220px;
  display: flex;
  align-items: center;
  background: var(--pk-bg);
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius-sm);
  padding: .35rem .6rem;
}
.pk-search-icon { color: var(--pk-text-muted); margin-right: .4rem; }
.pk-search input { border: none; background: transparent; flex: 1; font: inherit; color: inherit; outline: none; padding: .3rem 0; }
.pk-sort { display: inline-flex; align-items: center; gap: .4rem; }
.pk-sort-label, .pk-count { color: var(--pk-text-muted); font-size: .9rem; }
.pk-sort select {
  padding: .4rem .6rem;
  border-radius: var(--pk-radius-sm);
  border: 1px solid var(--pk-border);
  background: var(--pk-card-bg);
  font: inherit;
}
.pk-facet {
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius-sm);
  background: var(--pk-bg);
  padding: .35rem .6rem;
  min-width: 180px;
}
.pk-facet summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--pk-primary-dark);
  list-style: none;
  padding: .1rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
}
.pk-facet summary::-webkit-details-marker { display: none; }
.pk-facet summary::after { content: "▾"; color: var(--pk-text-muted); }
.pk-facet[open] summary::after { content: "▴"; }
.pk-facet-badge {
  background: var(--pk-primary);
  color: #fff;
  border-radius: 999px;
  padding: .05rem .5rem;
  font-size: .75rem;
  font-weight: 600;
  min-width: 1.2rem;
  text-align: center;
}
.pk-facet-badge:empty { display: none; }
.pk-facet-list { max-height: 220px; overflow-y: auto; padding: .4rem 0 0; display: flex; flex-direction: column; gap: .25rem; }
.pk-facet-list label { display: flex; align-items: center; gap: .4rem; cursor: pointer; padding: .15rem .25rem; border-radius: 4px; font-size: .9rem; }
.pk-facet-list label:hover { background: rgba(26,84,144,.06); }
.pk-facet-list input[type="checkbox"] { accent-color: var(--pk-primary); }
.pk-active-filters { display: inline-flex; flex-wrap: wrap; gap: .3rem; }
.pk-active-filter {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--pk-primary);
  color: #fff;
  padding: .15rem .55rem;
  border-radius: 999px;
  font-size: .8rem;
}
.pk-active-filter button { background: transparent; border: none; color: #fff; cursor: pointer; font: inherit; padding: 0; line-height: 1; }
.pk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.pk-empty {
  text-align: center;
  padding: 2rem;
  color: var(--pk-text-muted);
  background: var(--pk-card-bg);
  border: 1px dashed var(--pk-border);
  border-radius: var(--pk-radius);
}
.pk-card {
  background: var(--pk-card-bg);
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius);
  padding: 1rem;
  box-shadow: var(--pk-shadow);
  display: flex;
  flex-direction: column;
  gap: .6rem;
  transition: box-shadow .2s, transform .2s;
}
.pk-card:hover { box-shadow: var(--pk-shadow-hover); transform: translateY(-2px); }
.pk-card[hidden] { display: none !important; }
.pk-card-title { margin: 0; font-size: 1.1rem; color: var(--pk-primary-dark); display: flex; align-items: baseline; gap: .35rem; }
.pk-card-morewrap a { color: var(--pk-primary-dark); text-decoration: none; }
.pk-card-morewrap a:hover { text-decoration: underline; }
.pk-card-morewrap img { display: none; }
.pk-card-name-text { font-weight: 600; }
.pk-card-desc {
  margin: 0;
  color: var(--pk-text);
  font-size: .92rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pk-card-desc:empty { display: none; }
.pk-card-chips { display: flex; flex-wrap: wrap; gap: .3rem .5rem; }
/* Huelle einer Kategorie: gruppiert nur, keine eigene Umrandung. */
.pk-card-chips .pk-card-chip {
  display: inline-flex;
  flex-wrap: wrap;
  gap: .25rem;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
}
/* Nur die einzelnen Werte sind Pillen. */
.pk-card-chip-value {
  font-size: .75rem;
  padding: .15rem .55rem;
  border-radius: 999px;
  background: #eef4fb;
  color: var(--pk-primary-dark);
  border: 1px solid #d5e3f2;
  display: inline-flex;
}
/* Farbklassen fuer Kategorien. An den Chip schreiben, z. B.
   class="pk-card-chip pk-chip-gruen". Ohne Farbklasse ist der Chip hellblau.
   Die alten, feldbezogenen Namen bleiben als Zweitname gueltig. */
.pk-chip-orange, .pk-chip-orange .pk-card-chip-value,
.pk-chip-themen, .pk-chip-themen .pk-card-chip-value { background: #fef3e6; color: #7a4a08; border-color: #f5d9b3; }
.pk-chip-blau, .pk-chip-blau .pk-card-chip-value,
.pk-chip-art, .pk-chip-art .pk-card-chip-value { background: #eef4fb; color: #0f3d6b; border-color: #d5e3f2; }
.pk-chip-dunkelblau, .pk-chip-dunkelblau .pk-card-chip-value,
.pk-chip-format, .pk-chip-format .pk-card-chip-value { background: #dbeafe; color: #1c4e80; border-color: #b6d4f5; }
.pk-chip-gruen, .pk-chip-gruen .pk-card-chip-value,
.pk-chip-region, .pk-chip-region .pk-card-chip-value { background: #eef7ee; color: #1d5b2a; border-color: #cfe6d0; }
.pk-chip-rosa, .pk-chip-rosa .pk-card-chip-value,
.pk-chip-zielgruppe, .pk-chip-zielgruppe .pk-card-chip-value { background: #fceef6; color: #8b2454; border-color: #f3cfe1; }
.pk-chip-mint, .pk-chip-mint .pk-card-chip-value,
.pk-chip-transfer, .pk-chip-transfer .pk-card-chip-value { background: #edfdf6; color: #047857; border-color: #bbf7d0; }
.pk-chip-sand, .pk-chip-sand .pk-card-chip-value,
.pk-chip-support, .pk-chip-support .pk-card-chip-value { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.pk-chip-grau, .pk-chip-grau .pk-card-chip-value { background: #f3f4f6; color: #374151; border-color: #e0e3e8; }
.pk-chip-tuerkis, .pk-chip-tuerkis .pk-card-chip-value { background: #e6f6f8; color: #0f5666; border-color: #c3e6ec; }
.pk-card-chip:empty { display: none; }
.pk-card-facts { display: flex; flex-direction: column; gap: .35rem; font-size: .85rem; color: var(--pk-text-muted); }
.pk-card-fact { min-width: 0; }
.pk-card-fact strong { color: var(--pk-text); }
.pk-card-fact .js-clip {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pk-card-fact .js-clip p { margin: 0; display: inline; }
.pk-card-tags { font-size: .8rem; color: var(--pk-text-muted); }
.pk-card-tags:empty { display: none; }
.pk-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
  padding-top: .3rem;
  border-top: 1px solid var(--pk-border);
  margin-top: .2rem;
}
.pk-card-actions a { color: var(--pk-primary); text-decoration: none; font-size: .85rem; }
.pk-card-actions a:hover { text-decoration: underline; }
.pk-card-morelink a::before { content: "▶ Details "; }
.pk-card-website a::before { content: "🔗 "; }
.pk-card-website a { word-break: break-word; }
.pk-card-morelink img, .pk-card-edit img, .pk-card-delete img { display: none; }
.pk-card-edit a::before { content: "✏ Bearbeiten"; font-size: .85rem; }
.pk-card-edit a { font-size: 0; }
.pk-card-delete a::before { content: "Löschen"; font-size: .85rem; }
.pk-card-delete a { font-size: 0; color: var(--pk-danger); }
.pk-wrap { max-width: 900px; margin: 0 auto; }
.pk-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; }
.pk-detail {
  background: var(--pk-card-bg);
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius);
  padding: 1.5rem;
  box-shadow: var(--pk-shadow);
}
.pk-detail-head { display: flex; gap: 1.25rem; align-items: flex-start; margin: 0 0 1rem; flex-wrap: wrap; }
.pk-head-text { flex: 1; min-width: 250px; }
.pk-eyebrow { margin: 0 0 .2rem; color: var(--pk-text-muted); text-transform: uppercase; letter-spacing: .05em; font-size: .8rem; font-weight: 700; }
.pk-detail-title { margin: 0 0 .35rem; color: var(--pk-primary-dark); font-size: 1.7rem; }
.pk-detail-lead { margin: 0; color: var(--pk-text-muted); font-size: 1.05rem; line-height: 1.5; }
.pk-meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1.25rem; }
.pk-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  border-radius: 999px;
  padding: .2rem .7rem;
  font-size: .85rem;
  border: 1px solid #d5e3f2;
}
.pk-chip strong { color: inherit; font-weight: 700; }
.pk-section { margin: 1.25rem 0; }
.pk-section h3 { margin: 0 0 .5rem; color: var(--pk-primary-dark); font-size: 1.1rem; }
.pk-body { line-height: 1.55; }
.pk-body p:first-child { margin-top: 0; }
.pk-body p:last-child { margin-bottom: 0; }
.pk-kv { display: grid; grid-template-columns: minmax(150px, max-content) 1fr; gap: .4rem 1rem; margin: 0; }
.pk-kv .kv-row { display: contents; }
.pk-kv dt { color: var(--pk-text-muted); font-weight: 600; }
.pk-kv dd { margin: 0; word-break: break-word; }
.pk-downloads .pk-filelist { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; }
.pk-downloads .pk-filelist a {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .7rem;
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius-sm);
  background: var(--pk-bg);
  color: var(--pk-primary-dark);
  text-decoration: none;
  font-weight: 600;
  word-break: break-word;
}
.pk-downloads .pk-filelist a:hover { background: #eef4fb; border-color: #d5e3f2; }
.pk-downloads .pk-filelist img { flex: none; }
.pk-tags-native .tag_list ul,
.pk-tags-native ul.inline-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: 0;
  padding: 0;
}
.pk-tags-native .tag_list li { margin: 0; }
.pk-tags-native .tag_list a,
.pk-tags-native .badge {
  display: inline-block;
  background: #eef4fb !important;
  color: var(--pk-primary-dark) !important;
  border: 1px solid #d5e3f2;
  border-radius: 999px;
  padding: .15rem .6rem;
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}
.pk-tags-native .tag_list a:hover { background: #d9e8f8 !important; }
.pk-tag {
  display: inline-block;
  background: #eef4fb;
  color: var(--pk-primary-dark);
  border: 1px solid #d5e3f2;
  border-radius: 999px;
  padding: .1rem .55rem;
  margin: .1rem .15rem 0 0;
  font-size: .8rem;
}
.pk-nav {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--pk-card-bg);
  border-bottom: 1px solid var(--pk-border);
  padding: .5rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 0 0 1rem;
}
.pk-nav a { color: var(--pk-primary); text-decoration: none; font-size: .9rem; font-weight: 500; }
.pk-nav a:hover { text-decoration: underline; }
.pk-section[open] > summary { color: var(--pk-primary-dark); }
details.pk-section {
  border: 1px solid var(--pk-border);
  border-radius: var(--pk-radius);
  background: var(--pk-card-bg);
  padding: 0;
  margin: 0 0 .75rem;
  box-shadow: var(--pk-shadow);
}
details.pk-section > summary {
  padding: .75rem 1rem;
  cursor: pointer;
  font-weight: 600;
  color: var(--pk-primary-dark);
  list-style: none;
}
details.pk-section > summary::-webkit-details-marker { display: none; }
details.pk-section > summary::before { content: "▸ "; }
details.pk-section[open] > summary::before { content: "▾ "; }
.pk-inner { padding: 0 1rem 1rem; }
.field-stack { display: flex; flex-direction: column; gap: .75rem; }
.field-row, .field-stack { display: flex; flex-direction: column; gap: .75rem; }
.field-card { display: flex; flex-direction: column; gap: .25rem; }
.field-card--choice {
  background: #fff8ec;
  border: 1px solid #f5d9b3;
  border-radius: var(--pk-radius-sm);
  padding: .75rem;
}
.field-card--choice .pk-label::after {
  content: " Auswahlfeld";
  display: inline-block;
  margin-left: .35rem;
  border-radius: 999px;
  background: var(--pk-accent);
  color: #fff;
  font-size: .72rem;
  padding: .05rem .45rem;
}
.field-card--choice select { border-color: #f39c12; }
.pk-label { font-weight: 600; color: var(--pk-text); font-size: .9rem; }
.pk-help { color: var(--pk-text-muted); font-size: .8rem; }
.pk-choice-hint { margin: 0 0 .75rem; }
/* Felder, die noch in keiner Vorlage stehen, haengt Moodle hier automatisch an. */
.pk-otherfields > div > div { border-top: 1px solid var(--pk-border); padding-top: .6rem; margin-top: .6rem; }
.pk-otherfields > div > div:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.pk-otherfields .fw-bold { color: var(--pk-text-muted); font-size: .9rem; }
.pk-otherfields p { margin: .2rem 0 0; }
.pk-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .45rem .85rem;
  border-radius: var(--pk-radius-sm);
  border: 1px solid var(--pk-border);
  background: var(--pk-card-bg);
  color: var(--pk-text);
  text-decoration: none;
  cursor: pointer;
  font: inherit;
  transition: background .15s, border-color .15s;
}
.pk-btn:hover { background: var(--pk-bg); }
.pk-btn--primary { background: var(--pk-primary); color: #fff; border-color: var(--pk-primary); }
.pk-btn--primary:hover { background: var(--pk-primary-dark); }
.pk-btn--secondary { background: var(--pk-card-bg); }
.pk-btn--danger { background: var(--pk-danger); color: #fff; border-color: var(--pk-danger); }
.pk-btn--danger:hover { background: #b91c1c; }
.pk-asearch { padding: 1rem; }
.pk-asearch-hint { color: var(--pk-text-muted); font-size: .9rem; margin: 0 0 1rem; }
.pk-asearch-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: .75rem; }
.pk-asearch-field { display: flex; flex-direction: column; gap: .25rem; }
.pk-asearch-field label { font-weight: 600; font-size: .9rem; color: var(--pk-primary-dark); }
.pk-asearch-controls { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--pk-border); }
@media (max-width: 640px) {
  .pk-grid { grid-template-columns: 1fr; }
  .pk-filter-row--top { flex-direction: column; align-items: stretch; }
  .pk-search, .pk-facet, .pk-sort, .pk-sort select, #pk-reset { width: 100%; min-width: 0; }
  .pk-detail { padding: 1rem; }
  .pk-detail-title { font-size: 1.3rem; }
  .pk-kv { grid-template-columns: 1fr; }
  .pk-kv dt { padding-top: .3rem; }
  .pk-nav { position: static; gap: .5rem; }
}
@media print {
  .no-print, .pk-filters, .pk-nav { display: none !important; }
  .pk-card, .pk-detail { box-shadow: none; border-color: #ccc; break-inside: avoid; }
  .pk-grid { grid-template-columns: 1fr 1fr; }
}
/* Deutlich sichtbare Eingabefelder im Pflegeformular. */
.pk-container .field-card {
  border: 1px solid #c8d6e6;
  background: #fbfdff;
}
.pk-container .field-card:focus-within {
  border-color: #1a5490;
  box-shadow: 0 0 0 3px rgba(26,84,144,.14);
}
.pk-container input[type="text"],
.pk-container input[type="url"],
.pk-container input[type="number"],
.pk-container input[type="email"],
.pk-container input[type="tel"],
.pk-container textarea,
.pk-container select,
.pk-container .form-control {
  border: 2px solid #9fb4ca !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  box-shadow: inset 0 1px 2px rgba(0,0,0,.04) !important;
}
.pk-container input[type="text"]:focus,
.pk-container input[type="url"]:focus,
.pk-container input[type="number"]:focus,
.pk-container input[type="email"]:focus,
.pk-container input[type="tel"]:focus,
.pk-container textarea:focus,
.pk-container select:focus,
.pk-container .form-control:focus {
  border-color: #1a5490 !important;
  box-shadow: 0 0 0 3px rgba(26,84,144,.18) !important;
  outline: none !important;
}
.pk-container .tox-tinymce,
.pk-container .tox {
  border: 2px solid #9fb4ca !important;
  border-radius: 10px !important;
  background: #fff !important;
}
.pk-container .field-card:focus-within .tox-tinymce,
.pk-container .field-card:focus-within .tox {
  border-color: #1a5490 !important;
}
.pk-container .fp-restrictions,
.pk-container .fp-navbar,
.pk-container .filemanager,
.pk-container .filepicker-filelist,
.pk-container .filemanager-container {
  border-color: #9fb4ca !important;
}
.pk-container .filemanager-container,
.pk-container .filepicker-filelist {
  background: #fff !important;
  border-width: 2px !important;
  border-radius: 10px !important;
  min-height: 120px;
}
.pk-container .fp-btn-add a,
.pk-container .filemanager-toolbar a,
.pk-container .filepicker a {
  border-radius: 6px;
}

/* === Erweiterte Suche ausblenden (eigene Filterleiste wird genutzt) === */
#page-mod-data-view #advancedcheckbox,
#page-mod-data-view label[for="advancedcheckbox"] {
    display: none !important;
}
#page-mod-data-view #data_adv_form {
    display: none !important;
}
#page-mod-data-view #reg_search {
    display: inline-block !important;
}


/* === Kundenkorrekturen 2026-09-22: Detailabstände und neue Chipfarbe === */
.pk-chip-violett, .pk-chip-violett .pk-card-chip-value { background: #f3e8ff; color: #6b21a8; border-color: #d8b4fe; }
.pk-detail .kv-row { display: grid; grid-template-columns: minmax(160px, max-content) 1fr; gap: .35rem .85rem; align-items: start; margin: .45rem 0; }
.pk-detail .kv-row strong { color: var(--pk-text-muted); font-weight: 700; }
.pk-detail .kv-row .js-value { min-width: 0; word-break: break-word; }
.pk-contact .kv-row .js-value { display: block; }
@media (max-width: 640px) { .pk-detail .kv-row { display: block; } .pk-detail .kv-row strong { display: block; margin-bottom: .15rem; } }
