/* Kwalifikator dotacji (/kwalifikacja-dotacji, /status, /aktywuj).
   Bazuje na klasach szablonu (contact-form-style-03, box-shadow-*, fs-*);
   tutaj tylko to, czego szablon nie ma: bledy per pole, kroki, wynik. */

.kw-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.kw-pole .kw-blad { color: #d63a3a; min-height: 0; }
.kw-pole .kw-blad:empty { display: none; }
.kw-pole.kw-ma-blad .form-control,
.kw-pole.kw-ma-blad select.form-control { border-color: #d63a3a !important; }
.kw-pole.kw-ma-blad .form-check-input { outline: 2px solid #d63a3a; outline-offset: 1px; }
.kw-pole .kw-ok { color: #1f8a4c; }
.kw-pomoc:empty { display: none; }
.kw-program-opis:empty { display: none; }
.kw-program-opis { margin-top: 4px; }

.kw-zgoda { padding-left: 25px; }
.kw-zgoda .form-check-input {
  /* szablon nadaje kazdemu input width:100% i dolna kreske - checkbox musi to cofnac */
  -webkit-appearance: auto; appearance: auto; width: 17px !important; height: 17px !important; min-height: 0;
  padding: 0 !important; margin: 4px 0 0 -25px; border: 0; box-shadow: none; float: left; accent-color: #242e45; cursor: pointer;
}
.kw-zgoda .form-check-label { cursor: pointer; }

.kw-krok { position: relative; padding-top: 44px !important; }
.kw-krok-nr {
  position: absolute; top: -18px; left: 30px; width: 40px; height: 40px; line-height: 40px;
  border-radius: 50%; background: #242e45; color: #fff; font-weight: 700; text-align: center;
}

#kw-komunikat.kw-sukces, .kw-sukces, .kw-panel-sukces { background: #edf8f1; border-left: 4px solid #1f8a4c; padding: 18px 22px; border-radius: 4px; }
#kw-komunikat.kw-niepowodzenie, .kw-niepowodzenie, .kw-panel-blad { background: #fdeeee; border-left: 4px solid #d63a3a; padding: 18px 22px; border-radius: 4px; }

.kw-karta { background: #fff; border-radius: 6px; box-shadow: 0 15px 40px rgba(0, 0, 0, .07); padding: 40px; margin-bottom: 30px; }
@media (max-width: 575px) { .kw-karta { padding: 25px 20px; } }
.kw-dane { display: grid; grid-template-columns: max-content 1fr; gap: 6px 20px; margin: 0; }
.kw-dane dt { font-weight: 600; color: #232323; }
.kw-dane dd { margin: 0; }
@media (max-width: 575px) { .kw-dane { grid-template-columns: 1fr; } .kw-dane dd { margin-bottom: 8px; } }

.kw-etap { display: inline-block; padding: 4px 14px; border-radius: 100px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; background: #eef1f7; color: #242e45; }
.kw-etap.kw-etap-wynik { background: #edf8f1; color: #1f8a4c; }
.kw-etap.kw-etap-koniec { background: #fdeeee; color: #b02a2a; }

.kw-werdykt { font-size: 26px; line-height: 34px; font-weight: 700; margin: 10px 0 6px; }
.kw-werdykt.kw-pozytywny { color: #1f8a4c; }
.kw-werdykt.kw-warunkowy { color: #b7791f; }
.kw-werdykt.kw-negatywny { color: #b02a2a; }

.kw-kryteria { list-style: none; padding: 0; margin: 0; }
.kw-kryteria li { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid #ececec; }
.kw-kryteria li:last-child { border-bottom: 0; }
.kw-kryteria .kw-ikona { flex: 0 0 26px; font-size: 20px; line-height: 24px; }
.kw-kryteria .kw-spelnione .kw-ikona { color: #1f8a4c; }
.kw-kryteria .kw-niespelnione .kw-ikona { color: #b02a2a; }
.kw-kryteria .kw-do-uzupelnienia .kw-ikona, .kw-kryteria .kw-w-weryfikacji .kw-ikona { color: #b7791f; }
.kw-kryterium-wynik { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }

/* Formularz brakow: sekcje z kontraktu ERP (Firma / Finanse / Planowany projekt) */
.kw-sekcja { border: 0; padding: 0; margin: 0 0 10px; min-width: 0; }
.kw-sekcja legend { float: none; width: auto; padding: 0; }
.kw-sekcja + .kw-sekcja { border-top: 1px solid #ececec; padding-top: 25px; }
.kw-sekcja-projekt summary { cursor: pointer; padding: 6px 0 4px; list-style-position: inside; }
.kw-sekcja-projekt summary::marker { color: #242e45; }
.kw-pole[hidden] { display: none !important; }

/* Podglad w trakcie: postep, dane firmy, ocena wstepna, powody odmowy */
.kw-etapy { list-style: none; padding: 0; margin: 0; }
.kw-etapy li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid #f0f0f0; }
.kw-etapy li:last-child { border-bottom: 0; }
.kw-etapy .bi { font-size: 18px; width: 22px; text-align: center; }
.kw-etapy .kw-etap-stan { margin-left: auto; font-size: 13px; color: #6b6b6b; white-space: nowrap; padding-left: 10px; }
.kw-etap-gotowe .bi { color: #1f8a4c; }
.kw-etap-w_toku .bi { color: #242e45; display: inline-block; animation: kw-obrot 1.2s linear infinite; }
.kw-etap-oczekuje .bi, .kw-etap-pominiete .bi { color: #b0b0b0; }
.kw-etap-blad .bi { color: #b7791f; }
@keyframes kw-obrot { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .kw-etap-w_toku .bi { animation: none; } }

.kw-dane-firmy { display: grid; grid-template-columns: minmax(150px, max-content) 1fr; gap: 0; margin: 0; }
.kw-dane-firmy dt, .kw-dane-firmy dd { padding: 10px 0; border-bottom: 1px solid #f0f0f0; margin: 0; }
.kw-dane-firmy dt { font-weight: 600; color: #232323; padding-right: 20px; }
.kw-dane-firmy dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.kw-dane-firmy .kw-wartosc { color: #232323; }
.kw-dane-firmy .kw-zrodlo { font-size: 12px; color: #6b6b6b; background: #f3f4f8; border-radius: 100px; padding: 1px 9px; }
.kw-dane-firmy .kw-uwaga { flex-basis: 100%; font-size: 13px; line-height: 20px; color: #8a5a00; }
.kw-dane-firmy .kw-znacznik-niepewne { font-size: 12px; font-weight: 700; color: #8a5a00; background: #fff4d6; border-radius: 100px; padding: 1px 9px; }
@media (max-width: 575px) { .kw-dane-firmy { grid-template-columns: 1fr; } .kw-dane-firmy dt { border-bottom: 0; padding-bottom: 0; } }

.kw-liczniki { display: flex; flex-wrap: wrap; gap: 8px; }
.kw-licznik { font-size: 13px; font-weight: 700; border-radius: 100px; padding: 3px 12px; background: #f3f4f8; }
.kw-licznik.kw-spelnione { color: #1f8a4c; background: #edf8f1; }
.kw-licznik.kw-niespelnione { color: #b02a2a; background: #fdeeee; }
.kw-licznik.kw-do-uzupelnienia, .kw-licznik.kw-w-weryfikacji { color: #8a5a00; background: #fff4d6; }
.kw-brakuje { color: #8a5a00; margin-top: 3px; }

.kw-karta-odmowa { border-left: 4px solid #b02a2a; }
.kw-powody { padding-left: 20px; margin: 0; }
.kw-powody li { margin-bottom: 6px; color: #232323; }

/* Sprawozdania finansowe (ERP 0.9.48): lata, przesylanie, lista przeslanych */
.kw-sf-lata { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 10px; }
.kw-sf-lata li { display: flex; flex-direction: column; align-items: center; min-width: 96px; padding: 10px 12px; border-radius: 6px; background: #f3f4f8; }
.kw-sf-rok { font-weight: 700; font-size: 17px; color: #232323; }
.kw-sf-stan { font-size: 12px; line-height: 16px; text-align: center; color: #6b6b6b; }
.kw-sf-r-mamy, .kw-sf-r-przeslane { background: #edf8f1 !important; }
.kw-sf-r-mamy .kw-sf-stan, .kw-sf-r-przeslane .kw-sf-stan { color: #1f8a4c; }
.kw-sf-r-brak { background: #fff4d6 !important; }
.kw-sf-r-brak .kw-sf-stan { color: #8a5a00; font-weight: 700; }
.kw-sf-przesylanie { margin-top: 15px; }
.kw-sf-wiersz { padding: 14px 0; border-top: 1px solid #f0f0f0; }
.kw-sf-kontrolki { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; }
.kw-sf-kontrolki .kw-sf-plik { flex: 1 1 240px; min-width: 0; font-size: 14px; padding: 6px 0; border: 0; background: transparent; height: auto; }
.kw-sf-postep { height: 6px; background: #eef1f7; border-radius: 3px; overflow: hidden; margin-top: 10px; }
.kw-sf-postep span { display: block; height: 100%; width: 0; background: #242e45; transition: width .2s; }
.kw-blad-sf { color: #d63a3a; margin-top: 6px; }
.kw-blad-sf:empty { display: none; }
.kw-sf-instrukcja { background: #f7f8fb; border-radius: 6px; padding: 16px 18px; }
.kw-sf-przeslane { list-style: none; padding: 0; margin: 0; }
.kw-sf-przeslane li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 6px 0; }
.kw-sf-przeslane .bi { color: #1f8a4c; }
.kw-sf-nazwa { word-break: break-all; }
.kw-sf-kiedy { font-size: 13px; color: #6b6b6b; }

/* ERP 0.9.51: wyrozniona kwota grantu na gorze wyniku */
.kw-kwoty { margin: 18px 0 26px; padding: 22px 24px; border-radius: 6px; background: #f0eefc; border-left: 4px solid var(--base-color, #3C2FC0); }
.kw-kwoty-tekst { font-size: 19px; line-height: 30px; font-weight: 600; color: #232323; margin: 0; }
.kw-kwoty-liczby { display: flex; flex-wrap: wrap; gap: 14px 34px; margin: 16px 0 0; }
.kw-kwoty-liczby dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #6b6b6b; }
.kw-kwoty-liczby dd { margin: 0; font-size: 22px; line-height: 30px; font-weight: 700; color: var(--base-color, #3C2FC0); }
@media (max-width: 575px) { .kw-kwoty { padding: 18px; } .kw-kwoty-tekst { font-size: 17px; line-height: 27px; } .kw-kwoty-liczby dd { font-size: 19px; } }
