/* ProjectLens - Farben aus dem Gemeindelogo Reckange-sur-Mess:
   Petrolblau #034D69 (Wellen), Olivgold #9D911A (Kreuz), Anthrazit #616264 (Schrift) */
:root {
  --pl-primary: #034d69;
  --pl-primary-dark: #023a50;
  --pl-primary-rgb: 3, 77, 105;
  --pl-accent: #9d911a;
  --pl-accent-rgb: 157, 145, 26;
  --pl-gray: #616264;
  --pl-bg: #f4f6f7;
  --bs-primary: var(--pl-primary);
  --bs-primary-rgb: var(--pl-primary-rgb);
  --bs-link-color: var(--pl-primary);
  --bs-link-color-rgb: var(--pl-primary-rgb);
  --bs-link-hover-color: var(--pl-primary-dark);
  --bs-link-hover-color-rgb: 2, 58, 80;
  --bs-body-color: #26292b;
  --bs-secondary-color: var(--pl-gray);
  --bs-primary-bg-subtle: #d6e6ec;
  --bs-primary-border-subtle: #9cc0cd;
  --bs-primary-text-emphasis: var(--pl-primary-dark);
  --bs-focus-ring-color: rgba(var(--pl-primary-rgb), .25);
}
body { background: var(--pl-bg); }
.btn-primary {
  --bs-btn-bg: var(--pl-primary); --bs-btn-border-color: var(--pl-primary);
  --bs-btn-hover-bg: var(--pl-primary-dark); --bs-btn-hover-border-color: var(--pl-primary-dark);
  --bs-btn-active-bg: var(--pl-primary-dark); --bs-btn-active-border-color: var(--pl-primary-dark);
  --bs-btn-disabled-bg: var(--pl-primary); --bs-btn-disabled-border-color: var(--pl-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--pl-primary); --bs-btn-border-color: var(--pl-primary);
  --bs-btn-hover-bg: var(--pl-primary); --bs-btn-hover-border-color: var(--pl-primary);
  --bs-btn-active-bg: var(--pl-primary-dark); --bs-btn-active-border-color: var(--pl-primary-dark);
}
.text-bg-primary { background-color: var(--pl-primary) !important; }
.text-primary { color: var(--pl-primary) !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #5f97ab; box-shadow: 0 0 0 .2rem rgba(var(--pl-primary-rgb), .2); }
.form-check-input:checked { background-color: var(--pl-primary); border-color: var(--pl-primary); }
.pagination { --bs-pagination-active-bg: var(--pl-primary); --bs-pagination-active-border-color: var(--pl-primary); --bs-pagination-color: var(--pl-primary); }
.nav-tabs .nav-link { color: var(--pl-gray); }
.nav-tabs .nav-link.active { color: var(--pl-primary); border-top: 3px solid var(--pl-accent); font-weight: 600; }

/* Kopfzeile */
.pl-navbar { background: var(--pl-primary); border-bottom: 4px solid var(--pl-accent); }
.pl-navbar .nav-link { color: rgba(255, 255, 255, .85); }
.pl-navbar .nav-link.active, .pl-navbar .nav-link:hover { color: #fff; }
.pl-navbar .nav-link.active { box-shadow: inset 0 -3px 0 var(--pl-accent); }
.pl-brand-mark { display: inline-flex; background: #fff; border-radius: .4rem; padding: 2px 4px; }
.pl-brand-mark img { height: 26px; width: auto; }
.pl-login-logo { max-width: 220px; width: 60%; height: auto; }
.pl-footer { background: #e9edef; color: var(--pl-gray); border-top: 1px solid #dde3e6; }

/* Karten und Listen */
.card { border-color: #dfe5e8; }
.pl-stat { border-left: 4px solid var(--pl-accent); }
.pl-project-card { transition: box-shadow .15s; }
.pl-project-card:hover { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .08); }
.pl-settings-card:hover { border-color: var(--pl-primary); }
.pl-fav { color: #b8b9ba; line-height: 1; }
.pl-fav.is-fav { color: var(--pl-accent); }
.pl-fav:hover { color: var(--pl-accent); }
.pl-table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .02em; color: var(--pl-gray); white-space: nowrap; }
.pl-clamp-1, .pl-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.pl-clamp-1 { -webkit-line-clamp: 1; }
.pl-clamp-3 { -webkit-line-clamp: 3; }
.min-w-0 { min-width: 0; }
.pl-text { white-space: pre-line; overflow-wrap: anywhere; }

/* Projektdetail */
.pl-kf { background: #fff; border: 1px solid #dfe5e8; border-left: 4px solid var(--pl-primary); border-radius: .4rem; padding: .5rem .75rem; height: 100%; }
.pl-kf-label { font-size: .75rem; text-transform: uppercase; color: var(--pl-gray); }
.pl-kf-value { font-weight: 600; overflow-wrap: anywhere; }
.pl-kf-money { border-left-color: var(--pl-accent, #9d911a); }
.pl-kf-money .pl-kf-value { overflow-wrap: normal; font-variant-numeric: tabular-nums; }
.pl-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.pl-tabs .nav-link { white-space: nowrap; }
.pl-dl dt { font-weight: 500; color: var(--pl-gray); font-size: .9rem; }
.pl-internal { background: #fffaf0; }
.pl-timeline { border-left: 3px solid var(--pl-accent); padding-left: 1rem; margin-left: .25rem; }
.pl-timeline-item { position: relative; padding-bottom: 1rem; }
.pl-timeline-item::before { content: ""; position: absolute; left: -1.45rem; top: .35rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--pl-primary); border: 2px solid #fff; }
.pl-budget-table tfoot th { font-size: 1rem; }

/* Karten (Leaflet) */
.pl-map { height: 340px; border-radius: .3rem; z-index: 0; }
.pl-map-editor { height: 460px; }
.pl-legend-item { display: inline-flex; align-items: center; gap: .4rem; }
.pl-legend-item.pl-legend-empty { opacity: .45; }
.pl-legend-swatch { width: .9rem; height: .9rem; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(0,0,0,.35); flex: none; }
.pl-map-large { height: calc(100vh - 260px); min-height: 380px; }

/* Import */
.pl-raw-preview { max-height: 260px; }
.pl-import-table td { vertical-align: top; }

/* Mobile First: grosse Beruehrungsflaechen, Formularaktionen unten fixiert */
@media (max-width: 575.98px) {
  h1.h3 { font-size: 1.35rem; }
  .pl-map { height: 280px; }
  .pl-map-editor { height: 360px; }
  .pl-form-actions { position: sticky; bottom: 0; background: var(--pl-bg); padding: .5rem 0; z-index: 5; }
  .btn-sm { padding: .35rem .6rem; }
  .breadcrumb { font-size: .85rem; }
}
@media print {
  .pl-navbar, .pl-footer, .btn, form[role=search] { display: none !important; }
  .tab-pane { display: block !important; opacity: 1 !important; }
}
