/* ==========================================================================
   style-v3.css
   Warstwa dopracowująca panel administracyjny (ładowana po style-v2.css).
   Sidebar pozostaje czarny, kolor akcentu: #b48c80.
   ========================================================================== */

:root {
  --kk-accent: #b48c80;
  --kk-accent-dark: #9a6f62;
  --kk-accent-darker: #7f5a4f;
  --kk-accent-tint: rgba(180, 140, 128, .12);
  --kk-accent-tint-strong: rgba(180, 140, 128, .28);

  --kk-sidebar-bg: #0b0e13;
  --kk-sidebar-bg-soft: rgba(255, 255, 255, .045);
  --kk-sidebar-line: rgba(255, 255, 255, .08);

  --kk-bg: #f2f3f5;
  --kk-surface: #ffffff;
  --kk-surface-soft: #f8f7f6;
  --kk-border: #e4e6ea;
  --kk-border-strong: #ccd1d8;
  --kk-text: #262a2f;
  --kk-text-muted: #707784;

  --kk-radius: .5rem;
  --kk-radius-sm: .5rem;

  --kk-shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
  --kk-shadow-md: 0 6px 16px rgba(16, 24, 40, .09);
  --kk-shadow-lg: 0 14px 34px rgba(16, 24, 40, .14);

  --kk-header-h: 64px;
  --kk-sidebar-header-h: 74px;
  --kk-control-h: 38px;
  --kk-table-btn-size: 32px;
}

/* ==========================================================================
   Scrollbary — 4px, dopasowane kolorystycznie
   ========================================================================== */

html {
  scrollbar-width: thin;
  scrollbar-color: var(--kk-accent) transparent;
}
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background-color: var(--kk-accent);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover { background-color: var(--kk-accent-dark); }

.sidebar-sticky {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .25) transparent;
}
.sidebar-sticky::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, .25); }
.sidebar-sticky::-webkit-scrollbar-thumb:hover { background-color: var(--kk-accent); }

/* ==========================================================================
   Layout: nagłówek, sidebar, treść
   ========================================================================== */

body, html { color: var(--kk-text); font-size:1rem;}

.navbar-brand { padding-top: .5rem; padding-bottom: .5rem; }
nav .navbar-brand img { height: 38px; }
.fixed-top {
  min-height: var(--kk-header-h);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .35);
}

/* pola i przyciski w ciemnym nagłówku (np. przełącznik klienta, wyszukiwarka) —
   ta sama wysokość co linki/ikony po prawej stronie nagłówka */
.navbar .form-control {
  height: var(--kk-control-h) !important;
  line-height: calc(var(--kk-control-h) - 2px);
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-radius: var(--kk-radius-sm);
  border: 1px solid rgba(255, 255, 255, .15);
  background: rgba(255, 255, 255, .08);
  color: #fff;
}
.navbar .form-control:focus {
  border-color: var(--kk-accent);
  background: #fff;
  color: var(--kk-text);
  box-shadow: 0 0 0 .18rem var(--kk-accent-tint-strong);
}
.navbar .form-control::placeholder { color: rgba(255, 255, 255, .6); }

#sidesetigs .nav-item .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  height: var(--kk-control-h);
  padding: 0 .6rem;
  border-radius: var(--kk-radius-sm);
  transition: background-color .15s ease, color .15s ease;
}
#sidesetigs .nav-item .nav-link:hover {
  background: rgba(255, 255, 255, .08);
  color: var(--kk-accent);
}
#sidesetigs .nav-item .nav-link:hover .fa { color: var(--kk-accent); }
#sidesetigs .nav-item.disabled .nav-link:hover { background: transparent; color: #d7b9b9; }

[role="main"] {
  padding-top: calc(var(--kk-header-h) + 28px);
  background: var(--kk-bg);
  min-height: 100vh;
}

.sidebar {
  height: 100vh;
  padding-top: 0;
  background: var(--kk-sidebar-bg);
}

/* pasek z logo i przyciskiem zwijania — poza scrollowanym obszarem, żeby logo
   (pozycjonowane wcześniej ujemnym marginesem) nigdy nie było przycinane przez
   overflow ustawiony niżej na .sidebar-sticky */
.sidebar-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--kk-sidebar-header-h);
  padding: .5rem 1rem;
}
.sidebar .logo {
  width: 70%;
  max-width: 160px;
  margin: 0;
}

/* wymagane: max-height = 100vh - pasek logo, z paskiem przewijania */
.sidebar-sticky {
  position: sticky;
  top: 0;
  height: auto;
  max-height: calc(100vh - var(--kk-sidebar-header-h));
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: .5rem;
  padding-bottom: 30px;
  padding-right: 2px;
}

@media screen and (max-width: 767px) {
  .sidebar-sticky { max-height: none; overflow: visible; }
  [role="main"] { padding-top: calc(var(--kk-header-h) + 16px); }
}

/* ==========================================================================
   Sidebar — pozostaje czarny, nawigacja dopracowana kolorem akcentu
   ========================================================================== */

.sidebar { transition: width .2s ease, max-width .2s ease, flex-basis .2s ease; }

.sidebar .nav-link {
  display: flex;
  align-items: center;
  border-radius: var(--kk-radius-sm);
  margin: .1rem .65rem;
  transition: background-color .15s ease, color .15s ease;
}
.sidebar .nav-link:hover {
  background: var(--kk-sidebar-bg-soft);
  color: #fff;
}
.sidebar .nav-link .fa {
  flex: 0 0 auto;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.sidebar .nav-link:hover .fa {
  background: var(--kk-accent);
  color: #0b0e13;
  border-color: var(--kk-accent);
}
.sidebar .nav-label { flex: 1 1 auto; }
.sidebar .nav-counter { margin-left: auto; flex: 0 0 auto; }

/* stan aktywny — wyróżniony kolorem akcentu zamiast płaskiej bieli */
.sidebar .active .nav-link {
  background: var(--kk-accent);
  color: #1a1410;
  font-weight: 600;
}
.sidebar .active .nav-link .fa {
  background: #1a1410;
  color: var(--kk-accent);
  border-color: #1a1410;
}
.sidebar .nav-item ul .nav-link:hover { background: #ecdfd8; }
.sidebar .nav-item ul .active .nav-link,
.sidebar .nav-item.active ul .active .nav-link {
  background: var(--kk-accent);
  color: #1a1410;
}
.sidebar .nav-item ul .active .nav-link .fa,
.sidebar .nav-item.active ul .active .nav-link .fa {
  background: #1a1410;
  color: var(--kk-accent);
}
.sidebar-heading span { letter-spacing: .08em; }

/* ==========================================================================
   Sidebar — przycisk zwijania/rozwijania i tryb "tylko ikony"
   ========================================================================== */

.sidebar-collapse-toggle {
  position: absolute;
  top: 14px;
  right: 20px;
  width: 28px;
  height: 28px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--kk-accent);
  border: 2px solid var(--kk-sidebar-bg);
  border-radius: 50%;
  box-shadow: var(--kk-shadow-sm);
  cursor: pointer;
  z-index: 120;
  transition: background-color .15s ease;
}
.sidebar-collapse-toggle:hover { background: var(--kk-accent-dark); }
.sidebar-collapse-toggle:focus { outline: none; box-shadow: 0 0 0 .18rem var(--kk-accent-tint-strong); }

.sidebar-collapse-toggle .hamburger {
  position: relative;
  display: inline-block;
  width: 13px;
  height: 11px;
}
.sidebar-collapse-toggle .hamburger-bar {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  border-radius: 2px;
  background: var(--kk-accent);
  transition: top .18s ease .18s, transform .18s ease, opacity .12s ease .18s;
}
.sidebar-collapse-toggle .hamburger-bar:nth-child(1) { top: 5px; transform: rotate(45deg); transition-delay: 0s, .18s, 0s; }
.sidebar-collapse-toggle .hamburger-bar:nth-child(2) { top: 5px; opacity: 0; transition-delay: 0s, 0s, 0s; }
.sidebar-collapse-toggle .hamburger-bar:nth-child(3) { top: 5px; transform: rotate(-45deg); transition-delay: 0s, .18s, 0s; }

/* zwinięty sidebar => trzy kreski (hamburger) */
body.sidebar-collapsed .sidebar-collapse-toggle .hamburger-bar:nth-child(1) { top: 0; transform: rotate(0); transition-delay: .18s, 0s, .18s; }
body.sidebar-collapsed .sidebar-collapse-toggle .hamburger-bar:nth-child(2) { opacity: 1; transition-delay: .3s; }
body.sidebar-collapsed .sidebar-collapse-toggle .hamburger-bar:nth-child(3) { top: 9px; transform: rotate(0); transition-delay: .18s, 0s, .18s; }

body.sidebar-collapsed .sidebar {
  width: 68px;
  min-width: 68px;
  max-width: 68px;
  flex: 0 0 68px;
}
body.sidebar-collapsed [role="main"] {
  margin-left: 68px !important;
  width: calc(100% - 68px) !important;
  max-width: calc(100% - 68px) !important;
  flex: 0 0 calc(100% - 68px) !important;
  transition: margin-left .2s ease, width .2s ease;
}

body.sidebar-collapsed .sidebar .logo,
body.sidebar-collapsed .sidebar-heading span,
body.sidebar-collapsed .sidebar .nav-label,
body.sidebar-collapsed .sidebar .nav-counter,
body.sidebar-collapsed .sidebar .nav-item ul {
  display: none !important;
}
body.sidebar-collapsed .sidebar .nav-link {
  justify-content: center;
  margin: .15rem .5rem;
  padding-left: 0;
  padding-right: 0;
}
body.sidebar-collapsed .sidebar .nav-link .fa { margin-right: 0; }

@media screen and (max-width: 767px) {
  .sidebar-collapse-toggle { display: none; }
}

/* ==========================================================================
   Karty
   ========================================================================== */

.card {
  border: 1px solid var(--kk-border);
  border-radius: var(--kk-radius);
  box-shadow: var(--kk-shadow-sm);
  background: var(--kk-surface);
}
.card-header, .card-footer {
  background: var(--kk-surface-soft);
  border-color: var(--kk-border);
  padding: .9rem 1.25rem;
}
.card-header:first-child { border-radius: calc(var(--kk-radius) - 1px) calc(var(--kk-radius) - 1px) 0 0; }
.card-footer:last-child { border-radius: 0 0 calc(var(--kk-radius) - 1px) calc(var(--kk-radius) - 1px); }
.card-body { padding: 1.25rem; }

.card .card-title, h2 {
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--kk-text);
  margin-bottom: 1.1rem;
}
h2.breadcrumbs {
  font-weight: 500;
  font-size: 1rem;
  color: var(--kk-text-muted);
}
h2.breadcrumbs a:hover { color: var(--kk-accent-darker); }

.well {
  background: var(--kk-surface-soft);
  border: 1px solid var(--kk-border);
  border-radius: var(--kk-radius-sm);
}

/* ==========================================================================
   Kafelki dashboardu (.card.big / .medium / .sm) — te same selektory co w
   style-v2.css, żeby wygrać ze specyficznością ".card.big" nad zwykłym ".card"
   ========================================================================== */

.card.big, .card.medium, .card.sm {
  background: var(--kk-surface);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.card.big:hover, .card.medium:hover, .card.sm:hover {
  transform: translateY(-3px);
  box-shadow: var(--kk-shadow-md);
  border-color: var(--kk-accent);
}
.card .circle {
  background: var(--kk-accent-tint);
  border: 1px solid var(--kk-accent);
  transition: background-color .15s ease;
}
.card.big:hover .circle, .card.medium:hover .circle, .card.sm:hover .circle {
  background: var(--kk-accent);
}
.card.big:hover .circle .fa, .card.medium:hover .circle .fa, .card.sm:hover .circle .fa {
  color: #1a1410;
}
.card .circle .fa { color: var(--kk-accent-darker); }

.card.big .card-body a, .card.big .card-body a:hover, .card.big .card-body a:focus {
  color: var(--kk-text);
  opacity: 1;
  text-decoration: none;
}
.card.big .card-body h4, .card.sm .card-body h4 {
  color: var(--kk-text);
  font-weight: 700;
  text-transform: none;
  letter-spacing: .01em;
}
.card.big .card-body p, .card.sm .card-body p {
  color: var(--kk-text-muted);
  font-size: .85rem;
}

/* ==========================================================================
   Przyciski — .btn i .btn-sm mają te same parametry, spójne kolory/hover/focus
   ========================================================================== */

.btn,
.btn-sm,
.btn-xs,
.btn-sm-1 {
  font-family: inherit;
  font-size: .8rem;
  font-weight: 600;
  height: var(--kk-control-h);
  line-height: calc(var(--kk-control-h) - 2px);
  padding: 0 .95rem;
  border-width: 1px;
  border-radius: var(--kk-radius) !important;
  letter-spacing: .01em;
  text-transform: none;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease;
}
.btn:active { transform: translateY(1px); }
.btn:focus, .btn.focus {
  outline: none;
  box-shadow: 0 0 0 .18rem var(--kk-accent-tint-strong);
}
.btn:disabled, .btn.disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
.btn .fa { margin-right: .35rem; }
.btn .fa:only-child { margin-right: 0; }

.btn-primary { background: var(--kk-accent); border-color: var(--kk-accent); color: #1a1410; }
.btn-primary:hover, .btn-primary:focus { background: var(--kk-accent-dark); border-color: var(--kk-accent-dark); color: #fff; }

.badge-primary { background: #cc0000; color: #fff; }

.btn-secondary { background: #5b6472; border-color: #5b6472; color: #fff; }
.btn-secondary:hover, .btn-secondary:focus { background: #454c58; border-color: #454c58; color: #fff; }

.btn-success { background: #2f9e63; border-color: #2f9e63; color: #fff; }
.btn-success:hover, .btn-success:focus { background: #25824f; border-color: #25824f; color: #fff; }

.btn-danger { background: #cc0000; border-color: #cc0000; color: #fff; }
.btn-danger:hover, .btn-danger:focus { background: #a80000; border-color: #a80000; color: #fff; }

.btn-warning { background: #e0a221; border-color: #e0a221; color: #3a2c05; }
.btn-warning:hover, .btn-warning:focus { background: #c68812; border-color: #c68812; color: #3a2c05; }

.btn-info { background: #3d7ea6; border-color: #3d7ea6; color: #fff; }
.btn-info:hover, .btn-info:focus { background: #2f6483; border-color: #2f6483; color: #fff; }

.btn-light { background: #f3f4f6; border-color: var(--kk-border); color: #3f4650; }
.btn-light:hover, .btn-light:focus { background: #e7e9ed; border-color: var(--kk-border-strong); }

.btn-dark { background: #20242b; border-color: #20242b; color: #fff; }
.btn-dark:hover, .btn-dark:focus { background: #0f1116; border-color: #0f1116; }

.btn-default,
.card-header .btn-default,
.card-footer .btn-default {
  background: #fff;
  border: 1px solid var(--kk-border-strong);
  color: #4b5563;
}
.btn-default:hover, .btn-default:focus,
.card-header .btn-default:hover, .card-footer .btn-default:hover {
  background: #f6f7f8;
  border-color: #b7bcc4;
  color: #20242b;
}

.btn-outline-primary, .btn-outline-danger { color: #cc0000; border-color: #cc0000; background: transparent; }
.btn-outline-primary:hover, .btn-outline-danger:hover { background: #cc0000; color: #fff; }
.btn-outline-secondary { color: #5b6472; border-color: var(--kk-border-strong); background: transparent; }
.btn-outline-secondary:hover { background: #5b6472; border-color: #5b6472; color: #fff; }

.btn-link { color: var(--kk-accent-dark); font-weight: 600; }
.btn-link:hover { color: var(--kk-accent-darker); text-decoration: underline; }

@media (max-width: 1700px) {
  .btn, .btn-sm, .btn-xs, .btn-sm-1 { padding: 0 .7rem; }
}

/* ==========================================================================
   Formularze
   ========================================================================== */

label {
  font-size: .68rem;
  letter-spacing: .04em;
  color: var(--kk-text-muted);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
.form-control {
  font-size: .875rem;
  padding: 0 .85rem;
  border: 1px solid var(--kk-border-strong);
  border-radius: var(--kk-radius-sm);
  background: #fff;
  color: var(--kk-text);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control:not(textarea):not(select[multiple]) {
  height: var(--kk-control-h);
  line-height: calc(var(--kk-control-h) - 2px);
}
.form-control:focus {
  border-color: var(--kk-accent);
  box-shadow: 0 0 0 .18rem var(--kk-accent-tint-strong);
}
textarea.form-control { padding: .55rem .85rem; }
.input-group-text {
  background: #f3f4f6;
  border: 1px solid var(--kk-border-strong);
}
.input-group > .custom-file, .input-group > .custom-select, .input-group > .form-control {
  border: 1px solid var(--kk-border-strong);
}
.select2-container--default .select2-selection--single {
  border: 1px solid var(--kk-border-strong);
  border-radius: var(--kk-radius-sm);
}

/* ==========================================================================
   Formularze filtrów w wąskich kolumnach (np. col-lg-1) — poniżej tych
   szerokości etykiety typu "NR ZAMÓWIENIA" nie mieszczą się w kolumnie i
   łamią się w środku słowa. Wymuszamy minimalną szerokość kolumny, więc
   Bootstrapowy .row (flex-wrap) sam przenosi nadmiarowe pola do nowego wiersza.
   Skopowane do bezpośrednich kolumn formularza (form > .row > col-*), żeby nie
   ruszać zagnieżdżonych par "Od/Do" wewnątrz jednego form-group.
   ========================================================================== */

@media (max-width: 1900px) {
  form > .row > [class*="col-"] {
    min-width: 150px;
  }
  label {
    font-size: .64rem;
  }
}

@media (max-width: 1600px) {
  form > .row > [class*="col-"] {
    min-width: 130px;
  }
  label {
    font-size: .6rem;
    letter-spacing: .02em;
  }
  .form-control {
    padding-left: .6rem;
    padding-right: .6rem;
  }
}

/* ==========================================================================
   Tabele
   ========================================================================== */

.table { font-size: .875rem; }
.table th, .table td { border-top: 1px solid var(--kk-border); vertical-align: middle; }
.table thead th {
  border-bottom: 2px solid var(--kk-border);
  color: var(--kk-text-muted);
  font-weight: 700;
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .04em;
  background: var(--kk-surface-soft);
}
.card table.table th, .table-cell.table-header {
  color: var(--kk-text-muted);
  font-weight: 700;
  font-size: .72rem;
  border-bottom: 2px solid var(--kk-border);
}
.table-hover tbody tr:hover { background-color: var(--kk-accent-tint); }
.table-responsive { border-radius: var(--kk-radius); }

/* przyciski akcji w tabelach — zawsze kwadratowe, ikony wyśrodkowane, ta sama wielkość */
.table tr td .btn {
  width: var(--kk-table-btn-size);
  height: var(--kk-table-btn-size);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  flex: 0 0 auto;
}
.table tr td .btn + .btn { margin-left: .3rem; }
.table tr td .btn .fa {
  font-size: .85rem;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  line-height: 1;
  text-align: center;
}

.badge { font-weight: 600; border-radius: var(--kk-radius-sm); }
table .badge-pill, .badge-pill { border-radius: 50rem; }

.pagination span {
  border-radius: var(--kk-radius-sm) !important;
  border-color: var(--kk-border-strong);
  transition: background-color .15s ease, color .15s ease;
}
.pagination span a:hover { color: var(--kk-accent-darker); }
.page-item.active .page-link {
  background-color: var(--kk-accent-tint);
  border-color: var(--kk-accent);
  color: var(--kk-accent-darker);
}

/* ==========================================================================
   Dropdowny, tooltipy, alerty
   ========================================================================== */

.dropdown-menu {
  border: 1px solid var(--kk-border);
  border-radius: var(--kk-radius-sm);
  box-shadow: var(--kk-shadow-md);
}
.dropdown-menu .dropdown-item:hover, .dropdown-menu .dropdown-item:focus {
  background: var(--kk-accent-tint);
  color: var(--kk-accent-darker);
}

.tooltip-inner { border-radius: var(--kk-radius-sm); }

.alert {
  border: none;
  border-left: 4px solid transparent;
  border-radius: var(--kk-radius-sm);
  font-size: .85rem;
}
.alert-danger { background: #fdecec; color: #8a1f1f; border-left-color: #cc0000; }
.alert-success { background: #eaf7ef; color: #1f6b3d; border-left-color: #2f9e63; }

/* ==========================================================================
   Komunikacja — lista wątków i czat (MessageThread / Message, front + admin)
   ========================================================================== */

.messaging { border-radius: var(--kk-radius); }
.inbox_msg {
  border: 1px solid var(--kk-border);
  border-radius: var(--kk-radius);
  box-shadow: var(--kk-shadow-sm);
  overflow: hidden;
}
.inbox_people {
  background: var(--kk-surface);
  border-right: 1px solid var(--kk-border);
}
.headind_srch {
  border-bottom: 1px solid var(--kk-border);
  background: var(--kk-surface-soft);
}
.recent_heading h4 { font-size: 1.05rem; font-weight: 700; color: var(--kk-text); }
.srch_bar input {
  border: 1px solid var(--kk-border-strong) !important;
  border-radius: var(--kk-radius-sm);
  padding: .4rem .6rem !important;
  background: #fff !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.srch_bar input:focus {
  outline: none;
  border-color: var(--kk-accent) !important;
  box-shadow: 0 0 0 .15rem var(--kk-accent-tint-strong);
}
.srch_bar .btn { border-radius: var(--kk-radius-sm) !important; }

.chat_list { transition: background-color .15s ease; cursor: pointer; }
.chat_list:hover { background: var(--kk-surface-soft); }
.chat_list.active_chat, .chat_list.active_chat:hover { background: var(--kk-accent-tint); }
.chat_ib h5 { color: var(--kk-text); font-weight: 600; }
.chat_ib p { color: var(--kk-text-muted); }
.chat_list .badge-primary { background: #cc0000; }

.mesgs { background: var(--kk-surface); }
.received_withd_msg p {
  background: var(--kk-surface-soft);
  border: 1px solid var(--kk-border);
  color: var(--kk-text);
  border-radius: var(--kk-radius-sm) var(--kk-radius-sm) var(--kk-radius-sm) 4px;
  box-shadow: var(--kk-shadow-sm);
}
.sent_msg p {
  background: var(--kk-sidebar-bg);
  border-radius: var(--kk-radius-sm) var(--kk-radius-sm) 4px var(--kk-radius-sm);
  box-shadow: var(--kk-shadow-sm);
}
.time_date { color: var(--kk-text-muted); }

.type_msg { border-top: 1px solid var(--kk-border); }
.input_msg_write input, .input_msg_write textarea {
  color: var(--kk-text);
}
.input_msg_write input::placeholder, .input_msg_write textarea::placeholder { color: var(--kk-text-muted); }

.msg_send_btn {
  background: #cc0000;
  width: 36px;
  height: 36px;
  transition: background-color .15s ease, transform .1s ease;
}
.msg_send_btn:hover { background: #a80000; }
.msg_send_btn:active { transform: translateY(1px); }
.msg_send_btn:focus { outline: none; box-shadow: 0 0 0 .18rem var(--kk-accent-tint-strong); }

/* niestandardowa paginacja KnpPaginatorBundle (span, nie .page-item) */
.pagination span:not(.current) a:hover { color: var(--kk-accent-darker); }
.pagination span.current {
  background: var(--kk-accent);
  border-color: var(--kk-accent);
  color: #1a1410;
  font-weight: 600;
}

/* ==========================================================================
   Logowanie (/login i /admin/login — ten sam markup i klasy w obu miejscach)
   ========================================================================== */

.bg-login:before { opacity: .72; background: linear-gradient(180deg, #0b0e13 0%, #1a1410 100%); }

.card.login {
  background: linear-gradient(180deg, #14181f 0%, #0b0e13 100%) !important;
  border: 1px solid rgba(255, 255, 255, .08);
  box-shadow: var(--kk-shadow-lg);
  overflow: hidden;
}
.card.login .card-body, .card.login .card-footer {
  padding: 2rem 2.25rem;
}
.card.login .card-body > .row > .col-12 > p {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: var(--kk-accent) !important;
  opacity: 1;
}
.card.login .navbar-brand { margin-bottom: 1.75rem !important; }

.card.login label {
  color: var(--kk-accent);
}
.card.login label.text-center {
  display: block;
  width: 100%;
  background: rgba(204, 0, 0, .15);
  border: 1px solid rgba(204, 0, 0, .35);
  color: #ff8a8a;
  text-transform: none;
  letter-spacing: normal;
  font-size: .8rem;
  font-weight: 500;
  padding: .6rem .85rem;
  border-radius: var(--kk-radius-sm);
  margin-bottom: 1rem;
}
.card.login .form-control {
  background: rgba(255, 255, 255, .96);
  border-color: rgba(255, 255, 255, .12);
}
.card.login .form-control:focus {
  background: #fff;
  border-color: var(--kk-accent);
}
.card.login .form-group.text-right a {
  color: rgba(255, 255, 255, .55);
  font-size: .8rem;
  transition: color .15s ease;
}
.card.login .form-group.text-right a:hover {
  color: var(--kk-accent);
  text-decoration: none;
}

.card.login .card-footer {
  background: rgba(255, 255, 255, .03);
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.card.login .btn {
  height: 3.1rem;
  line-height: calc(3.1rem - 2px);
  font-size: 1rem;
  letter-spacing: .06em;
}
.card.login .btn-primary {
  background: var(--kk-accent);
  border: none;
  color: #1a1410;
  box-shadow: 0 8px 20px rgba(180, 140, 128, .3);
}
.card.login .btn-primary:hover, .card.login .btn-primary:focus {
  background: var(--kk-accent-dark);
  color: #fff;
  box-shadow: 0 10px 24px rgba(180, 140, 128, .4);
}
.card.login .btn .fa {
  color: inherit;
  font-size: 1rem;
  padding-left: .5rem;
  margin-right: 0;
}

/* ==========================================================================
   Kafelki dashboardu — generowane z drzewa KnpMenu (Menu/partials/dashboardCards.html.twig)
   ========================================================================== */

.dashboard-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 1rem;
  margin: 1rem 0 .5rem;
}
.dashboard-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .55rem;
  padding: 1.6rem 1rem 1.3rem;
  background: var(--kk-surface);
  border: 1px solid var(--kk-border);
  border-radius: var(--kk-radius);
  box-shadow: var(--kk-shadow-sm);
  color: var(--kk-text);
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.dashboard-card:hover, .dashboard-card:focus {
  transform: translateY(-3px);
  box-shadow: var(--kk-shadow-md);
  border-color: var(--kk-accent);
  color: var(--kk-text);
  text-decoration: none;
}
.dashboard-card-icon {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--kk-accent-tint);
  color: var(--kk-accent-darker);
  font-size: 1.3rem;
  transition: background-color .15s ease, color .15s ease;
}
.dashboard-card:hover .dashboard-card-icon {
  background: var(--kk-accent);
  color: #1a1410;
}
.dashboard-card-group {
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--kk-text-muted);
  margin-top: -.2rem;
}
.dashboard-card-label {
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.25;
}
.dashboard-card-badge {
  position: absolute;
  top: .65rem;
  right: .65rem;
  min-width: 20px;
  height: 20px;
  padding: 0 .35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50rem;
  background: #cc0000;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1;
}

@media (max-width: 575px) {
  .dashboard-cards { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
