:root{--bg:#dfe4ea;--panel:#edf1f5;--border:#c2cad5;--text:#1f2933;--muted:#667085;--accent:#1f6feb;--top:#172033;--side:#202b3d;--table-head:#d8dee8;--hover:#f5f7fa;--input:#fff;--ok:#0f766e;--warn:#b45309;--danger:#b42318;--shadow:0 14px 35px rgba(15,23,42,.28)}
body.theme-dark{--bg:#0b1220;--panel:#151f2e;--border:#334155;--text:#e5e7eb;--muted:#9ca3af;--accent:#60a5fa;--top:#020617;--side:#0b1220;--table-head:#243244;--hover:#1e293b;--input:#0f172a;--shadow:0 18px 42px rgba(0,0,0,.58)}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.top{height:42px;background:var(--top);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #0b1220;gap:12px}.brand{font-weight:700;white-space:nowrap}.version{font-size:12px;color:#cbd5e1;white-space:nowrap}.top-search{flex:1;max-width:520px}.top-search input{width:100%;border:1px solid #334155;border-radius:4px;background:#0f172a;color:white;padding:6px 8px}.theme-switch{white-space:nowrap;font-size:12px}.theme-link{color:#cbd5e1;border:1px solid #475569;padding:3px 6px;border-radius:4px;margin-left:3px}.theme-link.active{background:#e2e8f0;color:#0f172a;text-decoration:none}.layout{display:flex;min-height:calc(100vh - 42px)}.side{width:210px;background:var(--side);color:white;padding:10px 8px;flex-shrink:0}.side a{display:block;color:#e5e7eb;padding:8px 10px;border-radius:4px;margin-bottom:2px}.side a:hover{background:#334155;text-decoration:none}.main{flex:1;padding:12px;overflow:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:12px;margin-bottom:10px}.card.inner{margin:0 0 10px}.card h1,.card h2,.card h3{margin:0 0 10px}.toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.filters input,.filters select{max-width:180px}.grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px}.stat{display:block;background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:10px;color:var(--text)}.stat:hover{text-decoration:none;background:var(--hover)}.stat .n{font-size:24px;font-weight:700}.stat .l{color:var(--muted)}table{width:100%;border-collapse:collapse;background:var(--input)}th,td{border-bottom:1px solid var(--border);padding:6px 7px;text-align:left;vertical-align:top}th{background:var(--table-head);font-weight:700;position:sticky;top:0;z-index:1}tr:hover td{background:var(--hover)}.row-final td{background:rgba(148,163,184,.15);color:var(--muted)}.muted{color:var(--muted)}.badge{display:inline-block;padding:2px 7px;border-radius:999px;border:1px solid var(--border);font-size:12px;white-space:nowrap}.badge.status-green{background:#dcfce7;border-color:#86efac;color:#166534}.badge.status-blue{background:#dbeafe;border-color:#93c5fd;color:#1e40af}.badge.status-orange{background:#ffedd5;border-color:#fdba74;color:#9a3412}.badge.status-red{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.badge.status-black{background:#111827;border-color:#111827;color:#fff}.badge.status-default{background:#eef2f7;border-color:#cbd5e1;color:#334155}.btn{display:inline-block;background:#f8fafc;border:1px solid #cbd5e1;color:#111827;border-radius:4px;padding:5px 8px;cursor:pointer;font-size:13px}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.btn.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px}.form-grid.compact{grid-template-columns:repeat(3,minmax(160px,1fr));gap:8px}.field label{display:block;font-weight:700;margin-bottom:4px}.field input,.field select,.field textarea,.toolbar input,.toolbar select{border:1px solid var(--border);border-radius:4px;padding:6px;font-size:13px;background:var(--input);color:var(--text)}.field input,.field select,.field textarea{width:100%}.field textarea{min-height:70px}.full{grid-column:1/-1}.tech-section{border:1px solid var(--border);border-radius:5px;padding:10px;background:rgba(148,163,184,.12)}.flash{padding:8px 10px;border-radius:4px;margin-bottom:8px;border:1px solid}.flash.success{background:#ecfdf5;border-color:#99f6e4;color:#134e4a}.flash.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pre{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;border-radius:5px;padding:12px;font-family:Consolas,monospace;font-size:12px}.pre-light{white-space:pre-wrap;background:var(--input);border:1px solid var(--border);border-radius:4px;padding:8px}.small{font-size:12px}.nowrap{white-space:nowrap}.checkcol{width:32px}.scrollbox{max-height:260px;overflow:auto;border:1px solid var(--border)}form{margin:0}.print-body{background:white}.print-actions{padding:10px}.print-page{width:190mm;min-height:270mm;margin:0 auto;background:white;color:#111;padding:15mm;border:1px solid #ddd}.print-page h1{text-align:center;margin-bottom:0}.print-page h2{text-align:center;margin-top:4px}.protocol-meta td:first-child{font-weight:700;width:40%}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:45px}.sign-line{border-bottom:1px solid #111;height:45px}.userbox{font-size:12px;line-height:1.2;text-align:right;min-width:150px;color:#cbd5e1}.userbox b{color:#fff}.main-login{max-width:620px;margin:0 auto;width:100%}.login-wrap{display:flex;justify-content:center;align-items:flex-start;padding-top:32px}.login-card{width:420px;max-width:100%}td form{display:inline;margin:0}.compact-table th{width:190px}.drag-handle{cursor:grab;color:var(--muted);width:28px;text-align:center}.dragging{opacity:.55}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:5000;display:flex;align-items:flex-start;justify-content:center;padding:46px 22px 22px}.modal-backdrop[hidden]{display:none}.modal-window{position:relative;width:min(1180px,96vw);height:min(850px,88vh);background:var(--panel);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(148,163,184,.45)}.modal-window iframe{width:100%;height:100%;border:0;background:var(--bg)}.modal-x,.floating-close{position:fixed;right:calc(2vw + 8px);top:54px;z-index:6000;width:42px;height:42px;border:0;border-radius:999px;background:#e2e8f0;color:#0f172a;font-weight:700;font-size:20px;box-shadow:0 6px 20px rgba(15,23,42,.25);cursor:pointer}.modal-x:hover,.floating-close:hover{background:#cbd5e1}.modal-open{overflow:hidden}.modal-page{background:var(--bg)}.modal-page .layout{display:block;min-height:auto}.modal-page .main{padding:14px 18px 20px}.modal-page .card{box-shadow:none}
@media print{.print-actions{display:none}.print-page{border:0;margin:0;width:auto;min-height:auto;padding:0}th{position:static}}@media(max-width:900px){.layout{display:block}.side{width:auto}.grid,.form-grid,.two{grid-template-columns:1fr}.top-search{display:none}.modal-window{width:98vw;height:92vh}.modal-backdrop{padding:24px 4px}}

/* v0.3.0 - pobieranie danych sprzętowych */
.detect-box{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:8px 0 12px;
  padding:8px 10px;
  background:#e1e7ee;
  border:1px solid #c4ceda;
  border-radius:6px;
}
.theme-dark .detect-box{ background:#1f2b39; border-color:#324052; }
.detect-box .inline{ display:inline-flex; align-items:center; gap:5px; font-weight:500; }
.detect-box input[type="checkbox"]{ width:auto; }


/* v0.3.1 - pop-up na prawie pełną wysokość ekranu */
.modal-backdrop{
  align-items:flex-start;
  padding:16px 18px;
}
.modal-window{
  width:min(1260px,97vw);
  height:calc(100vh - 32px);
  max-height:calc(100vh - 32px);
}
.modal-x,.floating-close{
  top:22px;
  right:28px;
}
@media(max-width:900px){
  .modal-backdrop{padding:8px 4px;}
  .modal-window{width:99vw;height:calc(100vh - 16px);max-height:calc(100vh - 16px);}
  .modal-x,.floating-close{top:12px;right:12px;}
}

/* v0.3.2 - poprawka pobierania danych dla typu Notebook */

/* v0.3.3 - miniaturki składu grup i wygodniejsze dodawanie do grup */
.mini-icons{display:inline-flex;gap:3px;align-items:center;margin-left:8px;vertical-align:middle;flex-wrap:wrap}.group-summary-icons{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:8px}.mini-icon{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 5px;border-radius:5px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-size:13px;line-height:1;font-weight:700}.mini-icon.type-computer{background:#e0f2fe;border-color:#7dd3fc}.mini-icon.type-notebook{background:#dbeafe;border-color:#93c5fd}.mini-icon.type-monitor{background:#ecfeff;border-color:#67e8f9}.mini-icon.type-printer{background:#fef3c7;border-color:#fcd34d}.mini-icon.type-server{background:#ede9fe;border-color:#c4b5fd}.mini-icon.type-network{background:#dcfce7;border-color:#86efac}.mini-icon.type-ups{background:#ffedd5;border-color:#fdba74}.mini-icon.type-software{background:#fce7f3;border-color:#f9a8d4}.mini-icon.type-other,.mini-icon.type-more{background:#e5e7eb;border-color:#cbd5e1}.group-name{font-weight:700}.theme-dark .mini-icon{background:#1e293b;color:#e5e7eb;border-color:#475569}.theme-dark .mini-icon.type-computer,.theme-dark .mini-icon.type-notebook{background:#1e3a8a}.theme-dark .mini-icon.type-monitor{background:#164e63}.theme-dark .mini-icon.type-printer{background:#78350f}.theme-dark .mini-icon.type-server{background:#4c1d95}.theme-dark .mini-icon.type-network{background:#14532d}.theme-dark .mini-icon.type-ups{background:#7c2d12}.theme-dark .mini-icon.type-software{background:#831843}

/* v0.3.4 - mocniejsze kolory przycisków akcji */
.btn.primary{background:#2563eb;border-color:#1d4ed8;color:#fff}.btn.primary:hover{background:#1d4ed8;text-decoration:none}
.btn.warn{background:#f59e0b;border-color:#d97706;color:#111827}.btn.warn:hover{background:#d97706;text-decoration:none}
.btn.danger{background:#dc2626;border-color:#b91c1c;color:#fff}.btn.danger:hover{background:#b91c1c;text-decoration:none}
.btn.success{background:#16a34a;border-color:#15803d;color:#fff}.btn.success:hover{background:#15803d;text-decoration:none}
.theme-dark .btn{background:#334155;border-color:#475569;color:#e5e7eb}.theme-dark .btn.primary{background:#2563eb;border-color:#1d4ed8;color:#fff}.theme-dark .btn.warn{background:#f59e0b;border-color:#d97706;color:#111827}.theme-dark .btn.danger{background:#dc2626;border-color:#b91c1c;color:#fff}.theme-dark .btn.success{background:#16a34a;border-color:#15803d;color:#fff}

/* v0.3.6 - parametry lokalizacji i kolorowe segmenty lokalizacji */
.location-badges{display:inline-flex;gap:3px;align-items:center;flex-wrap:wrap;vertical-align:middle}
.loc-badge{display:inline-block;border-radius:5px;border:1px solid #cbd5e1;padding:2px 6px;line-height:1.3;font-size:12px;font-weight:700;white-space:nowrap;color:#0f172a}
.loc-city{background:#fef3c7;border-color:#fcd34d}
.loc-floor{background:#dbeafe;border-color:#93c5fd}
.loc-room{background:#dcfce7;border-color:#86efac}
.loc-name{background:#fce7f3;border-color:#f9a8d4}
.theme-dark .loc-badge{color:#e5e7eb;border-color:#475569}
.theme-dark .loc-city{background:#78350f}
.theme-dark .loc-floor{background:#1e3a8a}
.theme-dark .loc-room{background:#14532d}
.theme-dark .loc-name{background:#831843}
.param-line{display:flex;gap:10px;align-items:flex-start;background:var(--input);border:1px solid var(--border);border-radius:6px;padding:12px;max-width:780px}
.param-line input{margin-top:3px}

/* v0.3.7 - czytelniejsze tabele, menu Zmiany na dole, edycja placówek */
table{border-collapse:collapse;border:1px solid var(--border)}
th,td{border:1px solid var(--border)}
tbody tr:nth-child(even) td{background:rgba(148,163,184,.06)}
tr:hover td{background:var(--hover)}
.side{display:flex;flex-direction:column;min-height:calc(100vh - 42px)}
.menu-main{flex:1}.menu-bottom{margin-top:auto;border-top:1px solid rgba(148,163,184,.22);padding-top:8px}
.facility-table input{width:100%;border:1px solid var(--border);border-radius:4px;padding:5px;background:var(--input);color:var(--text)}
.facility-table td form{display:inline-block;margin:1px 2px 1px 0}.facility-table .nowrap{white-space:nowrap;min-width:250px}
@media(max-width:900px){.side{min-height:auto}.menu-bottom{margin-top:8px}.facility-table .nowrap{white-space:normal}}


/* v0.3.9 - filtr miejscowości w sprzęcie i kolorowe przyciski szybkiego filtra */
.btn.status-btn{font-weight:700;border-width:1px}
.btn.status-btn.status-green{background:#16a34a;border-color:#15803d;color:#fff}
.btn.status-btn.status-blue{background:#2563eb;border-color:#1d4ed8;color:#fff}
.btn.status-btn.status-orange{background:#f59e0b;border-color:#d97706;color:#111827}
.btn.status-btn.status-red{background:#dc2626;border-color:#b91c1c;color:#fff}
.btn.status-btn.status-black{background:#111827;border-color:#030712;color:#fff}
.btn.status-btn.status-default{background:#64748b;border-color:#475569;color:#fff}
.btn.status-btn:hover{filter:brightness(.92);text-decoration:none}

/* v0.3.13 - placówki: edycja po przycisku Edytuj i bezpieczniejsza zmiana pliku bazy */
.facility-table tr.editing-row td{background:rgba(37,99,235,.08)}
.facility-table .actions-cell{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.facility-table .actions-cell form{display:inline-block;margin:0}
.facility-table code{background:rgba(148,163,184,.16);border:1px solid var(--border);border-radius:4px;padding:2px 5px;white-space:nowrap}
.theme-dark .facility-table code{background:#0f172a}


/* v0.3.14 - checkboxy w ramkach oraz przycisk przeniesienia oprogramowania */
.checkbox-card,
.field > label.small:has(input[type="checkbox"]),
.detect-box label.inline:has(input[type="checkbox"]) {
  display:flex;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:6px 9px;
  border:1px solid var(--border);
  border-radius:5px;
  background:var(--input);
  font-weight:700;
  width:100%;
}
.checkbox-card input[type="checkbox"],
.field > label.small:has(input[type="checkbox"]) input[type="checkbox"],
.detect-box label.inline:has(input[type="checkbox"]) input[type="checkbox"] {
  width:15px;
  height:15px;
  margin:0;
  flex:0 0 auto;
}
.checkbox-card:hover,
.field > label.small:has(input[type="checkbox"]):hover,
.detect-box label.inline:has(input[type="checkbox"]):hover {
  background:var(--hover);
}
.checkbox-card input:checked + span,
.field > label.small:has(input[type="checkbox"]:checked),
.detect-box label.inline:has(input[type="checkbox"]:checked) {
  border-color:#93c5fd;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.25);
}
.theme-dark .checkbox-card,
.theme-dark .field > label.small:has(input[type="checkbox"]),
.theme-dark .detect-box label.inline:has(input[type="checkbox"]) {
  background:#0f172a;
}
.software-move-note{background:rgba(37,99,235,.08);border:1px solid var(--border);border-radius:6px;padding:8px;margin-top:8px}

/* v0.3.15 - dopracowanie wyglądu checkboxów i przycisków pobierania danych */
.checkbox-card,
.field > label.small:has(input[type="checkbox"]) {
  align-items:center;
  font-weight:400;
  line-height:1.25;
}
.checkbox-card span,
.field > label.small:has(input[type="checkbox"]) span {
  font-weight:400;
}
.checkbox-card input[type="checkbox"],
.field > label.small:has(input[type="checkbox"]) input[type="checkbox"] {
  align-self:center;
}
.plain-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:30px;
  padding:0 4px;
  font-weight:400;
  line-height:1.2;
  color:var(--text);
  width:auto;
}
.plain-check input[type="checkbox"]{
  width:15px;
  height:15px;
  margin:0;
  flex:0 0 auto;
}
.detect-box,
.detect-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.detect-box .btn.primary,
.detect-row .btn.primary{
  font-weight:700;
}
.detect-box .muted,
.detect-row .muted{
  line-height:1.3;
}
.theme-dark .plain-check{color:var(--text)}


/* v0.3.16 - ujednolicenie checkboxów i kolorów przycisków */
/* Checkboxy w ramkach: opis normalny, odstęp i pionowe wyśrodkowanie */
.checkbox-card,
.field > label.small:has(input[type="checkbox"]) {
  display:flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:6px 9px;
  font-weight:400 !important;
  line-height:1.25;
}
.checkbox-card span,
.field > label.small:has(input[type="checkbox"]) span {
  font-weight:400 !important;
  margin-left:2px;
}
.checkbox-card input[type="checkbox"],
.field > label.small:has(input[type="checkbox"]) input[type="checkbox"] {
  margin:0;
  align-self:center;
  flex:0 0 auto;
}
/* Checkbox przy pobieraniu danych: bez ramki, zawsze obok przycisku */
.detect-box,
.detect-row,
.detect-strip {
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  flex-wrap:wrap;
}
.detect-box .plain-check,
.detect-row .plain-check,
.detect-strip .plain-check,
.detect-box label.inline:has(input[type="checkbox"]),
.detect-row label.inline:has(input[type="checkbox"]),
.detect-strip label.inline:has(input[type="checkbox"]) {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:6px !important;
  width:auto !important;
  min-height:30px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  font-weight:400 !important;
  line-height:1.2 !important;
  white-space:nowrap;
}
.detect-box .plain-check span,
.detect-row .plain-check span,
.detect-strip .plain-check span,
.detect-box label.inline:has(input[type="checkbox"]) span,
.detect-row label.inline:has(input[type="checkbox"]) span,
.detect-strip label.inline:has(input[type="checkbox"]) span {
  font-weight:400 !important;
  margin-left:2px !important;
}
.detect-box .plain-check input[type="checkbox"],
.detect-row .plain-check input[type="checkbox"],
.detect-strip .plain-check input[type="checkbox"],
.detect-box label.inline:has(input[type="checkbox"]) input[type="checkbox"],
.detect-row label.inline:has(input[type="checkbox"]) input[type="checkbox"],
.detect-strip label.inline:has(input[type="checkbox"]) input[type="checkbox"] {
  width:15px !important;
  height:15px !important;
  margin:0 !important;
  flex:0 0 auto;
}
.detect-box .muted,
.detect-row .muted,
.detect-strip .muted {
  flex-basis:100%;
}
.detect-box .btn,
.detect-row .btn,
.detect-strip .btn {
  flex:0 0 auto;
}
/* Jednolita kolorystyka akcji w całym systemie */
.btn.action-add,
.btn.action-detect,
.btn.action-view { background:#2563eb; border-color:#1d4ed8; color:#fff; font-weight:700; }
.btn.action-save,
.btn.action-backup { background:#16a34a; border-color:#15803d; color:#fff; font-weight:700; }
.btn.action-edit { background:#f59e0b; border-color:#d97706; color:#111827; font-weight:700; }
.btn.action-move { background:#7c3aed; border-color:#6d28d9; color:#fff; font-weight:700; }
.btn.action-delete,
.btn.action-danger { background:#dc2626; border-color:#b91c1c; color:#fff; font-weight:700; }
.btn.action-cancel,
.btn.action-clear { background:#e5e7eb; border-color:#cbd5e1; color:#111827; }
.btn.action-add:hover,
.btn.action-detect:hover,
.btn.action-view:hover,
.btn.action-save:hover,
.btn.action-backup:hover,
.btn.action-edit:hover,
.btn.action-move:hover,
.btn.action-delete:hover,
.btn.action-danger:hover,
.btn.action-cancel:hover,
.btn.action-clear:hover { filter:brightness(.92); text-decoration:none; }
.theme-dark .btn.action-add,
.theme-dark .btn.action-detect,
.theme-dark .btn.action-view { background:#2563eb; border-color:#1d4ed8; color:#fff; }
.theme-dark .btn.action-save,
.theme-dark .btn.action-backup { background:#16a34a; border-color:#15803d; color:#fff; }
.theme-dark .btn.action-edit { background:#f59e0b; border-color:#d97706; color:#111827; }
.theme-dark .btn.action-move { background:#7c3aed; border-color:#6d28d9; color:#fff; }
.theme-dark .btn.action-delete,
.theme-dark .btn.action-danger { background:#dc2626; border-color:#b91c1c; color:#fff; }
.theme-dark .btn.action-cancel,
.theme-dark .btn.action-clear { background:#334155; border-color:#475569; color:#e5e7eb; }

/* v0.3.17 - podsumowanie operacji, linki do protokołów i puste zestawy */
.operation-result .protocol-created{
  background:rgba(22,163,74,.10);
  border:1px solid rgba(22,163,74,.35);
  border-radius:6px;
  padding:10px;
  margin:10px 0;
}
.protocol-number{
  display:inline-block;
  margin-left:6px;
  padding:3px 8px;
  border-radius:5px;
  background:#dcfce7;
  border:1px solid #86efac;
  color:#166534;
  font-weight:700;
}
.empty-groups-box{
  background:rgba(245,158,11,.10);
  border:1px solid rgba(245,158,11,.38);
  border-radius:6px;
  padding:10px;
  margin:10px 0;
}
.compact-check{
  width:auto;
  min-width:260px;
  margin-right:4px;
}
.theme-dark .protocol-created{background:rgba(22,163,74,.16)}
.theme-dark .protocol-number{background:#14532d;border-color:#22c55e;color:#dcfce7}
.theme-dark .empty-groups-box{background:rgba(245,158,11,.14)}

/* v0.3.18 - poprawki zestawów, modali i wydruku protokołów */
.inline-form{display:inline-block;margin:0 2px 0 0;vertical-align:middle}

/* Ekrany modalne renderowane po POST z _modal=1 nie mogą pokazywać pełnego układu w iframe. */
.modal-page .layout{display:block;min-height:auto}
.modal-page .main{padding:12px;overflow:visible}
.modal-page .card{max-width:none}
.modal-page .floating-close{position:fixed;top:12px;right:14px;z-index:10000}

/* Wydruk protokołu ma zachowywać czytelną skalę zbliżoną do podglądu. */
.print-body{background:white;color:#111;font-size:14px;line-height:1.35}
.print-page{width:190mm;min-height:270mm;margin:0 auto;background:white;color:#111;padding:15mm;border:1px solid #ddd}
.print-page table{width:100%;border-collapse:collapse;background:white;color:#111;font-size:13px}
.print-page th,.print-page td{border:1px solid #b9c2cf;padding:7px 8px;text-align:left;vertical-align:top;background:white;color:#111}
.print-page th{background:#d8dee8;font-weight:700;position:static}
.print-page h1{font-size:24px;text-align:center;margin:0 0 2px}
.print-page h2{font-size:18px;text-align:center;margin:0 0 18px}
.print-page h3{font-size:16px;margin:18px 0 8px}.protocol-meta td:first-child{font-weight:700;width:40%}
.signatures{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:45px}.sign-line{border-bottom:1px solid #111;height:45px}
@page{size:A4 portrait;margin:12mm}
@media print{
  html,body{margin:0!important;padding:0!important;background:white!important;color:#111!important;font-size:14px!important;line-height:1.35!important}
  .print-actions{display:none!important}
  .print-page{width:100%!important;max-width:none!important;min-height:auto!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;background:white!important;color:#111!important}
  .print-page h1{font-size:24px!important;margin:0 0 2px!important;text-align:center!important}
  .print-page h2{font-size:18px!important;margin:0 0 18px!important;text-align:center!important}
  .print-page h3{font-size:16px!important;margin:18px 0 8px!important}
  .print-page table{width:100%!important;border-collapse:collapse!important;background:white!important;color:#111!important;font-size:13px!important;page-break-inside:auto!important}
  .print-page th,.print-page td{border:1px solid #b9c2cf!important;padding:7px 8px!important;text-align:left!important;vertical-align:top!important;background:white!important;color:#111!important}
  .print-page th{background:#d8dee8!important;font-weight:700!important;position:static!important}
  .protocol-meta td:first-child{font-weight:700!important;width:40%!important}
  .signatures{display:grid!important;grid-template-columns:1fr 1fr!important;gap:40px!important;margin-top:45px!important;break-inside:avoid!important}
  .sign-line{border-bottom:1px solid #111!important;height:45px!important}
  .muted{color:#475569!important}
}


/* v0.3.19 - większy i czytelniejszy wydruk protokołów */
.print-body{
  background:white;
  color:#111;
  font-size:16px;
  line-height:1.42;
}
.print-page{
  width:190mm;
  min-height:270mm;
  margin:0 auto;
  background:white;
  color:#111;
  padding:14mm 15mm;
  border:1.5px solid #9ca3af;
}
.print-page h1{
  font-size:30px;
  line-height:1.15;
  text-align:center;
  margin:0 0 4px;
}
.print-page h2{
  font-size:22px;
  line-height:1.15;
  text-align:center;
  margin:0 0 26px;
}
.print-page h3{
  font-size:19px;
  margin:24px 0 10px;
}
.print-page table{
  width:100%;
  border-collapse:collapse;
  background:white;
  color:#111;
  font-size:15px;
}
.print-page th,.print-page td{
  border:1.5px solid #7b8493;
  padding:8px 10px;
  text-align:left;
  vertical-align:top;
  background:white;
  color:#111;
}
.print-page th{
  background:#d8dee8;
  font-weight:700;
  position:static;
}
.print-page .protocol-meta{
  margin-top:8px;
}
.print-page .protocol-meta td:first-child{
  font-weight:700;
  width:38%;
}
.print-page .signatures{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px;
  margin-top:55px;
  font-size:15px;
}
.print-page .sign-line{
  border-bottom:1.5px solid #111;
  height:55px;
}
@page{size:A4 portrait;margin:10mm}
@media print{
  html,body{
    margin:0!important;
    padding:0!important;
    background:white!important;
    color:#111!important;
    font-size:12.5pt!important;
    line-height:1.42!important;
    -webkit-print-color-adjust:exact!important;
    print-color-adjust:exact!important;
  }
  .print-actions{display:none!important}
  .print-page{
    width:auto!important;
    max-width:none!important;
    min-height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    background:white!important;
    color:#111!important;
    font-size:12.5pt!important;
  }
  .print-page h1{
    font-size:22pt!important;
    line-height:1.15!important;
    margin:0 0 4pt!important;
    text-align:center!important;
  }
  .print-page h2{
    font-size:16pt!important;
    line-height:1.15!important;
    margin:0 0 22pt!important;
    text-align:center!important;
  }
  .print-page h3{
    font-size:14pt!important;
    margin:22pt 0 9pt!important;
  }
  .print-page table{
    width:100%!important;
    border-collapse:collapse!important;
    background:white!important;
    color:#111!important;
    font-size:11.8pt!important;
    page-break-inside:auto!important;
  }
  .print-page th,.print-page td{
    border:1.2pt solid #6b7280!important;
    padding:7pt 8pt!important;
    text-align:left!important;
    vertical-align:top!important;
    background:white!important;
    color:#111!important;
  }
  .print-page th{
    background:#d8dee8!important;
    font-weight:700!important;
    position:static!important;
  }
  .print-page .protocol-meta{
    margin-top:4pt!important;
  }
  .print-page .protocol-meta td:first-child{
    font-weight:700!important;
    width:38%!important;
  }
  .print-page .signatures{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:45pt!important;
    margin-top:55pt!important;
    break-inside:avoid!important;
    font-size:11.8pt!important;
  }
  .print-page .sign-line{
    border-bottom:1.2pt solid #111!important;
    height:55pt!important;
  }
  .print-page .muted{color:#475569!important}
}


/* v0.3.21 - lekkie zmniejszenie skali wydruku protokołów po korekcie ustawień skalowania przeglądarki */
.print-body{
  font-size:14.5px;
  line-height:1.38;
}
.print-page{
  padding:13mm 15mm;
}
.print-page h1{
  font-size:27px;
  margin:0 0 4px;
}
.print-page h2{
  font-size:20px;
  margin:0 0 22px;
}
.print-page h3{
  font-size:17px;
  margin:20px 0 9px;
}
.print-page table{
  font-size:14px;
}
.print-page th,.print-page td{
  border:1.25px solid #7b8493;
  padding:7px 8px;
}
.print-page .signatures{
  margin-top:48px;
  font-size:14px;
}
.print-page .sign-line{
  height:48px;
}
@media print{
  html,body{
    font-size:11.2pt!important;
    line-height:1.38!important;
  }
  .print-page{
    font-size:11.2pt!important;
  }
  .print-page h1{
    font-size:19.5pt!important;
    margin:0 0 4pt!important;
  }
  .print-page h2{
    font-size:14.5pt!important;
    margin:0 0 18pt!important;
  }
  .print-page h3{
    font-size:12.8pt!important;
    margin:18pt 0 8pt!important;
  }
  .print-page table{
    font-size:10.6pt!important;
  }
  .print-page th,.print-page td{
    border:1.05pt solid #6b7280!important;
    padding:6pt 7pt!important;
  }
  .print-page .signatures{
    gap:40pt!important;
    margin-top:46pt!important;
    font-size:10.6pt!important;
  }
  .print-page .sign-line{
    height:48pt!important;
  }
}

/* v0.3.24 - stale lewe menu, przewijanie tylko prawego obszaru danych */
html,body{
  height:100%;
}
body:not(.modal-page):not(.print-body){
  overflow:hidden;
}
body:not(.modal-page):not(.print-body) .layout{
  height:calc(100vh - 42px);
  min-height:calc(100vh - 42px);
  overflow:hidden;
}
body:not(.modal-page):not(.print-body) .side{
  position:sticky;
  top:0;
  height:calc(100vh - 42px);
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
}
body:not(.modal-page):not(.print-body) .side .menu-main{
  flex:1 1 auto;
}
body:not(.modal-page):not(.print-body) .side .menu-bottom{
  margin-top:auto;
  padding-top:8px;
  border-top:1px solid rgba(148,163,184,.16);
}
body:not(.modal-page):not(.print-body) .main{
  height:calc(100vh - 42px);
  overflow:auto;
}
.modal-page{
  overflow:auto;
}
.modal-page .layout{
  height:auto;
  min-height:auto;
  overflow:visible;
}
.modal-page .main{
  height:auto;
  overflow:visible;
}
@media print{
  html,body{height:auto!important;overflow:visible!important;}
  .layout,.main{height:auto!important;overflow:visible!important;}
}


/* v0.3.25 - mocno zablokowane lewe menu + przewijanie tylko prawej części */
:root{--side-width:210px;--top-height:42px;}
html,body{height:100%;}
body:not(.modal-page):not(.print-body){overflow:hidden;}
body:not(.modal-page):not(.print-body) .top{
  position:fixed;
  left:0;
  right:0;
  top:0;
  height:var(--top-height);
  z-index:1000;
}
body:not(.modal-page):not(.print-body) .layout{
  display:block;
  min-height:0;
  height:auto;
  overflow:visible;
  padding-top:var(--top-height);
}
body:not(.modal-page):not(.print-body) .side{
  position:fixed;
  left:0;
  top:var(--top-height);
  bottom:0;
  width:var(--side-width);
  height:auto;
  overflow-y:auto;
  overflow-x:hidden;
  z-index:900;
  display:flex;
  flex-direction:column;
}
body:not(.modal-page):not(.print-body) .side .menu-main{flex:1 1 auto;}
body:not(.modal-page):not(.print-body) .side .menu-bottom{
  margin-top:auto;
  padding-top:8px;
  border-top:1px solid rgba(148,163,184,.16);
}
body:not(.modal-page):not(.print-body) .main{
  margin-left:var(--side-width);
  height:calc(100vh - var(--top-height));
  overflow:auto;
  padding:12px;
}
body:not(.modal-page):not(.print-body) .main.main-login{
  margin-left:auto;
  margin-right:auto;
  height:calc(100vh - var(--top-height));
}
.modal-page .layout{display:block;padding-top:0;height:auto;min-height:auto;overflow:visible;}
.modal-page .main{margin-left:0;height:auto;overflow:visible;}
@media(max-width:900px){
  body:not(.modal-page):not(.print-body){overflow:auto;}
  body:not(.modal-page):not(.print-body) .top{position:static;height:auto;}
  body:not(.modal-page):not(.print-body) .layout{padding-top:0;display:block;}
  body:not(.modal-page):not(.print-body) .side{position:static;width:auto;height:auto;display:block;}
  body:not(.modal-page):not(.print-body) .main{margin-left:0;height:auto;overflow:visible;}
}
@media print{
  body:not(.modal-page):not(.print-body) .top,
  body:not(.modal-page):not(.print-body) .side{position:static!important;}
  body:not(.modal-page):not(.print-body) .main{margin-left:0!important;height:auto!important;overflow:visible!important;}
}


/* v0.3.27 - statusy w filtrze sprzętu jako checkboxy w jednej linii */
.asset-filter-form{margin:0;}
.asset-filter-form .filter-main-row{margin-bottom:8px;}
.status-filter-row{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  width:100%;
  padding:7px 8px;
  border:1px solid var(--border);
  border-radius:5px;
  background:rgba(148,163,184,.10);
}
.status-filter-title{
  font-weight:700;
  margin-right:4px;
  white-space:nowrap;
}
.status-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:26px;
  padding:3px 8px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--input);
  color:var(--text);
  font-weight:400!important;
  line-height:1.1;
  white-space:nowrap;
  cursor:pointer;
}
.status-check input[type="checkbox"]{
  width:14px;
  height:14px;
  margin:0;
  flex:0 0 auto;
}
.status-check span{font-weight:400!important;margin-left:1px;}
.status-check:has(input:checked){box-shadow:inset 0 0 0 1px rgba(37,99,235,.28);}
.status-check-green:has(input:checked){background:#dcfce7;border-color:#86efac;color:#166534;}
.status-check-blue:has(input:checked){background:#dbeafe;border-color:#93c5fd;color:#1e40af;}
.status-check-orange:has(input:checked){background:#ffedd5;border-color:#fdba74;color:#9a3412;}
.status-check-red:has(input:checked){background:#fee2e2;border-color:#fca5a5;color:#991b1b;}
.status-check-black:has(input:checked){background:#111827;border-color:#111827;color:#fff;}
.status-check-default:has(input:checked){background:#eef2f7;border-color:#cbd5e1;color:#334155;}
.theme-dark .status-filter-row{background:rgba(15,23,42,.50);}
.theme-dark .status-check{background:#0f172a;color:#e5e7eb;}
.theme-dark .status-check-green:has(input:checked){background:#14532d;border-color:#22c55e;color:#dcfce7;}
.theme-dark .status-check-blue:has(input:checked){background:#1e3a8a;border-color:#60a5fa;color:#dbeafe;}
.theme-dark .status-check-orange:has(input:checked){background:#7c2d12;border-color:#fb923c;color:#ffedd5;}
.theme-dark .status-check-red:has(input:checked){background:#7f1d1d;border-color:#f87171;color:#fee2e2;}
.theme-dark .status-check-black:has(input:checked){background:#020617;border-color:#64748b;color:#fff;}

/* v0.3.28 - odświeżona strona logowania */
body:not(.modal-page):not(.print-body) .main.main-login{
  margin-left:0;
  margin-right:0;
  width:100%;
  max-width:none;
  height:calc(100vh - var(--top-height));
  overflow:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.login-page{
  width:100%;
  display:flex;
  justify-content:center;
}
.login-shell{
  width:min(980px,100%);
  display:grid;
  grid-template-columns:minmax(320px,.95fr) minmax(360px,1fr);
  gap:0;
  border:1px solid rgba(148,163,184,.35);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 22px 55px rgba(15,23,42,.30);
  background:var(--panel);
}
.login-hero-panel{
  position:relative;
  padding:38px 34px;
  color:#fff;
  background:
    radial-gradient(circle at 20% 20%, rgba(96,165,250,.38), transparent 32%),
    radial-gradient(circle at 85% 18%, rgba(34,197,94,.26), transparent 28%),
    linear-gradient(135deg,#0f172a 0%,#1e3a8a 58%,#0f766e 100%);
  min-height:430px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.login-hero-panel:after{
  content:"";
  position:absolute;
  inset:auto -90px -90px auto;
  width:230px;
  height:230px;
  border-radius:50%;
  border:34px solid rgba(255,255,255,.10);
}
.login-logo-mark{
  width:112px;
  height:112px;
  border-radius:24px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 16px 38px rgba(0,0,0,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:24px;
  backdrop-filter:blur(6px);
}
.login-logo-mark svg{width:92px;height:92px;display:block;}
.login-hero-panel h1{
  margin:0 0 12px;
  font-size:30px;
  letter-spacing:.2px;
}
.login-hero-panel p{
  margin:0;
  max-width:410px;
  color:#dbeafe;
  line-height:1.45;
  font-size:15px;
}
.login-feature-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:28px;
}
.login-feature-list span{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.20);
  color:#f8fafc;
  font-weight:700;
  font-size:12px;
}
.login-form-panel{
  padding:42px 42px 34px;
  background:var(--panel);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.login-title-row h2{
  margin:0 0 6px;
  font-size:28px;
}
.login-title-row .muted{
  margin:0 0 24px;
  font-size:14px;
}
.login-form{
  display:grid;
  gap:15px;
}
.login-form .field label{
  font-size:13px;
  margin-bottom:6px;
}
.login-form .field input,
.login-form .field select{
  min-height:40px;
  font-size:14px;
  border-radius:7px;
  padding:8px 10px;
}
.login-submit{
  width:100%;
  min-height:42px;
  font-size:15px;
  font-weight:700;
  border-radius:7px;
  margin-top:4px;
}
.login-hint{
  margin-top:18px;
  padding:12px 14px;
  border-radius:8px;
  background:rgba(96,165,250,.10);
  border:1px solid rgba(96,165,250,.22);
  color:var(--muted);
  font-size:13px;
}
.theme-dark .login-shell{border-color:#334155;box-shadow:0 24px 65px rgba(0,0,0,.58)}
.theme-dark .login-form-panel{background:#111827}
.theme-dark .login-hint{background:rgba(96,165,250,.13);border-color:#334155;color:#cbd5e1}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login{padding:14px;align-items:flex-start;}
  .login-shell{grid-template-columns:1fr;border-radius:12px;}
  .login-hero-panel{min-height:auto;padding:26px 24px;}
  .login-logo-mark{width:82px;height:82px;border-radius:18px;margin-bottom:16px;}
  .login-logo-mark svg{width:68px;height:68px;}
  .login-hero-panel h1{font-size:25px;}
  .login-form-panel{padding:26px 24px;}
}

/* v0.3.29 - delikatne unowocześnienie wyglądu aplikacji bez zmian funkcjonalnych */
:root{
  --side-width:232px;
  --top-height:54px;
  --radius:12px;
  --radius-sm:8px;
  --card-shadow:0 10px 28px rgba(15,23,42,.08);
  --card-shadow-hover:0 16px 38px rgba(15,23,42,.13);
  --soft-blue:#2563eb;
  --soft-green:#16a34a;
  --soft-purple:#7c3aed;
  --soft-orange:#f59e0b;
}
body{font-family:"Segoe UI",Arial,Helvetica,sans-serif;font-size:13px;letter-spacing:.01em;background:#e9eef4;}
body.theme-dark{background:#0b1220;}
.app-topbar{height:var(--top-height)!important;padding:0 18px;background:linear-gradient(90deg,#0b1220 0%,#111827 55%,#162136 100%);box-shadow:0 8px 24px rgba(2,6,23,.24);border-bottom:1px solid rgba(148,163,184,.18)}
.modern-brand{display:flex;align-items:center;gap:10px;min-width:220px;}
.brand-mark{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(135deg,#2563eb,#0f766e);box-shadow:0 8px 20px rgba(37,99,235,.28)}
.brand-mark svg{width:24px;height:24px;fill:#dbeafe}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-text b{font-size:14px;color:#fff}.brand-text small{font-size:12px;color:#cbd5e1;margin-top:3px;font-weight:700}.top-search{max-width:620px}.top-search input{min-height:34px;border-radius:9px;border:1px solid rgba(148,163,184,.34);background:rgba(15,23,42,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);font-size:13px}.top-search input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.14)}.theme-switch{display:flex;gap:5px;align-items:center;padding:3px;border:1px solid rgba(148,163,184,.24);border-radius:9px;background:rgba(15,23,42,.32)}.theme-link{padding:5px 9px;border-radius:7px;color:#cbd5e1}.theme-link.active{background:#2563eb;color:#fff;text-decoration:none;box-shadow:0 6px 16px rgba(37,99,235,.28)}.modern-userbox{display:flex!important;align-items:center;gap:9px;text-align:left;line-height:1.15}.user-avatar{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#243244;color:#fff;font-weight:800;border:1px solid rgba(148,163,184,.25)}.modern-userbox small{color:#cbd5e1}.version{padding-left:2px;color:#94a3b8!important}
body:not(.modal-page):not(.print-body) .layout{padding-top:var(--top-height)!important;background:transparent;}
body:not(.modal-page):not(.print-body) .side{top:var(--top-height)!important;width:var(--side-width)!important;background:linear-gradient(180deg,#111827 0%,#152238 100%);border-right:1px solid rgba(148,163,184,.16);padding:12px 10px 14px;box-shadow:8px 0 24px rgba(15,23,42,.10)}
body:not(.modal-page):not(.print-body) .main{margin-left:var(--side-width)!important;height:calc(100vh - var(--top-height))!important;padding:18px 20px 24px!important;background:linear-gradient(180deg,#edf2f7 0%,#e5ebf2 100%)}
body.theme-dark:not(.modal-page):not(.print-body) .main{background:linear-gradient(180deg,#0f172a 0%,#0b1220 100%)}
.side-head{padding:4px 8px 10px}.side-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#94a3b8;font-weight:800}.side a{display:flex!important;align-items:center;gap:11px;margin:3px 0;padding:10px 11px!important;border-radius:10px;color:#dbeafe!important;font-weight:700;border:1px solid transparent;transition:background .16s ease, color .16s ease, transform .16s ease, border-color .16s ease}.side a:hover{background:rgba(37,99,235,.16);border-color:rgba(96,165,250,.20);text-decoration:none;transform:translateX(2px)}.side a.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff!important;box-shadow:0 10px 22px rgba(37,99,235,.30)}.menu-icon{width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:#bfdbfe}.side a.active .menu-icon{color:#fff}.menu-bottom{border-top:1px solid rgba(148,163,184,.18)!important;padding-top:10px!important}.main h1{font-size:25px;letter-spacing:.01em;margin:0 0 12px}.main h2{font-size:17px;letter-spacing:.01em}.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.page-title-row h1{margin:0 0 5px}.page-title-row .muted{margin:0}.page-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}.card,.stat,.flash{border-radius:var(--radius)!important;border:1px solid rgba(148,163,184,.35)!important;box-shadow:var(--card-shadow);background:rgba(255,255,255,.76)!important;backdrop-filter:blur(6px)}.theme-dark .card,.theme-dark .stat,.theme-dark .flash{background:rgba(17,24,39,.84)!important;border-color:#334155!important;box-shadow:0 14px 35px rgba(0,0,0,.34)}.card{padding:15px 16px;margin-bottom:15px}.modern-card{overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.card-head h2{margin:0}.card-head a{font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;margin-bottom:14px}.modern-stat{display:flex!important;align-items:center;gap:14px;min-height:78px;padding:16px 18px!important;text-decoration:none;color:var(--text)!important;transition:transform .16s ease, box-shadow .16s ease}.modern-stat:hover{transform:translateY(-2px);box-shadow:var(--card-shadow-hover);text-decoration:none}.modern-stat .n{font-size:25px;font-weight:900;line-height:1}.modern-stat .l{margin-top:4px;color:var(--muted);font-weight:700}.stat-icon{width:42px;height:42px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:900;box-shadow:0 10px 22px rgba(15,23,42,.16)}.stat-blue .stat-icon{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.stat-green .stat-icon{background:linear-gradient(135deg,#16a34a,#0f766e)}.stat-purple .stat-icon{background:linear-gradient(135deg,#7c3aed,#4f46e5)}.stat-orange .stat-icon{background:linear-gradient(135deg,#f59e0b,#ea580c)}.dashboard-panels{display:grid;grid-template-columns:minmax(380px,1.05fr) minmax(320px,.95fr);gap:14px}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-action{display:flex;align-items:center;gap:12px;min-height:72px;border:1px solid var(--border);border-radius:11px;padding:12px;background:rgba(248,250,252,.72);color:var(--text);transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease}.quick-action:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.10);border-color:#93c5fd;text-decoration:none}.quick-action small{display:block;margin-top:3px;color:var(--muted);font-size:12px}.qa-icon{width:38px;height:38px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:900}.qa-icon.blue{background:#2563eb}.qa-icon.green{background:#16a34a}.qa-icon.violet{background:#7c3aed}.qa-icon.orange{background:#f59e0b;color:#111827}.theme-dark .quick-action{background:rgba(15,23,42,.72);border-color:#334155}.modern-table,table{border-radius:10px;overflow:hidden;border:1px solid rgba(148,163,184,.45)!important;background:var(--panel)}th{background:linear-gradient(180deg,#dce3ed,#d2d9e5)!important;color:#1f2937;font-weight:800}td,th{padding:8px 9px!important;border-color:rgba(148,163,184,.42)!important}tbody tr:nth-child(even) td{background:rgba(255,255,255,.38)!important}tr:hover td{background:#f8fafc!important}.theme-dark th{background:linear-gradient(180deg,#243244,#1f2937)!important;color:#e5e7eb}.theme-dark tbody tr:nth-child(even) td{background:rgba(15,23,42,.35)!important}.theme-dark tr:hover td{background:#1f2937!important}.btn{border-radius:7px!important;font-weight:700;padding:6px 10px;box-shadow:0 1px 0 rgba(255,255,255,.18) inset}.badge{border-radius:999px;padding:3px 8px}.loc-badge{border-radius:7px}.modal-window{border-radius:16px;box-shadow:0 28px 75px rgba(2,6,23,.46)}.modal-x,.floating-close{box-shadow:0 12px 28px rgba(15,23,42,.28)}
@media(max-width:1120px){.stats-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.dashboard-panels{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}}
@media(max-width:900px){body:not(.modal-page):not(.print-body) .main{margin-left:0!important;padding:12px!important}.modern-brand{min-width:auto}.brand-text small{display:none}.stats-grid{grid-template-columns:1fr}.page-title-row{display:block}.page-actions{margin-top:10px;flex-wrap:wrap}.quick-actions{grid-template-columns:1fr}.side a{transform:none!important}}
@media print{.stat,.card{box-shadow:none!important;backdrop-filter:none!important}}

/* v0.3.31 - dostęp operatorów do placówek i drugi krok logowania */
.facility-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.facility-checks.compact{gap:6px;max-width:520px}
.facility-check{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--border);border-radius:9px;background:rgba(248,250,252,.78);font-weight:600;line-height:1.15}
.facility-check input{margin:0}
.checkbox-inline{display:inline-flex;align-items:center;gap:6px;font-weight:400;line-height:1.2}
.checkbox-inline input{margin:0}
.badge-soft{display:inline-flex;align-items:center;margin:2px 4px 2px 0;padding:3px 7px;border-radius:999px;background:#e0f2fe;border:1px solid #bae6fd;color:#0f172a;font-size:12px;font-weight:700}
.theme-dark .facility-check{background:rgba(15,23,42,.72);border-color:#334155;color:#e5e7eb}
.theme-dark .badge-soft{background:#1e3a8a;border-color:#2563eb;color:#dbeafe}
.login-verified-box{padding:12px 14px;border:1px solid rgba(34,197,94,.25);background:rgba(34,197,94,.09);border-radius:10px;margin-bottom:16px}
.login-facility-list{display:grid;gap:9px;margin-top:6px}
.login-facility-option{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:11px 12px;background:rgba(248,250,252,.8);cursor:pointer;transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease}
.login-facility-option:hover{border-color:#60a5fa;box-shadow:0 8px 20px rgba(37,99,235,.12);transform:translateY(-1px)}
.login-facility-option input{margin:0}
.login-facility-option span{display:flex;flex-direction:column;gap:2px}
.login-facility-option small{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.login-actions-row{display:flex;gap:8px;align-items:center;margin-top:2px}
.login-actions-row .login-submit{width:auto;min-width:180px;margin-top:0}
.theme-dark .login-verified-box{background:rgba(34,197,94,.10);border-color:#166534}
.theme-dark .login-facility-option{background:rgba(15,23,42,.72);border-color:#334155}

/* v0.3.32 - kompaktowy wybór placówki i poprawa checkboxów operatorów */
.login-facility-list{
  display:grid;
  gap:7px;
  margin-top:6px;
  max-height:252px;
  overflow:auto;
  padding-right:4px;
}
.login-facility-option.login-facility-option-compact{
  min-height:58px;
  display:grid;
  grid-template-columns:20px 34px 1fr;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  transform:none;
}
.login-facility-option.login-facility-option-compact:hover{
  transform:none;
}
.login-facility-option input[type="radio"]{
  width:16px!important;
  height:16px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  justify-self:center;
  accent-color:#2563eb;
}
.facility-choice-icon{
  width:30px;
  height:30px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#dbeafe;
  border:1px solid #bfdbfe;
  font-size:18px;
  line-height:1;
}
.login-facility-option:nth-child(even) .facility-choice-icon{
  background:#dcfce7;
  border-color:#bbf7d0;
}
.facility-choice-text{
  min-width:0;
  display:flex!important;
  flex-direction:column;
  gap:1px!important;
}
.facility-choice-text b{
  font-size:14px;
  line-height:1.2;
}
.facility-choice-text small{
  font-size:11px!important;
  letter-spacing:.05em;
}
.login-actions-row{
  margin-top:12px;
}
.login-verified-box{
  margin-bottom:12px;
}
.theme-dark .facility-choice-icon{
  background:#1e3a8a;
  border-color:#2563eb;
}
.theme-dark .login-facility-option:nth-child(even) .facility-choice-icon{
  background:#14532d;
  border-color:#16a34a;
}
.operator-form{
  display:grid;
  gap:9px;
}
.operator-form .field label{
  margin-bottom:4px;
}
.operator-admin-row{
  margin:2px 0 8px;
}
.operator-form .access-field{
  margin-top:4px;
  padding-top:8px;
  border-top:1px solid rgba(148,163,184,.35);
}
.operator-form .access-field > label{
  margin-bottom:7px;
}
.facility-checks{
  align-items:center;
}
.facility-check{
  min-height:36px;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-direction:row!important;
  gap:7px!important;
  padding:7px 10px;
  line-height:1.2;
  white-space:nowrap;
}
.facility-check input[type="checkbox"]{
  width:14px!important;
  height:14px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  flex:0 0 auto!important;
  accent-color:#2563eb;
}
.facility-check span{
  display:inline!important;
  font-weight:700;
  line-height:1.2;
}
.facility-checks.compact .facility-check{
  min-height:32px;
  padding:5px 8px;
}
@media(max-height:760px){
  .login-facility-list{max-height:210px;}
  .login-form-panel{padding-top:28px;padding-bottom:26px;}
  .login-hero-panel{min-height:390px;}
}


/* v0.3.33 - komunikaty logowania nad panelem logowania */
body:not(.modal-page):not(.print-body) .main.main-login{
  position:relative;
  flex-direction:column;
}
body:not(.modal-page):not(.print-body) .main.main-login > .flash{
  position:fixed;
  top:18px;
  left:50%;
  transform:translateX(-50%);
  width:min(980px,calc(100vw - 56px));
  max-width:980px;
  margin:0;
  z-index:1200;
  box-shadow:0 12px 34px rgba(15,23,42,.16);
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login > .flash{
    top:10px;
    width:calc(100vw - 28px);
  }
}


/* v0.3.34 - poprawione centrowanie strony logowania i komunikatu */
body:not(.modal-page):not(.print-body) .layout:has(.main-login){
  display:block!important;
  padding-top:var(--top-height)!important;
}
body:not(.modal-page):not(.print-body) .main.main-login{
  margin-left:0!important;
  margin-right:0!important;
  width:100vw!important;
  max-width:none!important;
  height:calc(100vh - var(--top-height))!important;
  min-height:calc(100vh - var(--top-height))!important;
  padding:32px 28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
body:not(.modal-page):not(.print-body) .main.main-login > .flash{
  top:calc(var(--top-height) + 14px)!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(980px,calc(100vw - 56px))!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-page{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  margin:0 auto!important;
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login{
    padding:18px 14px!important;
    align-items:flex-start!important;
  }
  body:not(.modal-page):not(.print-body) .main.main-login > .flash{
    top:calc(var(--top-height) + 10px)!important;
    width:calc(100vw - 28px)!important;
  }
}

/* v0.3.35 - produkcyjny wariant F strony logowania z logo CWI */
.login-hero-panel{
  padding-top:34px;
  padding-bottom:34px;
  align-items:flex-start;
}
.login-cwi-logo{
  position:relative;
  z-index:1;
  width:240px;
  max-width:82%;
  margin:0 0 22px;
  padding:8px 10px;
  border-radius:22px;
  background:radial-gradient(circle at 50% 50%, rgba(96,165,250,.22), rgba(255,255,255,.04) 58%, rgba(255,255,255,0) 72%);
  display:flex;
  align-items:center;
  justify-content:center;
}
.login-cwi-logo img{
  display:block;
  width:100%;
  height:auto;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.24));
}
.login-logo-mark{
  position:relative;
  z-index:1;
  width:86px;
  height:86px;
  border-radius:20px;
  margin-bottom:22px;
}
.login-logo-mark svg{
  width:68px;
  height:68px;
}
.login-hero-panel h1,
.login-hero-panel p,
.login-feature-list{
  position:relative;
  z-index:1;
}
.login-hero-panel h1{
  margin-top:0;
}
.login-feature-list{
  margin-top:26px;
}
.login-form-panel{
  justify-content:center;
}
.login-hint{
  display:none!important;
}
@media(max-width:860px){
  .login-cwi-logo{width:190px;margin-bottom:16px;}
  .login-logo-mark{width:76px;height:76px;margin-bottom:16px;}
  .login-logo-mark svg{width:60px;height:60px;}
}


/* v0.3.36 - poprawione odwzorowanie wariantu F: logo CWI + ikonka komputerka */
.login-hero-panel{
  align-items:center!important;
  text-align:center!important;
  justify-content:center!important;
  padding:38px 34px!important;
  overflow:hidden;
}
.login-hero-panel:before{
  content:"";
  position:absolute;
  inset:auto auto 18px 50%;
  width:300px;
  height:300px;
  transform:translateX(-12%);
  border-radius:50%;
  background:radial-gradient(circle, rgba(37,99,235,.20) 0%, rgba(37,99,235,.10) 38%, transparent 70%);
  pointer-events:none;
  z-index:0;
}
.login-hero-panel:after{
  inset:auto -110px -110px auto!important;
  width:260px!important;
  height:260px!important;
  border-width:28px!important;
  opacity:.9;
}
.login-cwi-logo{
  position:relative!important;
  z-index:1!important;
  width:230px!important;
  max-width:72%!important;
  height:auto!important;
  margin:0 auto 24px!important;
  padding:15px 24px!important;
  border-radius:999px!important;
  background:
    radial-gradient(circle at 50% 45%, rgba(96,165,250,.24), rgba(15,23,42,.22) 62%, rgba(15,23,42,.04) 100%)!important;
  border:1px solid rgba(96,165,250,.26)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset, 0 18px 44px rgba(2,6,23,.20)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-cwi-logo img{
  width:100%!important;
  max-height:68px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 12px 20px rgba(0,0,0,.28))!important;
}
.login-logo-mark{
  position:relative!important;
  z-index:1!important;
  width:86px!important;
  height:86px!important;
  border-radius:22px!important;
  margin:0 auto 22px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.20)!important;
}
.login-logo-mark svg{
  width:68px!important;
  height:68px!important;
}
.login-hero-panel h1,
.login-hero-panel p,
.login-feature-list{
  position:relative!important;
  z-index:1!important;
  text-align:center!important;
}
.login-hero-panel h1{
  margin:0 0 12px!important;
  font-size:29px!important;
}
.login-hero-panel p{
  margin:0 auto!important;
  max-width:410px!important;
}
.login-feature-list{
  justify-content:center!important;
  margin-top:28px!important;
}
.login-feature-list span{
  justify-content:center;
}
.login-form-panel{
  justify-content:center!important;
}
.login-hint{
  display:none!important;
}
@media(max-width:860px){
  .login-cwi-logo{width:200px!important;padding:12px 20px!important;margin-bottom:18px!important;}
  .login-cwi-logo img{max-height:58px!important;}
  .login-logo-mark{width:76px!important;height:76px!important;margin-bottom:17px!important;}
  .login-logo-mark svg{width:60px!important;height:60px!important;}
  .login-hero-panel h1{font-size:25px!important;}
}


/* v0.3.37 - ekran logowania wierniej odwzorowany wg wybranego wariantu F */
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  width:min(1040px, calc(100vw - 56px))!important;
  grid-template-columns:440px minmax(420px, 1fr)!important;
  min-height:430px!important;
  border-radius:14px!important;
  overflow:hidden!important;
}
.login-hero-panel{
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:34px 36px!important;
  min-height:430px!important;
  background:
    radial-gradient(circle at 50% 14%, rgba(37,99,235,.30) 0%, rgba(37,99,235,.16) 22%, rgba(37,99,235,0) 46%),
    radial-gradient(circle at 83% 82%, rgba(20,184,166,.32) 0%, rgba(20,184,166,.14) 34%, rgba(20,184,166,0) 66%),
    radial-gradient(circle at 18% 10%, rgba(59,130,246,.20), transparent 36%),
    linear-gradient(135deg,#08152d 0%,#102e67 58%,#0d6364 100%)!important;
}
.login-hero-panel:before{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:28px!important;
  width:245px!important;
  height:145px!important;
  transform:translateX(-50%)!important;
  border-radius:50%!important;
  background:radial-gradient(circle, rgba(96,165,250,.24) 0%, rgba(96,165,250,.10) 42%, transparent 72%)!important;
  border:1px solid rgba(96,165,250,.10)!important;
  z-index:0!important;
  pointer-events:none!important;
}
.login-hero-panel:after{
  content:""!important;
  position:absolute!important;
  right:-88px!important;
  bottom:-96px!important;
  width:245px!important;
  height:245px!important;
  border-radius:50%!important;
  border:28px solid rgba(255,255,255,.09)!important;
  background:transparent!important;
  z-index:0!important;
}
.login-cwi-logo{
  width:185px!important;
  max-width:68%!important;
  height:72px!important;
  margin:0 auto 14px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  z-index:1!important;
}
.login-cwi-logo img{
  width:100%!important;
  max-width:185px!important;
  max-height:70px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 10px 20px rgba(0,0,0,.30))!important;
}
.login-logo-mark{
  width:74px!important;
  height:74px!important;
  border-radius:18px!important;
  margin:0 auto 20px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.20)!important;
  box-shadow:0 14px 32px rgba(0,0,0,.22)!important;
  position:relative!important;
  z-index:1!important;
}
.login-logo-mark svg{
  width:58px!important;
  height:58px!important;
}
.login-hero-panel h1{
  font-size:27px!important;
  line-height:1.1!important;
  margin:0 0 12px!important;
  position:relative!important;
  z-index:1!important;
}
.login-hero-panel p{
  font-size:14px!important;
  line-height:1.45!important;
  max-width:360px!important;
  margin:0 auto!important;
  color:#e0f2fe!important;
  position:relative!important;
  z-index:1!important;
}
.login-feature-list{
  justify-content:center!important;
  margin-top:26px!important;
  gap:8px!important;
  position:relative!important;
  z-index:1!important;
}
.login-feature-list span{
  min-height:30px!important;
  padding:7px 12px!important;
  font-size:12px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.20)!important;
}
.login-form-panel{
  padding:42px 52px!important;
  justify-content:center!important;
}
.login-title-row h2{
  font-size:20px!important;
  margin-bottom:8px!important;
}
.login-title-row .muted{
  margin-bottom:24px!important;
  line-height:1.45!important;
}
.login-form .field input,
.login-form .field select{
  min-height:42px!important;
  border-radius:7px!important;
}
.login-submit{
  min-height:44px!important;
  border-radius:7px!important;
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
    width:100%!important;
    grid-template-columns:1fr!important;
  }
  .login-hero-panel{min-height:340px!important;padding:28px 24px!important;}
  .login-cwi-logo{width:160px!important;height:60px!important;margin-bottom:12px!important;}
  .login-cwi-logo img{max-width:160px!important;max-height:58px!important;}
  .login-logo-mark{width:66px!important;height:66px!important;margin-bottom:16px!important;}
  .login-logo-mark svg{width:52px!important;height:52px!important;}
  .login-hero-panel h1{font-size:24px!important;}
  .login-form-panel{padding:28px 24px!important;}
}


/* v0.3.39 - powrót do wariantu logowania z samą ikonką komputerka */
.login-cwi-logo{display:none!important;}
.login-shell{width:min(980px,100%)!important;}
.login-hero-panel{
  align-items:flex-start!important;
  text-align:left!important;
  justify-content:center!important;
  padding:44px 44px!important;
  min-height:430px!important;
  overflow:hidden!important;
}
.login-hero-panel:before{display:none!important;}
.login-hero-panel:after{
  content:""!important;
  position:absolute!important;
  inset:auto -110px -110px auto!important;
  width:260px!important;
  height:260px!important;
  border-radius:50%!important;
  border:34px solid rgba(255,255,255,.10)!important;
  background:transparent!important;
  pointer-events:none!important;
  z-index:0!important;
}
.login-logo-mark{
  position:relative!important;
  z-index:1!important;
  width:112px!important;
  height:112px!important;
  border-radius:24px!important;
  margin:0 0 24px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.22)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  backdrop-filter:blur(6px)!important;
}
.login-logo-mark svg{width:92px!important;height:92px!important;display:block!important;}
.login-hero-panel h1{
  position:relative!important;
  z-index:1!important;
  margin:0 0 12px!important;
  font-size:30px!important;
  letter-spacing:.2px!important;
}
.login-hero-panel p{
  position:relative!important;
  z-index:1!important;
  margin:0!important;
  max-width:410px!important;
  color:#dbeafe!important;
  line-height:1.45!important;
  font-size:15px!important;
}
.login-feature-list{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin-top:28px!important;
}
.login-form-panel{justify-content:center!important;}
@media(max-width:860px){
  .login-hero-panel{align-items:flex-start!important;text-align:left!important;padding:28px 24px!important;}
  .login-logo-mark{width:82px!important;height:82px!important;border-radius:18px!important;margin-bottom:16px!important;}
  .login-logo-mark svg{width:68px!important;height:68px!important;}
}


/* v0.3.40 - dokładne przywrócenie lewego panelu logowania: wyrównanie do lewej i jedna linia kafelków */
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  width:min(1040px, calc(100vw - 56px))!important;
  grid-template-columns:440px minmax(420px, 1fr)!important;
}
.login-cwi-logo{display:none!important;}
.login-hero-panel{
  align-items:flex-start!important;
  justify-content:flex-start!important;
  text-align:left!important;
  padding:52px 36px 34px 36px!important;
  min-height:430px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 18% 18%, rgba(96,165,250,.34), transparent 34%),
    radial-gradient(circle at 88% 80%, rgba(20,184,166,.42), transparent 48%),
    linear-gradient(135deg,#0b1f55 0%,#203f96 58%,#08706a 100%)!important;
}
.login-hero-panel:before{display:none!important;}
.login-hero-panel:after{
  content:""!important;
  position:absolute!important;
  right:-118px!important;
  bottom:-118px!important;
  width:285px!important;
  height:285px!important;
  border-radius:50%!important;
  border:34px solid rgba(255,255,255,.14)!important;
  background:transparent!important;
  pointer-events:none!important;
  z-index:0!important;
}
.login-logo-mark{
  position:relative!important;
  z-index:1!important;
  width:112px!important;
  height:112px!important;
  border-radius:24px!important;
  margin:0 0 28px 0!important;
  background:rgba(255,255,255,.16)!important;
  border:1px solid rgba(255,255,255,.30)!important;
  box-shadow:0 16px 38px rgba(0,0,0,.20)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  backdrop-filter:blur(6px)!important;
}
.login-logo-mark svg{width:92px!important;height:92px!important;display:block!important;}
.login-hero-panel h1{
  position:relative!important;
  z-index:1!important;
  margin:0 0 14px 0!important;
  font-size:30px!important;
  line-height:1.12!important;
  letter-spacing:.2px!important;
  text-align:left!important;
}
.login-hero-panel p{
  position:relative!important;
  z-index:1!important;
  margin:0!important;
  max-width:410px!important;
  color:#f1f5f9!important;
  line-height:1.48!important;
  font-size:15px!important;
  text-align:left!important;
}
.login-feature-list{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:flex-start!important;
  align-items:center!important;
  gap:8px!important;
  margin:30px 0 0 0!important;
  text-align:left!important;
  width:100%!important;
}
.login-feature-list span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  min-height:31px!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.18)!important;
  border:1px solid rgba(255,255,255,.28)!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
    grid-template-columns:1fr!important;
  }
  .login-hero-panel{
    align-items:flex-start!important;
    justify-content:flex-start!important;
    text-align:left!important;
    padding:34px 24px!important;
    min-height:350px!important;
  }
  .login-logo-mark{width:82px!important;height:82px!important;border-radius:18px!important;margin-bottom:20px!important;}
  .login-logo-mark svg{width:68px!important;height:68px!important;}
  .login-hero-panel h1{font-size:25px!important;text-align:left!important;}
  .login-hero-panel p{text-align:left!important;}
  .login-feature-list{flex-wrap:wrap!important;justify-content:flex-start!important;}
}


/* v0.3.41 - dokładne przywrócenie układu lewego panelu logowania z wariantu bazowego */
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  width:min(1040px, calc(100vw - 70px))!important;
  grid-template-columns:440px minmax(430px, 1fr)!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel{
  min-height:430px!important;
  padding:52px 42px 42px 42px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  text-align:left!important;
  background:
    radial-gradient(circle at 94% 90%, rgba(20,184,166,.42) 0%, rgba(20,184,166,.25) 28%, transparent 56%),
    radial-gradient(circle at 88% 88%, transparent 0 38%, rgba(255,255,255,.12) 39% 52%, transparent 53%),
    linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 38%,#0f766e 100%)!important;
  overflow:hidden!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel:after{
  content:""!important;
  position:absolute!important;
  right:-82px!important;
  bottom:-92px!important;
  width:250px!important;
  height:250px!important;
  border-radius:50%!important;
  border:34px solid rgba(255,255,255,.12)!important;
  pointer-events:none!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-logo-mark{
  width:112px!important;
  height:112px!important;
  border-radius:24px!important;
  margin:0 0 32px 0!important;
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:0 14px 32px rgba(0,0,0,.18)!important;
  align-self:flex-start!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-logo-mark svg{
  width:86px!important;
  height:86px!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel h1{
  margin:0 0 14px 0!important;
  font-size:26px!important;
  line-height:1.12!important;
  font-weight:800!important;
  letter-spacing:.2px!important;
  text-align:left!important;
  color:#fff!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel p{
  margin:0!important;
  max-width:380px!important;
  font-size:15.5px!important;
  line-height:1.45!important;
  text-align:left!important;
  color:#ffffff!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  width:100%!important;
  margin:28px 0 0 0!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:32px!important;
  padding:0 13px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.17)!important;
  border:1px solid rgba(255,255,255,.26)!important;
  color:#fff!important;
  font-size:12.5px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-form-panel{
  padding:58px 54px!important;
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
    width:calc(100vw - 28px)!important;
    grid-template-columns:1fr!important;
  }
  body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel{
    min-height:350px!important;
    padding:34px 28px!important;
  }
  body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list{
    flex-wrap:wrap!important;
  }
  body:not(.modal-page):not(.print-body) .main.main-login .login-form-panel{
    padding:28px!important;
  }
}


/* v0.3.42 - korekta proporcji lewego panelu logowania zgodnie ze wzorem */
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  width:min(1080px, calc(100vw - 70px))!important;
  grid-template-columns:520px minmax(420px, 1fr)!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel{
  padding:52px 46px 42px 46px!important;
  align-items:flex-start!important;
  text-align:left!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-logo-mark{
  margin-left:0!important;
  margin-right:0!important;
  align-self:flex-start!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel h1,
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel p{
  text-align:left!important;
  align-self:flex-start!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-hero-panel p{
  max-width:415px!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list{
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
  max-width:440px!important;
  overflow:visible!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list span{
  font-weight:500!important;
  font-size:12.5px!important;
  padding:0 11px!important;
  height:32px!important;
  flex:0 0 auto!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-form-panel{
  padding:58px 46px!important;
}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
    width:calc(100vw - 28px)!important;
    grid-template-columns:1fr!important;
  }
  body:not(.modal-page):not(.print-body) .main.main-login .login-feature-list{
    flex-wrap:wrap!important;
    max-width:none!important;
  }
}

/* v0.3.43 - korekty układu, podglądu lokalizacji i sekcji faktury */
body:not(.modal-page):not(.print-body) .main.main-login .login-shell{
  width:min(980px, calc(100vw - 70px))!important;
  grid-template-columns:520px 460px!important;
}
body:not(.modal-page):not(.print-body) .main.main-login .login-form-panel{
  padding:54px 44px!important;
}
.loc-eye{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  margin-left:6px;
  border-radius:7px;
  border:1px solid rgba(37,99,235,.28);
  background:rgba(37,99,235,.08);
  color:#1d4ed8;
  text-decoration:none!important;
  vertical-align:middle;
  font-size:13px;
}
.loc-eye:hover{background:#dbeafe;text-decoration:none!important;}
.theme-dark .loc-eye{background:rgba(96,165,250,.16);border-color:#334155;color:#bfdbfe;}
.table-auto{
  width:auto!important;
  max-width:100%!important;
  table-layout:auto!important;
}
.table-auto th,
.table-auto td{
  width:auto!important;
  white-space:nowrap;
}
.table-auto th{
  white-space:normal;
  line-height:1.2;
  max-width:150px;
}
.locations-table td:nth-child(4),
.locations-table th:nth-child(4){white-space:normal;max-width:260px;}
.invoice-section{
  border:1px solid var(--border);
  border-radius:5px;
  padding:10px;
  background:rgba(59,130,246,.06);
}
.section-title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.section-title-row h3{margin:0;}
.btn.action-import{background:#0ea5e9;border-color:#0284c7;color:#fff;}
.btn.action-import:hover{background:#0284c7;text-decoration:none;}
@media(max-width:860px){
  body:not(.modal-page):not(.print-body) .main.main-login .login-shell{grid-template-columns:1fr!important;width:calc(100vw - 28px)!important;}
}


/* v0.3.44 - oko lokalizacji w tabeli Sprzęt i poprawki importu KSeF */
.asset-location-cell{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.asset-location-cell .asset-location-badges{
  flex:1 1 auto;
  min-width:0;
}
.asset-location-cell .loc-eye{
  flex:0 0 auto;
  margin-left:auto!important;
}
.loc-eye{
  width:auto!important;
  height:auto!important;
  min-width:22px;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0 2px!important;
  border-radius:0!important;
  font-size:18px!important;
  line-height:1!important;
  opacity:.82;
}
.loc-eye:hover{
  background:transparent!important;
  opacity:1;
  transform:scale(1.08);
}
.theme-dark .loc-eye{
  background:transparent!important;
  border:0!important;
}

/* v0.3.45 - wzór protokołu przekazania technicznego */
.protocol-transfer-print h1{
  font-size:20px;
  margin:0 0 4px;
  text-align:center;
  font-weight:700;
}
.protocol-transfer-print h2{
  font-size:18px;
  margin:0 0 28px;
  text-align:center;
  font-weight:700;
}
.protocol-transfer-print h3{
  font-size:14px;
  margin:22px 0 8px;
  font-weight:700;
}
.protocol-transfer-print table{
  border-collapse:collapse;
  background:#fff;
  color:#111;
}
.protocol-transfer-print th,
.protocol-transfer-print td{
  border:1.2px solid #111;
  padding:6px 8px;
  font-size:13px;
  vertical-align:middle;
  color:#111;
  background:#fff;
}
.protocol-transfer-print th{
  background:#d9d9d9;
  text-align:center;
  font-weight:700;
}
.protocol-transfer-meta{
  width:92%;
  margin:0 auto 18px;
}
.protocol-transfer-meta td:first-child{
  width:34%;
  font-weight:700;
}
.protocol-transfer-equipment th:nth-child(1),
.protocol-transfer-equipment td:nth-child(1),
.protocol-transfer-invoice th:nth-child(1),
.protocol-transfer-invoice td:nth-child(1){
  width:54px;
  text-align:center;
}
.protocol-transfer-equipment th:nth-child(2){width:125px;}
.protocol-transfer-equipment th:nth-child(3){width:150px;}
.protocol-transfer-equipment th:nth-child(5){width:145px;}
.protocol-transfer-invoice th:nth-child(2){width:250px;}
.protocol-transfer-invoice th:nth-child(3){width:150px;}
.protocol-transfer-invoice th:nth-child(4){width:130px;}
.protocol-note-inline{
  font-size:10px;
  font-weight:400;
  margin-left:4px;
}
.protocol-declaration{
  margin:38px 0 0;
  font-size:13px;
}
.protocol-transfer-signatures{
  margin-top:42px;
  gap:60px;
}
.protocol-transfer-signatures p{
  margin-bottom:42px;
}
.protocol-transfer-signatures .sign-line{
  height:22px;
  border-bottom:1.2px solid #111;
}
@media print{
  .protocol-transfer-print h1{font-size:20px!important;margin:0 0 4px!important;}
  .protocol-transfer-print h2{font-size:18px!important;margin:0 0 28px!important;}
  .protocol-transfer-print h3{font-size:14px!important;margin:22px 0 8px!important;}
  .protocol-transfer-print th,
  .protocol-transfer-print td{border:1.2px solid #111!important;padding:6px 8px!important;font-size:13px!important;}
  .protocol-transfer-print th{background:#d9d9d9!important;text-align:center!important;}
  .protocol-transfer-meta{width:92%!important;margin:0 auto 18px!important;}
  .protocol-transfer-signatures{margin-top:42px!important;gap:60px!important;}
  .protocol-transfer-signatures p{margin-bottom:42px!important;}
  .protocol-transfer-signatures .sign-line{height:22px!important;border-bottom:1.2px solid #111!important;}
}


/* v0.3.46 - doprecyzowanie wyglądu protokołu przekazania i danych faktury */
.protocol-transfer-print table{
  border:1px solid #111!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.protocol-transfer-print th,
.protocol-transfer-print td{
  border:1px solid #111!important;
  border-radius:0!important;
}
.protocol-transfer-print th{
  background:#d0d0d0!important;
  font-weight:700!important;
}
.protocol-transfer-meta td:first-child{
  background:#f3f3f3!important;
  font-weight:700!important;
}
.protocol-transfer-print .protocol-transfer-equipment,
.protocol-transfer-print .protocol-transfer-invoice{
  width:100%!important;
}
.protocol-transfer-print .protocol-transfer-meta{
  width:90%!important;
  margin:0 auto 20px!important;
}
.protocol-transfer-print h3{
  margin-top:24px!important;
}
@media print{
  .protocol-transfer-print table{border:1px solid #111!important;border-collapse:collapse!important;border-radius:0!important;box-shadow:none!important;}
  .protocol-transfer-print th,
  .protocol-transfer-print td{border:1px solid #111!important;border-radius:0!important;}
  .protocol-transfer-print th{background:#d0d0d0!important;font-weight:700!important;}
  .protocol-transfer-meta td:first-child{background:#f3f3f3!important;font-weight:700!important;}
}


/* v0.3.47 - dopracowanie wydruku protokołu przekazania */
.print-page.protocol-transfer-print{
  font-size:12px!important;
  line-height:1.24!important;
}
.print-page.protocol-transfer-print h1{
  font-size:20px!important;
  margin:0 0 3px!important;
}
.print-page.protocol-transfer-print h2{
  font-size:16px!important;
  margin:0 0 22px!important;
}
.print-page.protocol-transfer-print h3{
  font-size:14px!important;
  margin:16px 0 7px!important;
}
.print-page.protocol-transfer-print table{
  border-collapse:collapse!important;
  border-spacing:0!important;
  border:1px solid #111!important;
  font-size:12px!important;
}
.print-page.protocol-transfer-print th,
.print-page.protocol-transfer-print td{
  border:1px solid #111!important;
  padding:4px 6px!important;
  line-height:1.18!important;
}
.print-page.protocol-transfer-print th{
  background:#d9d9d9!important;
  font-weight:700!important;
}
.print-page.protocol-transfer-print .protocol-declaration{
  margin-top:26px!important;
  margin-bottom:0!important;
  font-size:12px!important;
  line-height:1.35!important;
}
.print-page.protocol-transfer-print .signatures{
  margin-top:54px!important;
  gap:50px!important;
}
.print-page.protocol-transfer-print .signatures p{
  margin:0!important;
  font-size:12px!important;
}
.print-page.protocol-transfer-print .sign-line{
  height:78px!important;
  border-bottom:1px solid #111!important;
}
.print-page.protocol-transfer-print .protocol-system-footer{
  margin-top:18px!important;
  font-size:10px!important;
  color:#475569!important;
}
@media print{
  .print-page.protocol-transfer-print{
    font-size:12px!important;
    line-height:1.24!important;
  }
  .print-page.protocol-transfer-print h1{font-size:20px!important;margin:0 0 3px!important;}
  .print-page.protocol-transfer-print h2{font-size:16px!important;margin:0 0 22px!important;}
  .print-page.protocol-transfer-print h3{font-size:14px!important;margin:16px 0 7px!important;}
  .print-page.protocol-transfer-print table{
    border-collapse:collapse!important;
    border-spacing:0!important;
    border:1px solid #111!important;
    font-size:12px!important;
  }
  .print-page.protocol-transfer-print th,
  .print-page.protocol-transfer-print td{
    border:1px solid #111!important;
    padding:4px 6px!important;
    line-height:1.18!important;
  }
  .print-page.protocol-transfer-print th{background:#d9d9d9!important;font-weight:700!important;}
  .print-page.protocol-transfer-print .protocol-declaration{margin-top:26px!important;font-size:12px!important;line-height:1.35!important;}
  .print-page.protocol-transfer-print .signatures{margin-top:54px!important;gap:50px!important;}
  .print-page.protocol-transfer-print .sign-line{height:78px!important;border-bottom:1px solid #111!important;}
  .print-page.protocol-transfer-print .protocol-system-footer{margin-top:18px!important;font-size:10px!important;color:#475569!important;}
}

/* v0.3.48 - automatyczniejsze dopasowanie kolumn w protokole przekazania */
.print-page.protocol-transfer-print .protocol-transfer-equipment,
.print-page.protocol-transfer-print .protocol-transfer-invoice{
  table-layout:auto!important;
  width:100%!important;
}
.print-page.protocol-transfer-print .protocol-transfer-equipment col.col-lp{width:40px!important;}
.print-page.protocol-transfer-print .protocol-transfer-equipment col.col-id{width:92px!important;}
.print-page.protocol-transfer-print .protocol-transfer-equipment col.col-type{width:110px!important;}
.print-page.protocol-transfer-print .protocol-transfer-equipment col.col-name{width:auto!important;}
.print-page.protocol-transfer-print .protocol-transfer-equipment col.col-sn{width:105px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-pos{width:48px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-supplier{width:auto!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-invoice{width:135px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-value{width:112px!important;}
.print-page.protocol-transfer-print .protocol-transfer-equipment th:nth-child(1),
.print-page.protocol-transfer-print .protocol-transfer-equipment td:nth-child(1),
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(1),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(1){
  width:40px!important;
  min-width:40px!important;
  max-width:52px!important;
  text-align:center!important;
}
.print-page.protocol-transfer-print .protocol-transfer-equipment th:nth-child(2),
.print-page.protocol-transfer-print .protocol-transfer-equipment td:nth-child(2){
  width:92px!important;
  min-width:82px!important;
  max-width:110px!important;
  white-space:nowrap!important;
}
.print-page.protocol-transfer-print .protocol-transfer-equipment th:nth-child(3),
.print-page.protocol-transfer-print .protocol-transfer-equipment td:nth-child(3){
  width:110px!important;
  min-width:92px!important;
  max-width:128px!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-equipment th:nth-child(4),
.print-page.protocol-transfer-print .protocol-transfer-equipment td:nth-child(4){
  width:auto!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-equipment th:nth-child(5),
.print-page.protocol-transfer-print .protocol-transfer-equipment td:nth-child(5){
  width:105px!important;
  min-width:85px!important;
  max-width:125px!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(2),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(2){
  width:auto!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(3),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(3){
  width:135px!important;
  min-width:105px!important;
  max-width:150px!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(4),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(4){
  width:112px!important;
  min-width:92px!important;
  max-width:125px!important;
  white-space:nowrap!important;
}
.print-page.protocol-transfer-print th{
  white-space:normal!important;
  line-height:1.12!important;
}
@media print{
  .print-page.protocol-transfer-print .protocol-transfer-equipment,
  .print-page.protocol-transfer-print .protocol-transfer-invoice{table-layout:auto!important;width:100%!important;}
  .print-page.protocol-transfer-print .protocol-transfer-equipment col.col-lp{width:40px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-equipment col.col-id{width:92px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-equipment col.col-type{width:110px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-equipment col.col-name{width:auto!important;}
  .print-page.protocol-transfer-print .protocol-transfer-equipment col.col-sn{width:105px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-pos{width:48px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-supplier{width:auto!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-invoice{width:135px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-value{width:112px!important;}
  .print-page.protocol-transfer-print th{white-space:normal!important;line-height:1.12!important;}
}


/* v0.3.49 - lepsze proporcje kolumn tabeli Faktura zakupowa w protokole przekazania */
.print-page.protocol-transfer-print .protocol-transfer-invoice{
  table-layout:fixed!important;
  width:100%!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-pos{width:46px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-supplier{width:auto!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-invoice{width:112px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice col.col-value{width:92px!important;}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(1),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(1){
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  text-align:center!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(2),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(2){
  width:auto!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(3),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(3){
  width:112px!important;
  min-width:96px!important;
  max-width:118px!important;
  white-space:normal!important;
}
.print-page.protocol-transfer-print .protocol-transfer-invoice th:nth-child(4),
.print-page.protocol-transfer-print .protocol-transfer-invoice td:nth-child(4){
  width:92px!important;
  min-width:82px!important;
  max-width:98px!important;
  white-space:nowrap!important;
  text-align:right!important;
}
@media print{
  .print-page.protocol-transfer-print .protocol-transfer-invoice{table-layout:fixed!important;width:100%!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-pos{width:46px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-supplier{width:auto!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-invoice{width:112px!important;}
  .print-page.protocol-transfer-print .protocol-transfer-invoice col.col-value{width:92px!important;}
}
