:root{
  --ink:#12191f;--steel:#223040;--steel-2:#2f4256;--paper:#eef1f3;--card:#fff;
  --line:#d5dce1;--line-soft:#e8edf0;--mute:#67757f;
  --amber:#f0a500;--amber-soft:#fdf2d6;--amber-ink:#7a5405;
  --green:#1b7048;--green-soft:#e5f1eb;--red:#a8241d;--red-soft:#f9ebea;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55}
.num{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
a{color:var(--steel-2)}

.top{background:var(--steel);color:#fff}
.top-in{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:14px;height:56px}
.logo{font-weight:600;font-size:16px;white-space:nowrap}
.logo em{font-style:normal;color:var(--amber)}
.firma{font-size:13px;color:#a9b7c3;border-left:1px solid #46586a;padding-left:14px;white-space:nowrap}
.kto{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px;color:#b9c5cf}
.kto form{margin:0}
.kto button{font:inherit;font-size:13px;background:none;border:1px solid #46586a;color:#c9d5de;padding:4px 12px;cursor:pointer}
.kto button:hover{background:#2f4256;color:#fff}

.tabs{background:var(--steel-2);overflow-x:auto;display:flex;gap:2px;padding:0 20px}
.tabs a{color:#c0ccd6;text-decoration:none;font-size:14px;padding:10px 14px;border-bottom:3px solid transparent;white-space:nowrap}
.tabs a:hover{color:#fff;background:#3a5068}
.tabs a.on{color:#fff;border-bottom-color:var(--amber);background:#3a5068}

main{max-width:1280px;margin:0 auto;padding:22px 20px 60px}
.head{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:16px}
h1{font-size:22px;font-weight:600;margin:0;letter-spacing:-.01em}
.head p{margin:0;color:var(--mute);font-size:13.5px;flex:1 1 240px}
.head .akcje{margin-left:auto;display:flex;gap:8px}

.panel{background:var(--card);border:1px solid var(--line);margin-bottom:18px}
.panel-h{padding:11px 15px;border-bottom:1px solid var(--line);background:#f7f9fa;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.panel-h h2{margin:0;font-size:14.5px;font-weight:600}
.panel-h .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.note{font-size:12.5px;color:var(--mute);padding:10px 15px;background:#f7f9fa;border-top:1px solid var(--line)}

table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:12px;font-weight:500;color:var(--mute);padding:9px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top;font-size:14px}
tr:last-child td{border-bottom:none}
.r{text-align:right;white-space:nowrap}
.sub{display:block;font-size:12px;color:var(--mute);margin-top:2px}
.plus{color:var(--green)}
.minus{color:var(--red)}

.tag{display:inline-block;font-size:12px;padding:2px 8px;border:1px solid;white-space:nowrap}
.t-ok{color:var(--green);border-color:#b3d7c5;background:var(--green-soft)}
.t-n{color:var(--steel);border-color:var(--line);background:#f6f8f9}
.t-w{color:var(--amber-ink);border-color:#eeda9f;background:var(--amber-soft)}
.t-r{color:var(--red);border-color:#eabfbc;background:var(--red-soft)}

.kpi{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--card);margin-bottom:18px}
.kpi > div{padding:14px 16px;border-right:1px solid var(--line-soft)}
.kpi > div:last-child{border-right:none}
.kpi .k{font-size:12.5px;color:var(--mute)}
.kpi .v{font-size:23px;font-weight:500;margin-top:2px}
.kpi .bad .v{color:var(--red)}
.two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}

button.b,a.b{font:inherit;font-size:13.5px;background:var(--card);border:1px solid var(--steel);color:var(--ink);
  padding:6px 13px;cursor:pointer;text-decoration:none;display:inline-block}
button.b:hover,a.b:hover{background:var(--steel);color:#fff}
button.b.go,a.b.go{background:var(--steel);color:#fff}
button.b.go:hover,a.b.go:hover{background:var(--ink)}
input,select,textarea{font:inherit;font-size:14px;padding:7px 9px;border:1px solid var(--line);background:var(--card);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--amber);outline-offset:1px}
label{display:block;font-size:13px;color:var(--mute);margin-bottom:4px}
.pole{margin-bottom:14px}
.pola{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;padding:16px}
.pola .szer{grid-column:1 / -1}
.stopka{padding:14px 16px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
.blad{color:var(--red);font-size:12.5px;margin-top:4px}
.ok{background:var(--green-soft);border:1px solid #b3d7c5;color:var(--green);padding:10px 14px;margin-bottom:16px;font-size:14px}
.szukaj{display:flex;gap:8px;align-items:center}
.szukaj input{width:220px}
.pusto{padding:22px 15px;color:var(--mute);font-size:14px}
.strony{padding:12px 15px;border-top:1px solid var(--line);font-size:13px}
.strony a,.strony span{padding:3px 8px;margin-right:2px;text-decoration:none;border:1px solid var(--line);display:inline-block}
.strony .active span{background:var(--steel);color:#fff;border-color:var(--steel)}

.login{max-width:380px;margin:9vh auto;padding:0 20px}
.login .marka{font-size:20px;font-weight:600;margin-bottom:4px}
.login .marka em{font-style:normal;color:var(--amber-ink)}
.login p.lead{color:var(--mute);font-size:13.5px;margin:0 0 20px}
.login .panel{padding:18px}

@media (max-width:900px){
  .kpi{grid-template-columns:repeat(2,1fr)}
  .kpi > div:nth-child(2){border-right:none}
  .two{grid-template-columns:minmax(0,1fr)}
  .pola{grid-template-columns:minmax(0,1fr)}
  .firma{display:none}
  th.h,td.h{display:none}
}

/* Tło aplikacji */
body {
  background: #1a2733 url('/img/bg.jpg') center top / cover no-repeat fixed;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background: linear-gradient(180deg, rgba(18,25,31,.55) 0%, rgba(18,25,31,.78) 100%);
  z-index: -1;
}
main { background: transparent; }
.panel, .kpi { box-shadow: 0 10px 28px rgba(0,0,0,.18); }
.head h1 { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.4); }
.head p, .lede { color: #d3dce3; }
.tabs { background: rgba(47,66,86,.92); backdrop-filter: blur(3px); }
.top { background: rgba(34,48,64,.94); backdrop-filter: blur(3px); }

/* --- Widok mobilny --- */
@media (max-width: 820px) {
  html, body { overflow-x: hidden; max-width: 100%; }

  .wrap, .top-in, main { padding-left: 12px; padding-right: 12px; }

  /* Tabele przewijają się same, nie ciągną całej strony */
  .panel table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
  .panel table td, .panel table th { white-space: normal; }

  /* Menu przewijane poziomo, bez wypychania treści */
  .tabs { padding: 0 8px; -webkit-overflow-scrolling: touch; }
  .tabs a, .tab { padding: 11px 12px; font-size: 13.5px; }

  /* Nagłówek: nazwa firmy schodzi do drugiej linii zamiast rozpychać pasek */
  .top-in { height: auto; padding-top: 8px; padding-bottom: 8px; flex-wrap: wrap; row-gap: 4px; }
  .kto { font-size: 12px; gap: 8px; }

  /* Nagłówki stron i przyciski akcji jeden pod drugim */
  .head { flex-direction: column; align-items: stretch; gap: 8px; }
  .head .akcje { margin-left: 0; flex-wrap: wrap; }
  .head h1 { font-size: 20px; }

  /* Formularze filtrów nie wychodzą poza ekran */
  .panel-h { flex-direction: column; align-items: stretch; }
  .panel-h .right { margin-left: 0; width: 100%; }
  .panel-h .right form, .szukaj { width: 100%; }
  .szukaj input, .szukaj select { width: 100% !important; min-width: 0; }

  /* Pola formularzy na pełną szerokość */
  .pola { grid-template-columns: minmax(0, 1fr); padding: 12px; }
  input, select, textarea { max-width: 100%; }

  /* Tło nieruchome psuje przewijanie na iOS */
  body { background-attachment: scroll; }
}

/* --- Tabele jako karty na telefonie --- */
@media (max-width: 820px) {
  .panel table { display: block; overflow: visible; white-space: normal; }
  .panel table thead { display: none; }
  .panel table tbody, .panel table tr, .panel table td { display: block; width: 100%; }

  .panel table tr {
    border-bottom: 1px solid var(--line);
    padding: 10px 13px;
  }
  .panel table tr:last-child { border-bottom: none; }

  .panel table td {
    border: none;
    padding: 3px 0;
    text-align: left !important;
  }

  /* pierwsza komórka to tytuł karty */
  .panel table td:first-child {
    font-weight: 600;
    font-size: 15px;
    padding-bottom: 5px;
  }

  /* przyciski w wierszu na całą szerokość */
  .panel table td:last-child a.b,
  .panel table td:last-child button.b { display: block; text-align: center; margin-top: 6px; }

  .panel table td.r { text-align: left !important; }
  .strony { text-align: center; }
}

@media (max-width: 820px) {
  .head p, .head .lede { flex: none; }
  .kpi { grid-template-columns: repeat(2, 1fr); }
  .kpi .v { font-size: 20px; }
  .kpi .k { font-size: 12px; }
}
