/* --- EKSPERYMENT Z CZCIONKĄ DLA GRIDA --- */

/* Celujemy w cały kontener Grida (nagłówek, tabela, stopka, paginacja) */
.kv-grid-container, 
.kv-grid-panel,
.kv-grid-table {
    /* Ustawiamy czcionkę Inter, a jak jej nie ma, to systemową */
    font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif !important;
    
    /* Opcjonalnie: Inter wygląda dobrze, gdy jest minimalnie ciaśniejszy */
    letter-spacing: -0.01em; 
}

/* Ponieważ zmieniamy krój, warto upewnić się, że cyfry są "tabelaryczne" 
   (zajmują tyle samo miejsca, dzięki czemu kolumny z kwotami są równe) */
.kv-grid-table td, 
.kv-grid-table th {
    font-variant-numeric: tabular-nums;
}

/* Jeśli nowa czcionka wydaje się za duża/za mała, skoryguj to tutaj globalnie */
.kv-grid-table {
    font-size: 0.92rem !important; /* Dostosuj: 0.9rem, 0.95rem itd. */
}
/*--------------------------------------------------------------------------*/
/* .kv-grid-container, .kv-grid-table {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
} */




/* 1. Definiujemy nowy kolor globalnie w zmiennych CSS */
:root {
    /* Twój kolor w HEX */
    --bs-primary: #077acd; 
    
    /* Twój kolor w RGB (same liczby, bez nawiasów - ważne dla przezroczystości!) */
    --bs-primary-rgb: 7, 122, 205; 
    
    /* Opcjonalnie: Zmiana koloru linków na ten sam */
    --bs-link-color: #077acd;
    --bs-link-hover-color: #055a96; /* Ciemniejsza wersja */
}

/* 2. Nadpisujemy klasy tła i tekstu */
.bg-primary {
    background-color: #077acd !important;
}
.text-primary {
    color: #077acd !important;
}

/* 3. Nadpisujemy przyciski Primary (Kluczowe dla GridView i formularzy) */
.btn-primary {
    background-color: #077acd !important;
    border-color: #077acd !important;
}

/* 4. Stan HOVER (po najechaniu) - trochę ciemniejszy */
.btn-primary:hover, 
.btn-primary:focus, 
.btn-primary:active, 
.btn-primary.active {
    background-color: #055a96 !important; /* Ciemniejszy o ok. 15-20% */
    border-color: #055a96 !important;
}

/* 5. Stan OUTLINE (jeśli używasz btn-outline-primary) */
.btn-outline-primary {
    color: #077acd !important;
    border-color: #077acd !important;
}

.btn-outline-primary:hover {
    background-color: #077acd !important;
    color: #fff !important;
}
/*--------------------------------------------------------------------------*/

main > .container {
    padding: 70px 15px 20px;
}

.footer {
    background-color: #f5f5f5;
    font-size: .9em;
    height: 60px;
}

.footer > .container {
    padding-right: 15px;
    padding-left: 15px;
}

.not-set {
    color: #c55;
    font-style: italic;
}

/* add sorting icons to gridview sort links */
a.asc:after, a.desc:after {
    content: '';
    left: 3px;
    display: inline-block;
    width: 0;
    height: 0;
    border: solid 5px transparent;
    margin: 4px 4px 2px 4px;
    background: transparent;
}

a.asc:after {
    border-bottom: solid 7px #212529;
    border-top-width: 0;
}

a.desc:after {
    border-top: solid 7px #212529;
    border-bottom-width: 0;
}

.grid-view th,
.grid-view td:last-child {
    white-space: nowrap;
}

/* --- UPDATE: Zmniejszenie pól filtrów (inputów) w nagłówku tabeli --- */
.kv-grid-table .filters input.form-control,
.kv-grid-table .filters select.form-control {
    height: 28px !important;       /* Mniejsza wysokość */
    padding: 2px 5px !important;   /* Mniejsze marginesy wewn. */
    font-size: 0.85rem !important; /* Mniejsza czcionka, pasująca do reszty */
    line-height: 1.2 !important;
    min-width: 50px;
}

.hint-block {
    display: block;
    margin-top: 5px;
    color: #999;
}

.error-summary {
    color: #a94442;
    background: #fdf7f7;
    border-left: 3px solid #eed3d7;
    padding: 10px 20px;
    margin: 0 0 15px 0;
}

/* align the logout "link" (button in form) of the navbar */
.nav li > form > button.logout {
    padding-top: 7px;
    color: rgba(255, 255, 255, 0.5);
}

@media(max-width:767px) {
    .nav li > form > button.logout {
        display:block;
        text-align: left;
        width: 100%;
        padding: 10px 0;
    }
}

.nav > li > form > button.logout:focus,
.nav > li > form > button.logout:hover {
    text-decoration: none;
    color: rgba(255, 255, 255, 0.75);
}

.nav > li > form > button.logout:focus {
    outline: none;
}

/* Wymuszenie mniejszych odstępów w GridView */
.kv-grid-table.table-sm > tbody > tr > td, 
.kv-grid-table.table-sm > thead > tr > th {
    padding: 0.10rem 0.3rem; /* góra/dół 0.25rem, lewo/prawo 0.5rem */
    font-size: 0.9rem;       /* Opcjonalnie: mniejsza czcionka */
    vertical-align: middle;  /* Wyśrodkowanie w pionie */
}

/* Zmniejszenie przycisków wewnątrz tabeli */
.kv-grid-table .btn {
    padding: 0.1rem 0.4rem;
    font-size: 0.8rem;
}

/* --- UPDATE: Rozjaśnienie obramowania karty GridView (Panelu) --- */
.kv-grid-panel .card {
    border-color: #dee2e6 !important; /* Jasny szary (standard Bootstrap) - pasuje do linii w tabeli */
}
.kv-grid-container {
    border-color: #dee2e6 !important; /* Jasny szary */
}

/* Rozjaśnienie wierszy w tabeli striped */
.table-striped > tbody > tr:nth-of-type(odd) > * {
    /* Domyślna wartość Bootstrapa to rgba(0, 0, 0, 0.05) */
    /* Zmieniamy na bardzo delikatny szary (1.0% czerni) */
    --bs-table-accent-bg: rgba(0, 0, 0, 0.010) !important;
    
    background-color: var(--bs-table-accent-bg) !important;
    box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg) !important;
}

/* Wymuszenie efektu hover na wszystkich wierszach (również tych paskowanych) */
/* Wymuszenie efektu hover na BARDZO JASNY NIEBIESKI */
.table-hover > tbody > tr:hover > * {
    /* Używamy Twojego koloru RGB (7, 122, 205) z przezroczystością 10% */
    /* Daje to efekt "Baby Blue" / "Ice Blue" */
    --bs-table-accent-bg: rgba(7, 122, 205, 0.05) !important;
    
    /* Jeśli wolisz jeszcze jaśniejszy, zmień 0.10 na 0.07 */
    
    background-color: var(--bs-table-accent-bg) !important;
    box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg) !important;
    
    /* Kolor tekstu - zostawiamy czarny dla kontrastu, 
       lub możemy dać bardzo ciemny niebieski: #002a4d */
    color: #000 !important; 
}


/* 1. Globalne wymuszenie koloru linii dla tej tabeli (naprawia czarne linie) */
.kv-grid-table {
    --bs-table-border-color: #dee2e6 !important; /* Jasny szary */
    border-color: #dee2e6 !important;
}

/* 2. Wymuszenie koloru bezpośrednio na komórkach (dla pewności) */
.kv-grid-table > :not(caption) > * > * {
    border-color: #dee2e6 !important;
    border-width: 1px; /* Upewniamy się, że linia jest cienka */
}

/* --- USUWANIE ZEWNĘTRZNYCH KRAWĘDZI TABELI (Dopasowanie do Panelu) --- */

/* 3. Usuwamy lewą krawędź (pierwsza kolumna) */
.kv-grid-table tr > th:first-child,
.kv-grid-table tr > td:first-child {
    border-left-width: 0 !important;
}

/* 4. Usuwamy prawą krawędź (ostatnia kolumna) */
.kv-grid-table tr > th:last-child,
.kv-grid-table tr > td:last-child {
    border-right-width: 0 !important;
}

/* 5. Usuwamy dolną krawędź (ostatni wiersz) */
.kv-grid-table tbody tr:last-child > td {
    border-bottom-width: 0 !important;
}

/* 6. Usuwamy dolną linię kontenera */
.kv-grid-table, .kv-grid-container {
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* --- FIX NA CZARNĄ DOLNĄ KRAWĘDŹ --- */

/* 1. Usunięcie ramki z samego elementu tabeli */
.kv-grid-table {
    border-bottom: 0 solid transparent !important;
}

/* 2. Usunięcie ramki z grupy body */
.kv-grid-table tbody {
    border-bottom: 0 solid transparent !important;
}

/* 3. Usunięcie ramki z komórek ostatniego wiersza */
.kv-grid-table tbody tr:last-child > td,
.kv-grid-table tbody tr:last-child > th {
    border-bottom: 0 solid transparent !important;
    border-bottom-color: transparent !important;
}

/* 4. Jeśli grid jest wewnątrz kontenera responsywnego */
.kv-grid-container {
    border-bottom: 0 solid transparent !important;
}

/* Zmniejszenie czcionki podsumowania (Showing 1-20...) w nagłówku panelu */
.kv-grid-panel .card-header .summary {
    font-size: 0.75rem !important; /* Znacznie mniejsza czcionka (ok. 12px) */
    font-weight: normal !important; /* Jeśli jest pogrubiona, to zdejmujemy */
    opacity: 0.9; /* Opcjonalnie: lekka przezroczystość, żeby nie konkurowała z tytułem */
    display: inline-block; /* Żeby ładnie reagowało na marginesy */
}

/* --- NOWOŚĆ: Tytuł tabeli (nazwa) - font weight 400 (bez pogrubienia) --- */

/* 1. Ustawiamy wagę dla samego kontenera nagłówka */
.kv-grid-panel .card-header {
    font-weight: 400 !important;
}

/* 2. Jeśli tytuł jest w znaczniku nagłówka (h1-h6), też zdejmujemy bolda */
.kv-grid-panel .card-header h1, 
.kv-grid-panel .card-header h2, 
.kv-grid-panel .card-header h3, 
.kv-grid-panel .card-header h4, 
.kv-grid-panel .card-header h5, 
.kv-grid-panel .card-header h6,
.kv-grid-panel .card-header .card-title {
    font-weight: 400 !important;
    margin-bottom: 0 !important; /* Przy okazji dbamy o marginesy */
}


/* Klasa tylko do szerokości (padding-top usunięty, bo jest w Inline Styles w layoutcie) */
.width-95-percent {
    width: 95%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;

    padding-top: 80px; /* Wysokość Twojego menu + odstęp */
}

/* Opcjonalnie: na małych ekranach (mobile) niech zajmuje 100% */
@media (max-width: 768px) {
    .width-95-percent {
        width: 100%;
    }
}

/* --- NOWOŚĆ: Nagłówki kolumn tabeli - font weight 400 (bez pogrubienia) --- */
.kv-grid-table thead th,
.kv-grid-table thead td,
.kv-grid-table thead th a {
    font-weight: 500 !important;
}

.vd-footer-toolbar {
  display: flex;
  gap: 0.5rem;   /* 0.5 / 1 / 1.5 rem według potrzeb */
}

/* ===== Modal form – pro layout ===== */
:root{
  --vd-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --vd-text: #0f172a;
  --vd-muted: #64748b;
  --vd-border: #c9c9c9;
  --vd-bg: #ffffff;
  --vd-soft: #f8fafc;

  --vd-danger: #dc2626;
  --vd-danger-bg: #fef2f2;
  --vd-primary: #2563eb;
}

/* Modal body spacing + font */
#activity-modal .modal-content{
  font-family: var(--vd-font);
  border: 1px solid var(--vd-border);
  border-radius: 16px;
  overflow: hidden;
  background: var(--vd-bg);
}

#activity-modal .modal-header{
  padding: 14px 18px;
  background: linear-gradient(180deg, var(--vd-soft), #fff);
  border-bottom: 1px solid var(--vd-border);
}

#activity-modal .modal-title{
  font-size: 16px;
  font-weight: 650;
  color: var(--vd-text);
  letter-spacing: .2px;
}

#activity-modal .modal-body{
  padding: 18px;
}

#activity-modal .modal-footer{
  padding: 14px 18px;
  border-top: 1px solid var(--vd-border);
  background: #fff;
}

/* Sections inside form */
.vd-form-card{
  border: 1px solid var(--vd-border);
  border-radius: 14px;
  padding: 14px;
  background: #fff;
  margin-bottom: 14px;
  box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

.vd-form-card__title{
  font-weight: 650;
  font-size: 14px;
  color: var(--vd-text);
  margin-bottom: 10px;
}

.vd-form-help{
  font-size: 12px;
  color: var(--vd-muted);
  margin-top: 6px;
}

/* Inputs */
#activity-modal .form-control,
#activity-modal .form-select{
  border-radius: 2px;
  border-color: var(--vd-border);
  box-shadow: none !important;
}

#activity-modal .form-control:focus,
#activity-modal .form-select:focus{
  border-color: rgba(37,99,235,.55);
  box-shadow: 0 0 0 .2rem rgba(37,99,235,.12) !important;
}

/* Labels */
#activity-modal label.form-label,
#activity-modal .form-label{
  font-size: 12px;
  font-weight: 650;
  color: var(--vd-text);
  margin-bottom: 6px;
}

/* Validation – czerwone pole + komunikat */
#activity-modal .is-invalid{
  border-color: var(--vd-danger) !important;
  background-image: none !important; /* czyściej */
}

#activity-modal .invalid-feedback,
#activity-modal .help-block,
#activity-modal .form-text.text-danger{
  display: block;
  color: var(--vd-danger);
  font-size: 12px;
  margin-top: 6px;
}

#activity-modal .has-error .form-control,
#activity-modal .has-error .form-select{
  border-color: var(--vd-danger) !important;
  background: var(--vd-danger-bg);
}

/* Footer buttons alignment */
.vd-footer-toolbar{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
}

/* Optional: sticky footer in tall forms */
#activity-modal .vd-modal-sticky-footer{
  position: sticky;
  bottom: 0;
  z-index: 2;
  background: #fff;
}

/* ===== Mniejszy, elegancki font tylko w modalu ===== */

#activity-modal .modal-content {
  font-size: 14px;   /* baza */
}

#activity-modal label,
#activity-modal .form-label {
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 4px;
  color: #334155;
}

#activity-modal .form-control,
#activity-modal .form-select {
  font-size: 13px;
  height: 34px;           /* niższe inputy */
  padding: 4px 10px;
}

#activity-modal textarea.form-control {
  height: auto;           /* textarea normalna */
  min-height: 80px;
}

#activity-modal .form-text,
#activity-modal .help-block,
#activity-modal .invalid-feedback {
  font-size: 11px;
}

/* tabele w szczegołach zamowienia */

.order-attachments-table-wrap{
    border:1px solid #d9e1ea;
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}

.order-attachments-table{
    width:100%;
    margin:0;
    border-collapse:collapse;
    border-spacing:0;
    background:#fff;
    font-size:14px;
}

.order-attachments-table thead th{
    background:#f5f7fa;
    color:#374151;
    font-weight:700;
    padding:10px 12px;
    border:1px solid #d9e1ea;
    vertical-align:middle;
    white-space:nowrap;
}

.order-attachments-table tbody td{
    padding:10px 12px;
    border:1px solid #e5e7eb;
    vertical-align:middle;
    background:#fff;
}

.order-attachments-table tbody tr:nth-child(even) td{
    background:#fafbfd;
}

.order-attachments-table tbody tr:hover td{
    background:#f3f6fb;
}

.order-attachment-thumb-cell{
    width:76px;
    text-align:center;
}

.order-attachment-icon-inline{
    width:56px;
    height:56px;
    border-radius:10px;
    border:1px solid #dbe3ee;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
    margin:0 auto;
    background:#f8fafc;
}

.order-attachment-icon-inline.pdf{
    color:#c62828;
    background:#fff5f5;
}

.order-attachment-icon-inline.generic{
    color:#6b7280;
    background:#f9fafb;
}

.order-attachment-badge{
    display:inline-block;
    padding:2px 8px;
    border-radius:999px;
    background:#eef4ff;
    color:#2b5dab;
    font-size:11px;
    font-weight:700;
    letter-spacing:.02em;
}

.order-attachment-name{
    font-weight:600;
    color:#111827;
    word-break:break-word;
}

.order-attachment-actions{
    white-space:nowrap;
}

.order-attachment-actions .btn{
    padding:4px 8px;
    font-size:12px;
}

.order-tab-table-wrap{
    border:1px solid #d9e1ea;
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}

.order-tab-table{
    width:100%;
    margin:0;
    border-collapse:collapse;
    border-spacing:0;
    background:#fff;
    font-size:14px;
}

.order-tab-table thead th{
    background:#f5f7fa;
    color:#374151;
    font-weight:700;
    padding:10px 12px;
    border:1px solid #d9e1ea;
    vertical-align:middle;
    white-space:nowrap;
}

.order-tab-table tbody td{
    padding:10px 12px;
    border:1px solid #e5e7eb;
    vertical-align:middle;
    background:#fff;
}

.order-tab-table tbody tr:nth-child(even) td{
    background:#fafbfd;
}

.order-tab-table tbody tr:hover td{
    background:#f3f6fb;
}

.order-tab-thumb-cell{
    width:76px;
    text-align:center;
}

.order-tab-thumb{
    display:inline-block;
    width:56px;
    height:56px;
    overflow:hidden;
    border-radius:10px;
    border:1px solid #dbe3ee;
    background:#fff;
}

.order-tab-thumb img{
    display:block;
    width:56px !important;
    height:56px !important;
    object-fit:cover !important;
    margin:0;
    padding:0;
    border:0;
}

.order-tab-thumb-empty{
    width:56px;
    height:56px;
    border-radius:10px;
    border:1px solid #dbe3ee;
    background:#f8fafc;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto;
    color:#94a3b8;
    font-size:12px;
}

.order-tab-name{
    font-weight:600;
    color:#111827;
    word-break:break-word;
}

.order-tab-sub{
    font-size:12px;
    color:#6b7280;
}

.order-tab-note-row td{
    background:#fcfcfd !important;
}

.order-tab-note-box{
    font-size:13px;
    color:#555;
    padding:6px 0;
    line-height:1.5;
}

.order-items-summary-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
}

@media (min-width: 992px){
    .order-items-summary-grid{
        grid-template-columns:1fr 1fr;
    }
}

.order-summary-panel{
    border:1px solid #d9e1ea;
    border-radius:10px;
    background:#fff;
    padding:14px 16px;
}

.order-summary-panel-title{
    font-weight:700;
    font-size:14px;
    color:#111827;
    margin-bottom:10px;
}

.order-summary-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:5px 0;
    font-size:14px;
}

.order-summary-row span{
    color:#4b5563;
}

.order-summary-row strong{
    color:#111827;
    font-weight:600;
    white-space:nowrap;
}

.order-summary-row-final{
    margin-top:8px;
    padding-top:8px;
    border-top:1px solid #e5e7eb;
}

.order-summary-row-final strong{
    font-size:16px;
}

.order-history-wrap{
    border:1px solid #d9e1ea;
    border-radius:10px;
    overflow:hidden;
    background:#fff;
}

.order-history-table{
    width:100%;
    margin:0;
    border-collapse:collapse;
    background:#fff;
    font-size:14px;
}

.order-history-table tbody td{
    padding:12px 14px;
    border-bottom:1px solid #e5e7eb;
    vertical-align:top;
    background:#fff;
}

.order-history-table tbody tr:last-child td{
    border-bottom:none;
}

.order-history-table tbody tr:nth-child(even) td{
    background:#fafbfd;
}

.order-history-table tbody tr:hover td{
    background:#f3f6fb;
}

.order-history-comment{
    font-size:13px;
    line-height:1.5;
    white-space:pre-wrap;
    color:#111827;
}

.order-history-comment.system{
    color:#6b7280;
    font-style:italic;
}

.order-history-comment.manual{
    color:#111827;
}

.order-history-comment-empty{
    color:#9ca3af;
}

.order-history-user{
    font-size:12px;
    color:#6b7280;
}

.order-history-empty{
    padding:14px;
    color:#6b7280;
    background:#fff;
    border:1px solid #d9e1ea;
    border-radius:10px;
}

.order-history-user-inline{
    font-size:12px;
    color:#6b7280;
}

.copy-icon{
    opacity:.6;
    transition:.15s;
}

.copy-icon:hover{
    opacity:1;
}

.vd-modal-state-error .fw-semibold {
  color: #b91c1c;
}

.vd-modal-state-success .fw-semibold {
  color: #15803d;
}



