:root { --bg:#0c0f14; --bg2:#11151d; --ink:#e7e9ee; --muted:#9aa3b2; --brand:#e53935; --brand2:#ff7a00; --line:#1e2430; --glass:rgba(255,255,255,.06); }
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans',sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--ink);text-decoration:none}
img{max-width:100%;display:block;border-radius:10px}

.container{max-width:1180px;margin:0 auto;padding:0 16px}
.header__inner{display:flex;align-items:center;justify-content:space-between;padding:12px 0;transition:padding .25s ease}
.logo img{height:70px;transition:height .25s ease}
.main-nav a{margin-left:16px;opacity:.9}
.main-nav .btn{margin-left:24px}

.site-header--dark{position:sticky;top:0;background:rgba(12,15,20,.75);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:10;transition:all .25s ease}
.site-header--dark.shrink .header__inner{padding:6px 0}
.site-header--dark.shrink .logo img{height:46px}
.site-footer--dark{background:var(--bg2);border-top:1px solid var(--line);margin-top:48px}
.site-footer--dark .footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:32px 0}
.copy{border-top:1px solid var(--line);padding:12px 0;color:var(--muted);text-align:center}
.version{text-align:center;font-size:.85rem;color:rgba(255,255,255,.4);margin:10px 0 0}

.hero{background:linear-gradient(135deg,#0c0f14 0%, #161c27 60%, #11151d 100%);}
.hero__inner{display:flex;align-items:center;justify-content:space-between;padding:64px 0;gap:24px}
.hero h1{font-size:44px;margin:0 0 12px}
.hero p{opacity:.9}
.hero__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stat{background:var(--glass);padding:16px;border-radius:14px;text-align:center;border:1px solid var(--line)}
.stat strong{display:block;font-size:28px}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{border:1px solid var(--line);border-radius:14px;padding:16px;background:rgba(17,21,29,.65);transition:transform .2s ease, box-shadow .2s ease}
.card--glass{background:var(--glass);border:1px solid var(--line);backdrop-filter: blur(8px)}
.card:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.25)}

.partner{display:flex;flex-direction:column;align-items:flex-start}
.partner__logo{max-height:40px;object-fit:contain;margin-bottom:8px;background:#fff;border-radius:8px;padding:6px}

.btn{display:inline-block;background:var(--brand);color:#fff;border:none;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px rgba(229,57,53,.3)}
.btn--primary{background:var(--brand)}
.btn--outline{background:transparent;border:1px solid var(--line);color:var(--ink)}
.btn--danger{background:transparent;border:1px solid #7a2e2e;color:#fbd0d0}
.btn--danger:hover{box-shadow:0 8px 22px rgba(229,57,53,.35);background:#3a1313;color:#fff}
.table a.btn{padding:6px 10px;border-radius:10px}

.mt-16{margin-top:16px}

.form{max-width:560px}
.form__row{display:flex;flex-direction:column;margin-bottom:12px}
.form input,.form textarea,.form select{padding:10px;border:1px solid var(--line);border-radius:10px;background:#0f141c;color:var(--ink)}
.form-stacked { max-width:720px; display:flex; flex-direction:column; gap:12px }
.form-stacked .row { display:flex; flex-direction:column; gap:6px }
.form-stacked label { font-weight:600; color:var(--ink); opacity:.9 }
.form .actions, .form-stacked .actions { display:flex; gap:10px; flex-wrap:wrap }

.table{width:100%;border-collapse:collapse;background:rgba(17,21,29,.65);border-radius:12px;overflow:hidden}
.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:10px}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin:16px 0}

.alert{padding:12px;border-radius:10px;margin:12px 0}
.alert.success{background:#14341f;border:1px solid #2f6e3e;color:#c8f3d3}
.alert.error{background:#3a1313;border:1px solid #7a2e2e;color:#fbd0d0}

.auth{display:flex;min-height:100vh;align-items:center;justify-content:center;background:linear-gradient(160deg,#0c0f14,#161c27)}
.auth__form{width:360px;background:linear-gradient(135deg, rgba(229,57,53,.12), rgba(255,122,0,.10)); border:1px solid var(--line) }
.auth .auth__form h2{text-align:center}
.auth .auth__icon{width:44px;height:44px;border-radius:12px;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--glass)}
.auth .auth__icon svg{width:24px;height:24px}

.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease, transform .6s ease}
.reveal.revealed{opacity:1;transform:none}

.page-fader{position:fixed;inset:0;background:rgba(12,15,20,.8);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:9999}
.page-fader.active{opacity:1;pointer-events:auto}

#toTop{position:fixed;right:16px;bottom:16px;padding:10px 12px;border-radius:12px;background:var(--glass);border:1px solid var(--line);color:var(--ink);backdrop-filter:blur(8px);opacity:0;transform:translateY(14px);transition:all .25s ease;z-index:1000}
#toTop.show{opacity:1;transform:none}

.section { padding:40px 0 }
.section h2 { margin-top:0 }

/* shrink-on-scroll */
.main-nav a{transition:opacity .2s ease}
.site-header--dark.shrink .main-nav a{opacity:.85}

@media(max-width:900px){
  .grid-3{grid-template-columns:1fr 1fr}
  .hero__inner{flex-direction:column;align-items:flex-start}
  .site-footer--dark .footer-grid{grid-template-columns:1fr}
}
@media(max-width:600px){ .grid-3{grid-template-columns:1fr} }


/* v2.7 admin header minimal & session timer */
.admin-title{font-weight:700;opacity:.9;margin-right:auto}
.admin-actions{display:flex;gap:10px;align-items:center}
.session-timer{font-variant-numeric:tabular-nums;color:rgba(255,255,255,.75);padding:6px 10px;border:1px solid var(--line);border-radius:10px}
/* v2.7 buttons borders */
.btn{border:1px solid #ff7a00} /* default orange border */
.btn--outline{border:1px solid #ff7a00}
.btn--edit{background:transparent;border:1px solid #3ad45a;color:#d4f9e0}
.btn--edit:hover{box-shadow:0 8px 22px rgba(58,212,90,.25);background:#113219;color:#fff}
.btn--danger{border:1px solid #e53935;color:#fbd0d0}
/* center partner button */
.partner .btn{align-self:center}


/* v2.7.1 – logowanie: spójne spacingi i szerokości */
.auth { background: linear-gradient(160deg,#0c0f14,#161c27); }
.auth__form { width: 360px; max-width: 92vw; }
.auth__form input[type="email"],
.auth__form input[type="password"] { width: 100%; }
.auth__form .btn { width: 100%; }


/* v2.7.1 – formularze edycji w stylu logowania */
.form-modal { width:520px; max-width:92vw; }
.form-modal .btn { min-width:120px; }
.finput, .ftextarea { width:100%; }

/* ===========================
   StreetForge v2.7.1 — Auth + Form Modals
   =========================== */

/* Ekran logowania */
.auth {
  display: flex;
  min-height: 100vh;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, #0c0f14, #161c27);
  padding: 24px;
}

.auth__form {
  width: 360px;
  max-width: 92vw;
  padding: 26px 22px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(17,21,29,.55), rgba(17,21,29,.75));
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
}

.auth__logo { text-align: center; margin: 6px 0 14px; }
.auth__logo img { height: 56px; opacity: .95; }

.auth__title { text-align: center; margin: 0 0 6px; }

.auth__row { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }

.auth__input {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #0f141c;
  color: var(--ink);
  outline: none;
}
.auth__input::placeholder { color: var(--muted); opacity: .85; }

.auth__remember {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: var(--muted);
  font-size: .95rem;
}

.auth__submit { width: 100%; margin-top: 14px; }
.auth__links { display: flex; justify-content: center; gap: 14px; margin-top: 12px; }
.auth__footer { text-align: center; opacity: .6; margin-top: 12px; font-size: .9rem; }

/* Formularze (partnerzy, klienci, pojazdy) */
.form-modal {
  width: 520px;
  max-width: 92vw;
  margin: 24px auto;
  padding: 24px 20px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(17,21,29,.55), rgba(17,21,29,.75));
  backdrop-filter: blur(10px);
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
}
.form-modal h2 { text-align: center; margin: 6px 0 4px; }

.frow { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }

.finput,
.ftextarea,
.fselect {
  width: 100%;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: #0f141c;
  color: var(--ink);
  outline: none;
}
.finput::placeholder,
.ftextarea::placeholder { color: var(--muted); opacity: .85; }

.factions { display: flex; gap: 10px; margin-top: 14px; }

.visually-hidden {
  position: absolute !important;
  height: 1px; width: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); white-space: nowrap;
}

/* Tabela + przyciski – spójność */
.table { width: 100%; border-collapse: collapse; background: rgba(17,21,29,.65); border-radius: 12px; overflow: hidden; }
.table th, .table td { border-bottom: 1px solid var(--line); text-align: left; padding: 10px; }

.btn { min-width: 120px; }

/* Alerty */
.alert { padding: 12px; border-radius: 10px; margin: 12px 0; }
.alert.success { background: #14341f; border: 1px solid #2f6e3e; color: #c8f3d3; }
.alert.error { background: #3a1313; border: 1px solid #7a2e2e; color: #fbd0d0; }



/* v2.7.1 hotfix – klikalność przycisków w tabelach */
.table tr { position: relative; }
.table td { position: relative; z-index: 1; }
.table .actions-inline { display: inline-flex; gap: 8px; align-items: center; }
.table .actions-inline form { display: inline; margin: 0; }
a.btn, button.btn { position: relative; z-index: 2; pointer-events: auto; }


/* v2.7.1 hotfix — przyciski w tabelach, wyrównanie i rozmiar */
.table {
  width: 100%;
  border-collapse: collapse;
}
.table th, .table td {
  padding: 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

/* Kolumna akcji — zwarta, bez zawijania */
.table td.actions {
  white-space: nowrap;
  width: 1%;
}

/* Przyciski: kompaktowe, jedna wysokość */
a.btn, button.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;            /* stała wysokość */
  padding: 0 12px;         /* kompaktowe */
  font-size: 14px;
  line-height: 1;
  border-radius: 10px;
  min-width: auto;         /* nadpisanie poprzedniego 120px */
}

/* Kontener akcji w wierszu */
.actions-inline {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.actions-inline form {
  display: inline;
  margin: 0;
}


/* v2.7.1 – przyciski akcji w tabelach */
.table {
  width: 100%;
  border-collapse: collapse;
}
.table th, .table td {
  padding: 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}
.table td.actions {
  white-space: nowrap;
  width: 1%;
}
.actions-inline {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
.actions-inline form {
  display: inline;
  margin: 0;
}
a.btn, button.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 12px;
  font-size: 14px;
  line-height: 1;
  border-radius: 10px;
  min-width: auto;
  cursor: pointer;
}


/* v2.7.1 – Partnerzy: wyrównanie kart i logotypów */
.grid-3.partners-grid .card,
.grid-3 .card { /* zabezpieczenie, gdy klasa partners-grid nie została dodana */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.partner__logo {
  display: block;
  margin: 0 auto 10px;
  max-width: 100%;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
  background: #fff;
  border-radius: 10px;
  padding: 6px 10px;
}

/* przycisk na środku */
.card .btn {
  margin-top: 8px;
}

/* oddechy, żeby tytuł/opis nie „przyklejały się” do logo */
.card h3 { margin: 6px 0 6px; }
.card p  { margin: 0 0 8px; }

/* v2.7.1 – Partnerzy: logo bez tła, czyste i wycentrowane */
.partner__logo {
  display: block;
  margin: 0 auto 10px;
  max-width: 100%;
  max-height: 60px;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0;           /* bez zaokrąglenia, jeśli nie chcesz ramki */
  background: none !important; /* usuwa białe tło */
  padding: 0;                 /* usuwa odstęp wewnątrz */
  filter: brightness(0.95);   /* lekki przyciemniony ton, jak w Promotors */
  transition: transform 0.25s ease, filter 0.25s ease;
}

.partner__logo:hover {
  transform: scale(1.05);
  filter: brightness(1.1);
}

.partner__logo {
  height: 45px;
  object-fit: contain;
}




/* v2.7.2 – animacja fade-in dla logotypów partnerów */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* po pojawieniu się w widoku */
.partner__logo.visible {
  opacity: 1;
  transform: translateY(0);
  animation: fadeInUp 0.8s ease forwards;
}


/* v2.7.2 – Kontakt w stylu logowania */
.contact-center {
  display: flex;
  flex-direction: column;
  align-items: center;   /* centruje kartę */
}

.contact-title {
  text-align: center;
  margin: 0 0 12px;
}

/* (opcjonalnie) węższa karta kontaktowa, jeśli chcesz bardziej kompaktowo:
.form-modal { width: 520px; } – u nas już taką szerokość masz globalnie */


/* v2.7.2 – Kontakt: walidacja + honeypot */
.contact-center { display:flex; flex-direction:column; align-items:center; }
.contact-title { text-align:center; margin:0 0 12px; }

.hint { opacity:.6; font-size:.85rem; margin-top:4px; }

.is-invalid { border-color: #e53935 !important; box-shadow: 0 0 0 2px rgba(229,57,53,.18); }
.is-valid   { border-color: #3ad45a !important; box-shadow: 0 0 0 2px rgba(58,212,90,.14); }

/* Honeypot – ukryty dla ludzi, widoczny dla botów */
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }


/* v2.7.3 – styl oznaczeń wiadomości */
.badge-unread {
  display: inline-block;
  background: #ff0000;
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 15px;
  font-weight: bold;
  line-height: 22px;
  text-align: center;
}

.badge-read {
  display: inline-block;
  background: #2e7d32;
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 14px;
  line-height: 22px;
  text-align: center;
}

tr.unread {
  background: rgba(33,150,243,0.05);
}

/* przyciski w tabeli */
.btn--success {
  border: 1px solid #2e7d32;
  color: #2e7d32;
}
.btn--success:hover {
  background: #2e7d32;
  color: #fff;
}

.btn--warning {
  border: 1px solid #0277bd;
  color: #0277bd;
}
.btn--warning:hover {
  background: #0277bd;
  color: #fff;
}


/* v2.7.4 – Wiadomości: licznik, badge, centrowanie */
.msg-counter {
  background: #2196f3;
  color: #fff;
  border-radius: 12px;
  font-size: 13px;
  padding: 3px 7px;
  margin-left: 6px;
  vertical-align: middle;
  display: inline-block;
  line-height: 1.1;
}

.factions.center {
  justify-content: center;
}

.badge-unread {
  display: inline-block;
  background: #ff0000;
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 15px;
  font-weight: bold;
  line-height: 22px;
  text-align: center;
}

.badge-read {
  display: inline-block;
  background: #2e7d32;
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  font-size: 14px;
  line-height: 22px;
  text-align: center;
}

tr.unread {
  background: rgba(33,150,243,0.05);
}

/* Przyciski w tabeli */
.btn--success {
  border: 1px solid #2e7d32;
  color: #2e7d32;
}
.btn--success:hover {
  background: #2e7d32;
  color: #fff;
}

.btn--warning {
  border: 1px solid #0277bd;
  color: #0277bd;
}
.btn--warning:hover {
  background: #0277bd;
  color: #fff;
}


/* v2.7.5 – Lightbox galerii */
.glightbox { position: fixed; inset: 0; display: none; }
.glightbox.open { display: block; }
.glightbox__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.8); opacity:0; transition:opacity .25s ease; }
.glightbox.open .glightbox__backdrop { opacity:1; }

.glightbox__dialog {
  position:absolute; inset:5% 6%;
  background:linear-gradient(135deg, rgba(17,21,29,.78), rgba(17,21,29,.92));
  border:1px solid var(--line); border-radius:16px;
  box-shadow:0 20px 50px rgba(0,0,0,.5);
  display:flex; flex-direction:column; overflow:hidden;
  transform:translateY(10px); opacity:0; transition:all .25s ease;
}
.glightbox.open .glightbox__dialog { transform:none; opacity:1; }

.glightbox__close {
  position:absolute; top:10px; right:12px;
  background:transparent; border:1px solid var(--line);
  border-radius:10px; font-size:24px; width:40px; height:36px; color:var(--ink);
}

.glightbox__slider { flex:1; display:flex; align-items:center; justify-content:center; min-height:300px; }
.glightbox__slide { display:none; width:100%; height:100%; text-align:center; }
.glightbox__slide.active { display:block; animation:fadeIn .3s ease; }
.glightbox__slide img { max-height:62vh; max-width:100%; object-fit:contain; }

.glightbox__nav { position:absolute; top:50%; left:0; right:0; display:flex; justify-content:space-between; transform:translateY(-50%); pointer-events:none; }
.glightbox__prev, .glightbox__next {
  pointer-events:auto;
  border:1px solid var(--line); background:rgba(0,0,0,.3); color:#fff;
  width:44px; height:44px; border-radius:50%; font-size:24px;
}
.glightbox__meta { padding:12px 16px; border-top:1px solid var(--line); background:rgba(0,0,0,.2); }
.gdesc { width:100%; border-collapse: collapse; }
.gdesc th, .gdesc td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
.gdesc th { width:120px; color:var(--muted); }

@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* Miniatura listy */
.gallery-list .gitem { cursor:pointer; }
.gallery-list .gthumb { width:100%; height:200px; object-fit:cover; border-radius:10px; }



/* v2.7.7 — popup galerii */
.glightbox { position: fixed; inset: 0; display: none; z-index: 9999; }
.glightbox.open { display: block; }
.glightbox__backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.85);
  opacity: 0; transition: opacity .3s ease;
}
.glightbox.open .glightbox__backdrop { opacity: 1; }

.glightbox__dialog {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(.97);
  background: rgba(15, 18, 22, .95);
  border-radius: 16px; border: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  max-width: 90vw; max-height: 85vh;
  padding: 24px 36px 20px;
  display: flex; flex-direction: column; align-items: center;
  transition: transform .25s ease, opacity .25s ease;
  opacity: 0;
}
.glightbox.open .glightbox__dialog {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

.glightbox__close {
  position: absolute; top: 10px; right: 12px;
  font-size: 28px; color: #fff; border: none;
  background: transparent; cursor: pointer;
}
.glightbox__slider img {
  max-height: 60vh; max-width: 80vw; border-radius: 10px;
  object-fit: contain; display: block; margin: 0 auto;
}

.glightbox__nav {
  display: flex; justify-content: space-between;
  width: 100%; position: absolute; top: 50%;
  transform: translateY(-50%); pointer-events: none;
}
.glightbox__nav button {
  pointer-events: all; font-size: 36px;
  background: rgba(0,0,0,.5); color: #fff;
  border: none; border-radius: 50%;
  width: 50px; height: 50px; cursor: pointer;
}
.glightbox__meta {
  width: 100%; margin-top: 16px; background: rgba(255,255,255,.03);
  padding: 10px 16px; border-radius: 10px; color: #ddd;
}
.gdesc { width: 100%; border-collapse: collapse; }
.gdesc th, .gdesc td { padding: 4px 6px; text-align: left; }
.gdesc th { color: #aaa; width: 80px; }

.gallery-list .gitem { cursor: pointer; }
.gallery-list .gthumb {
  width: 100%; height: 200px; object-fit: cover;
  border-radius: 10px; transition: transform .2s ease;
}
.gallery-list .gitem:hover .gthumb { transform: scale(1.03); }


/* v2.7.8 — Lightbox galerii z wyrównanym rozmiarem zdjęć */
.glightbox {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}
.glightbox.open { display: block; }

.glightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.glightbox.open .glightbox__backdrop { opacity: 1; }

.glightbox__dialog {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.97);
  background: rgba(20, 22, 28, 0.96);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
  width: 90vw;
  max-width: 1100px;
  height: 80vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 20px 30px;
  transition: transform 0.25s ease, opacity 0.25s ease;
  opacity: 0;
}
.glightbox.open .glightbox__dialog {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
}

.glightbox__close {
  position: absolute;
  top: 10px;
  right: 12px;
  font-size: 26px;
  color: #fff;
  border: none;
  background: transparent;
  cursor: pointer;
  opacity: 0.8;
  transition: opacity 0.2s;
}
.glightbox__close:hover { opacity: 1; }

.glightbox__slider {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60%;
  width: 100%;
  overflow: hidden;
  position: relative;
}
.glightbox__slider img {
  max-width: 100%;
  max-height: 60vh;
  object-fit: contain;
  border-radius: 10px;
  display: none;
  transition: opacity 0.3s ease;
}
.glightbox__slider img.active {
  display: block;
  opacity: 1;
}

.glightbox__nav {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  transform: translateY(-50%);
  pointer-events: none;
}
.glightbox__nav button {
  pointer-events: all;
  font-size: 34px;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  width: 50px;
  height: 50px;
  cursor: pointer;
  transition: background 0.2s;
}
.glightbox__nav button:hover { background: rgba(255, 255, 255, 0.15); }

.glightbox__meta {
  margin-top: 16px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 12px;
  padding: 14px 18px;
  width: 100%;
  color: #ddd;
  font-size: 0.95rem;
  line-height: 1.4;
  max-height: 20%;
  overflow-y: auto;
}
.gdesc { width: 100%; border-collapse: collapse; }
.gdesc th, .gdesc td { padding: 4px 8px; text-align: left; vertical-align: top; }
.gdesc th { color: #aaa; width: 90px; }

.gallery-list .gitem { cursor: pointer; }
.gallery-list .gthumb {
  width: 100%;
  height: 220px;
  object-fit: cover;
  border-radius: 10px;
  transition: transform 0.25s ease;
}
.gallery-list .gitem:hover .gthumb { transform: scale(1.04); }


/* v2.7.9 – sortowanie zdjęć w edycji galerii */
.gsort {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
}
.gsort__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(17,21,29,.55);
  backdrop-filter: blur(6px);
  margin-bottom: 10px;
}
.gsort__item.dragging {
  opacity: .7;
  background: rgba(33, 150, 243, .12);
  outline: 2px dashed rgba(33,150,243,.4);
}
.gsort__drag {
  cursor: grab;
  font-size: 20px;
  user-select: none;
  padding: 0 6px;
  line-height: 1;
  color: var(--muted);
}
.gsort__thumb {
  width: 120px;       /* stały rozmiar podglądu */
  height: 80px;
  object-fit: cover;  /* przycina proporcje ładnie */
  border-radius: 8px;
  border: 1px solid var(--line);
  flex: 0 0 auto;
  background: #0f141c;
}
.gsort__actions {
  display: flex;
  gap: 8px;
  margin-left: auto;
  align-items: center;
}
.gsort__item .inline { margin: 0; display: inline; }

@media (max-width: 520px) {
  .gsort__thumb { width: 96px; height: 64px; }
}

/* centrowanie akcji w formularzu (jeśli nie było) */
.factions { display:flex; gap:10px; margin-top:14px; }
.factions.center { justify-content: center; }



/* v2.7.10 — partnerzy, logotypy i lightbox */
.partner__logo {
  display:block; margin:0 auto 10px; max-width:100%; max-height:60px;
  width:auto; height:auto; object-fit:contain; background:none !important; padding:0; border-radius:0;
  transition:transform .25s ease, filter .25s ease; filter:brightness(.98);
}
.partner__logo:hover { transform:scale(1.05); filter:brightness(1.1); }
.grid-3 .card { display:flex; flex-direction:column; align-items:center; text-align:center; }

/* Lightbox – stałe okno, opis widoczny */
.glightbox{position:fixed;inset:0;display:none;z-index:9999;}
.glightbox.open{display:block;}
.glightbox__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.85);opacity:0;transition:opacity .3s ease;}
.glightbox.open .glightbox__backdrop{opacity:1;}
.glightbox__dialog{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.97);background:rgba(20,22,28,.96);border-radius:16px;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.6);width:90vw;max-width:1100px;height:80vh;display:flex;flex-direction:column;align-items:center;padding:20px 30px;transition:transform .25s ease,opacity .25s ease;opacity:0;}
.glightbox.open .glightbox__dialog{transform:translate(-50%,-50%) scale(1);opacity:1;}
.glightbox__close{position:absolute;top:10px;right:12px;font-size:26px;color:#fff;border:none;background:transparent;cursor:pointer;opacity:.8;}
.glightbox__slider{flex:1;display:flex;align-items:center;justify-content:center;min-height:60%;width:100%;overflow:hidden;position:relative;}
.glightbox__slider img{max-width:100%;max-height:60vh;object-fit:contain;border-radius:10px;display:none;transition:opacity .3s ease;}
.glightbox__slider img.active{display:block;}
.glightbox__nav{position:absolute;top:50%;left:0;right:0;display:flex;justify-content:space-between;transform:translateY(-50%);pointer-events:none;}
.glightbox__nav button{pointer-events:all;font-size:34px;background:rgba(0,0,0,.4);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:50%;width:50px;height:50px;cursor:pointer;}
.glightbox__meta{margin-top:16px;background:rgba(255,255,255,.04);border-radius:12px;padding:14px 18px;width:100%;color:#ddd;font-size:.95rem;line-height:1.4;max-height:20%;overflow-y:auto;}
.gdesc{width:100%;border-collapse:collapse;}
.gdesc th,.gdesc td{padding:4px 8px;text-align:left;vertical-align:top;}
.gdesc th{color:#aaa;width:90px;}

/* Galerie – karty klikalne */
.gallery-list .gitem{cursor:pointer;}
.gallery-list .gthumb{width:100%;height:220px;object-fit:cover;border-radius:10px;transition:transform .25s ease;}
.gallery-list .gitem:hover .gthumb{transform:scale(1.04);}

/* DnD sortowanie miniatur w adminie */
.gsort{list-style:none;padding:0;margin:8px 0 0;}
.gsort__item{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:10px;background:rgba(17,21,29,.55);backdrop-filter:blur(6px);margin-bottom:10px;}
.gsort__item.dragging{opacity:.7;background:rgba(33,150,243,.12);outline:2px dashed rgba(33,150,243,.4);}
.gsort__drag{cursor:grab;font-size:20px;user-select:none;padding:0 6px;line-height:1;color:var(--muted);}
.gsort__thumb{width:120px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:0 0 auto;background:#0f141c;}
.gsort__actions{display:flex;gap:8px;margin-left:auto;align-items:center;}
.factions{display:flex;gap:10px;margin-top:14px;}
.factions.center{justify-content:center;}


.partner__logo{
  display:block; margin:0 auto 10px;
  max-width:100%; max-height:60px;
  width:auto; height:auto;
  object-fit:contain;
  background:none !important;
  padding:0; border:none; border-radius:0;
}
/* po pojawieniu się w widoku */
.partner__logo.visible {
  opacity: 1;
  transform: translateY(0);
  animation: fadeInUp 0.8s ease forwards;
}


/* szerokości kart edycyjnych */
.form-modal { max-width: 720px; margin: 0 auto; }
.form-narrow { max-width: 720px; margin: 0 auto; }

/* DnD – jak wcześniej */
.gsort{list-style:none;padding:0;margin:8px 0 0;}
.gsort__item{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:10px;background:rgba(17,21,29,.55);backdrop-filter:blur(6px);margin-bottom:10px;}
.gsort__item.dragging{opacity:.7;background:rgba(33,150,243,.12);outline:2px dashed rgba(33,150,243,.4);}
.gsort__drag{cursor:grab;font-size:20px;user-select:none;padding:0 6px;line-height:1;color:var(--muted);}
.gsort__thumb{width:120px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:0 0 auto;background:#0f141c;}
.gsort__actions{display:flex;gap:8px;margin-left:auto;align-items:center;}
.factions{display:flex;gap:10px;margin-top:14px;}
.factions.center{justify-content:center;}


/* Jednolita szerokość kart edycyjnych w adminie */
:root { --sf-form-w: 720px; }

.card.form-panel{
  width: var(--sf-form-w);
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* (opcjonalnie) wyrównanie do centrum kolumny w adminie */
.admin-main, .admin-content, .admin-wrapper{
  align-items: center; /* bezpieczne – jeśli rodzic jest flex-em, wycentruje */
}




/* Services grid */
.page-head { text-align:center; margin-bottom: 22px; }
.page-title { font-size: 2rem; margin: 0 0 6px; }
.page-subtitle { color: var(--muted); }

.svc-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
}

@media (max-width: 1024px){ .svc-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px){ .svc-grid{ grid-template-columns: 1fr; } }

.svc-card{
  background: rgba(17,21,29,.55);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 18px 18px 16px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.svc-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,130,60,.35);
  box-shadow: 0 16px 36px rgba(0,0,0,.35);
}

.svc-icon{
  width: 52px; height: 52px;
  border-radius: 14px;
  display:flex; align-items:center; justify-content:center;
  background: radial-gradient(120% 120% at 10% 10%, rgba(255,140,60,.18), rgba(255,140,60,.05));
  border: 1px solid rgba(255,140,60,.25);
  margin-bottom: 10px;
}
.svc-icon svg{ width: 26px; height: 26px; fill: #ff7a3c; opacity:.95; }

.svc-card h2{ font-size: 1.1rem; margin: 4px 0 8px; }

.svc-list{
  margin: 0; padding: 0 0 0 20px;
  display:grid; gap: 6px;
}
.svc-list li{
  list-style: disc;
  line-height: 1.5;
}

/* mała animacja wejścia */
.wow{ opacity:0; transform: translateY(8px); animation: wowIn .5s ease forwards; }
.wow:nth-child(1){ animation-delay:.02s } .wow:nth-child(2){ animation-delay:.06s }
.wow:nth-child(3){ animation-delay:.10s } .wow:nth-child(4){ animation-delay:.14s }
.wow:nth-child(5){ animation-delay:.18s } .wow:nth-child(6){ animation-delay:.22s }
.wow:nth-child(7){ animation-delay:.26s } .wow:nth-child(8){ animation-delay:.30s }
.wow:nth-child(9){ animation-delay:.34s }

@keyframes wowIn { to { opacity:1; transform: none; } }

.svc-note{
  margin-top: 16px;
  text-align: center;
  color: var(--muted);
  font-size: .95rem;
}



.svc-icon i {
  font-size: 28px;
  color: #ff7a3c;
  opacity: 0.95;
}



/* === StreetForge: animacja obrotu ikon w sekcji usług === */
.svc-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(120% 120% at 10% 10%, rgba(255,140,60,.18), rgba(255,140,60,.05));
  border: 1px solid rgba(255,140,60,.25);
  margin-bottom: 10px;
  transition: transform .4s cubic-bezier(.4,.1,.2,1), box-shadow .3s ease;
}

.svc-icon i {
  font-size: 28px;
  color: #ff7a3c;
  opacity: .95;
  transition: transform .6s cubic-bezier(.4,.1,.2,1);
}

/* Efekt po najechaniu */
.svc-card:hover .svc-icon {
  transform: rotate(8deg) scale(1.08);
  box-shadow: 0 0 18px rgba(255,130,60,.35);
  border-color: rgba(255,130,60,.45);
}

.svc-card:hover .svc-icon i {
  transform: rotate(360deg);
}




/* === StreetForge: Partnerzy (grid + hover) === */
.partner-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:18px;
}
@media (max-width:1024px){ .partner-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width:640px){  .partner-grid{ grid-template-columns: 1fr; } }

.partner-card{
  background: rgba(17,21,29,.55);
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  text-align:center;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.partner-card:hover{
  transform: translateY(-2px);
  border-color: rgba(255,130,60,.35);
  box-shadow: 0 16px 36px rgba(0,0,0,.35);
}

/* kapsuła na logo + animacja obrotu */
.partner-logo{
  width: 120px; height: 120px; margin: 4px auto 10px;
  border-radius: 18px;
  display:flex; align-items:center; justify-content:center;
  background: radial-gradient(120% 120% at 10% 10%, rgba(255,140,60,.18), rgba(255,140,60,.05));
  border:1px solid rgba(255,140,60,.25);
  transition: transform .35s cubic-bezier(.4,.1,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.partner-card:hover .partner-logo{
  transform: rotate(8deg) scale(1.06);
  box-shadow: 0 0 18px rgba(255,130,60,.3);
  border-color: rgba(255,130,60,.45);
}

/* samo logo; obrót o 360° na hoverze karty */
.partner-logo img{
  max-width: 90%; max-height: 90%;
  object-fit: contain;
  background: none !important;
  border: 0; padding: 0;
  transition: transform .6s cubic-bezier(.4,.1,.2,1), filter .25s ease;
  filter: brightness(.98);
}
.partner-card:hover .partner-logo img{ transform: rotate(360deg); filter: brightness(1.05); }

.partner-card h3{ margin:8px 0 6px; font-size:1.05rem; }
.partner-card p{ color:var(--muted); margin:0 0 10px; }
.partner-card .btn{ margin-top:6px; }

/* === StreetForge: Partnerzy – wersja minimalistyczna === */
.partner-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
@media (max-width: 1024px) { .partner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .partner-grid { grid-template-columns: 1fr; } }

.partner-card {
  background: rgba(17,21,29,.55);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 24px 16px 20px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.partner-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255,130,60,.35);
  box-shadow: 0 16px 36px rgba(0,0,0,.35);
}

/* logo partnera – czyste, bez tła, bez ramki */
.partner-logo {
  width: 160px;
  height: 100px;
  margin: 6px auto 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.partner-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border: none !important;
  background: none !important;
  transition: transform .6s cubic-bezier(.4,.1,.2,1), filter .25s ease;
  filter: brightness(.95);
}
.partner-card:hover .partner-logo img {
  transform: rotate(360deg) scale(1.05);
  filter: brightness(1.05);
}

.partner-card h3 { margin: 8px 0 6px; font-size: 1.1rem; }
.partner-card p { color: var(--muted); margin: 0 0 10px; font-size: 0.95rem; }
.partner-card .btn { margin-top: 6px; }


/* Większe logo w nagłówku */
header .logo img {
  height: 123px; /* wcześniej np. 44px */
  transition: transform .3s ease;
}
header .logo img:hover {
  transform: scale(1.35);
}



/* PARTNER LOGOS — hard reset */
.partner-grid .partner-logo{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
  margin: 6px auto 12px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

.partner-grid .partner-logo img{
  display: block !important;
  max-width: 180px !important;   /* możesz zmienić */
  max-height: 90px !important;   /* możesz zmienić */
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  transition: transform .6s cubic-bezier(.4,.1,.2,1) !important;
}

.partner-card:hover .partner-logo img{
  transform: rotate(360deg) scale(1.05) !important;
}




/* Wyszukiwarka w toolbarze */
.searchbar .finput { height: 38px; }

/* Ikonowe przyciski w Akcjach */
.btn.btn--icon{
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(17,21,29,.55);
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn.btn--icon:hover{
  transform: translateY(-1px);
  border-color: rgba(255,130,60,.45);
  box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.btn.btn--icon i{ font-size: 18px; line-height: 1; display:inline-block; }
.btn--icon.btn--danger{ border-color: rgba(220,38,38,.55); }
.btn--icon.btn--danger:hover{ border-color: rgba(220,38,38,.85); }


/* === StreetForge: styl akcji w tabeli magazynu === */
.actions-inline {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
}

/* Podstawowy styl małych przycisków ikonowych */
.btn.btn--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(30, 34, 45, 0.75);
  border: 1px solid rgba(255, 130, 60, 0.25);
  cursor: pointer;
  transition: all 0.25s ease;
}

.btn.btn--icon i {
  font-size: 18px;
  color: #ff7a3c;
  transition: transform .2s ease, color .2s ease;
}

.btn.btn--icon:hover {
  background: rgba(255, 130, 60, 0.1);
  border-color: rgba(255, 130, 60, 0.55);
  transform: translateY(-2px);
}

.btn.btn--icon:hover i {
  transform: rotate(15deg);
  color: #ffa45c;
}

/* Wersja niebezpieczna (Usuń) */
.btn--icon.btn--danger {
  border-color: rgba(255, 60, 60, 0.4);
}

.btn--icon.btn--danger i {
  color: #ff4444;
}

.btn--icon.btn--danger:hover {
  background: rgba(255, 60, 60, 0.1);
  border-color: rgba(255, 60, 60, 0.8);
}

.btn--icon.btn--danger:hover i {
  color: #ff6666;
  transform: rotate(-15deg);
}
/* układ akcji */
.actions-inline{
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:nowrap;
}

/* małe ikonowe przyciski */
.btn.btn--icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:10px;
  background:rgba(30,34,45,.75);
  border:1px solid rgba(255,130,60,.25);
  color:#ff7a3c; /* currentColor dla SVG */
  cursor:pointer; transition:all .25s ease;
}
.btn.btn--icon:hover{
  background:rgba(255,130,60,.1);
  border-color:rgba(255,130,60,.55);
  transform:translateY(-2px);
}
.btn--icon.btn--danger{ border-color:rgba(255,60,60,.4); color:#ff4444; }
.btn--icon.btn--danger:hover{ background:rgba(255,60,60,.1); border-color:rgba(255,60,60,.8); color:#ff6666; }

/* upewnij się, że SVG jest widoczne */
.btn.btn--icon svg{ display:block; }


/* === StreetForge: akcje w tabeli magazynu === */
.actions-inline {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: nowrap;
}

.btn.btn--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(30, 34, 45, 0.75);
  border: 1px solid rgba(255, 130, 60, 0.25);
  color: #ff7a3c;
  cursor: pointer;
  transition: all 0.25s ease;
}

.btn.btn--icon i {
  font-size: 20px;
  line-height: 1;
  transition: transform 0.25s ease, color 0.25s ease;
}

.btn.btn--icon:hover {
  background: rgba(255, 130, 60, 0.12);
  border-color: rgba(255, 130, 60, 0.55);
  transform: translateY(-2px);
}

.btn.btn--icon:hover i {
  transform: rotate(20deg);
  color: #ffa45c;
}

.btn--icon.btn--danger {
  border-color: rgba(255, 60, 60, 0.4);
  color: #ff4c4c;
}

.btn--icon.btn--danger:hover {
  background: rgba(255, 60, 60, 0.1);
  border-color: rgba(255, 60, 60, 0.75);
  color: #ff6b6b;
}

.btn--icon.btn--danger:hover i {
  transform: rotate(-20deg);
}


/* Kalendarz (miesiąc) */
.calendar{ width:100%; }
.cal-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap:10px;
}
.cal-head > div{
  text-align:center; font-weight:600; color:var(--muted); padding:6px 0;
}
.cal-body{ margin-top:6px; }
.cal-cell{
  border:1px solid var(--line);
  background: rgba(17,21,29,.55);
  border-radius: 12px;
  min-height: 130px;
  display:flex; flex-direction:column; padding:8px;
}
.cal-empty{ background: rgba(17,21,29,.35); opacity:.8; }
.cal-day{ font-weight:700; opacity:.9; }
.cal-list{ margin-top:6px; display:flex; flex-direction:column; gap:8px; overflow:auto; max-height: 180px; }
.cal-item{
  border:1px solid var(--line);
  border-radius:10px; padding:6px 8px; position:relative;
  background: rgba(10,14,20,.55);
}
.cal-title{ font-size:.95rem; }
.cal-sub{ font-size:.85rem; color:var(--muted); }
.cal-actions{
  position:absolute; top:6px; right:6px; display:flex; gap:6px;
}
.cal-add{ margin-top:auto; display:flex; justify-content:flex-end; }
.btn--sm{ padding:6px 8px; font-size:.9rem; }

/* Tagi statusów */
.cal-tag{
  position:absolute; bottom:6px; right:8px;
  font-size:.75rem; padding:2px 6px; border-radius:8px;
  border:1px solid var(--line); text-transform: lowercase;
  opacity:.9;
}
.cal-tag--plan{ color:#ff9b63; border-color:rgba(255,130,60,.45); }
.cal-tag--done{ color:#58d68d; border-color:rgba(88,214,141,.45); }
.cal-tag--cancel{ color:#ff6666; border-color:rgba(255,60,60,.45); }

/* Reuse: ikonowe przyciski */
.btn.btn--icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:8px;
  background: rgba(30, 34, 45, 0.75);
  border: 1px solid rgba(255, 130, 60, 0.25);
  color: #ff7a3c;
  cursor: pointer; transition: all .2s ease;
}
.btn.btn--icon:hover{ background:rgba(255,130,60,.12); border-color:rgba(255,130,60,.55); transform: translateY(-1px); }
.btn--icon.btn--danger{ border-color:rgba(255,60,60,.4); color:#ff4c4c; }
.btn--icon.btn--danger:hover{ background:rgba(255,60,60,.1); border-color:rgba(255,60,60,.8); color:#ff6b6b; }


/* Większe pola dnia w kalendarzu miesiąca */
.cal-cell{
  border:1px solid var(--line);
  background: rgba(17,21,29,.55);
  border-radius: 12px;
  min-height: 160px; /* było ~130px */
  display:flex; flex-direction:column; padding:10px;
}
.cal-day{ font-weight:700; opacity:.95; font-size:1.05rem; }
.cal-daylink{ color:inherit; text-decoration:none; }
.cal-list--compact{ margin-top:6px; display:flex; flex-direction:column; gap:6px; overflow:auto; max-height: 220px; }
.cal-item--mini{ border:1px dashed var(--line); border-radius:8px; padding:4px 6px; background: rgba(10,14,20,.35); }
.cal-item--mini .cal-title{ font-size:.9rem; }

/* Widok dnia */
.day-grid{ display:flex; flex-direction:column; gap:8px; }
.day-row{ display:grid; grid-template-columns: 90px 1fr; gap:10px; align-items:flex-start; }
.day-time{ font-weight:700; color:var(--muted); padding-top:6px; }
.day-tasks{ display:flex; gap:8px; flex-wrap:wrap; }

.appt-chip{
  border:1px solid var(--line);
  border-radius:10px;
  background: rgba(17,21,29,.65);
  color:#fff;
  padding:6px 10px;
  font-size:.95rem;
  display:inline-flex; align-items:center; gap:6px;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.appt-chip:hover{ transform: translateY(-2px); border-color: rgba(255,130,60,.45); box-shadow: 0 6px 16px rgba(0,0,0,.25); }
.chip--plan{ color:#ffb48a; border-color: rgba(255,130,60,.35); }
.chip--done{ color:#58d68d; border-color: rgba(88,214,141,.35); }
.chip--cancel{ color:#ff7777; border-color: rgba(255,60,60,.35); }

/* Modal */
.sf-modal{ position:fixed; inset:0; z-index:1000; }
.sf-modal[hidden]{ display:none; }
.sf-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter: blur(2px); }
.sf-modal__dialog{ position:relative; max-width:700px; margin:10vh auto; padding:12px; }
.sf-modal__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.sf-modal__body{ display:grid; gap:8px; }
.sf-modal__foot{ display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }
.mrow{ display:flex; gap:8px; align-items:baseline; }
.mnotes{ white-space:pre-wrap; }

/* Disable body scroll when modal open */
body.modal-open { overflow: hidden; }

/* ===== Kalendarz — większe pola dnia i klikalny cały kafelek ===== */
.cal-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap:10px;
}
.cal-head > div{
  text-align:center; font-weight:600; color:var(--muted); padding:6px 0;
}
.cal-body{ margin-top:6px; }

.cal-cell{
  position: relative;
  border:1px solid var(--line);
  background: rgba(17,21,29,.55);
  border-radius: 12px;
  min-height: 160px;
  display:flex; flex-direction:column; padding:10px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.cal-cell:hover{
  border-color: rgba(255,130,60,.45);
  box-shadow: 0 8px 22px rgba(0,0,0,.28);
  transform: translateY(-1px);
}
.cal-cell.is-selected{
  border-color: rgba(255,130,60,.65);
  box-shadow: 0 0 0 2px rgba(255,130,60,.25) inset, 0 12px 26px rgba(0,0,0,.35);
}

/* klikalny overlay na cały dzień */
.cal-cell-link{
  position:absolute; inset:0; border-radius:inherit; z-index:1;
}
.cal-day, .cal-list{ position: relative; z-index:2; } /* nad linkiem */

.cal-day{ font-weight:700; opacity:.95; font-size:1.05rem; }
.cal-list--compact{
  margin-top:6px; display:flex; flex-direction:column; gap:6px;
  overflow:auto; max-height: 220px;
}
.cal-item--mini{
  border:1px dashed var(--line); border-radius:8px; padding:4px 6px; background: rgba(10,14,20,.35);
}
.cal-item--mini .cal-title{ font-size:.9rem; }

/* ===== Widok dnia — linie między godzinami ===== */
.day-grid{ display:flex; flex-direction:column; }
.day-row{
  display:grid; grid-template-columns: 100px 1fr; gap:12px;
  padding:10px 0;
  border-top: 1px solid var(--line);
}
.day-row:first-child{ border-top:none; padding-top:0; }
.day-time{ font-weight:700; color:var(--muted); padding-top:2px; }
.day-tasks{ display:flex; gap:8px; flex-wrap:wrap; }

/* chip zadania — sam tekst (klient — pojazd) */
.appt-chip{
  border:1px solid var(--line);
  border-radius:10px;
  background: rgba(17,21,29,.65);
  color:#fff;
  padding:6px 10px;
  font-size:.95rem;
  display:inline-flex; align-items:center; gap:6px;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.appt-chip:hover{ transform: translateY(-2px); border-color: rgba(255,130,60,.45); box-shadow: 0 6px 16px rgba(0,0,0,.25); }
.chip--plan{ color:#ffb48a; border-color: rgba(255,130,60,.35); }
.chip--done{ color:#58d68d; border-color: rgba(88,214,141,.35); }
.chip--cancel{ color:#ff7777; border-color: rgba(255,60,60,.35); }

/* ===== Modal podglądu ===== */
.sf-modal{ position:fixed; inset:0; z-index:1000; }
.sf-modal[hidden]{ display:none; }
.sf-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter: blur(2px); }
.sf-modal__dialog{ position:relative; max-width:700px; margin:10vh auto; padding:12px; }
.sf-modal__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.sf-modal__body{ display:grid; gap:8px; }
.sf-modal__foot{ display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }
.mrow{ display:flex; gap:8px; align-items:baseline; }
.mnotes{ white-space:pre-wrap; }

/* Przy otwartym modalu blokuj przewijanie body */
body.modal-open { overflow: hidden; }




/* === Kalendarz — większe pola dnia i klikalny cały kafelek === */
.cal-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0,1fr));
  gap:10px;
}
.cal-head > div{
  text-align:center; font-weight:600; color:var(--muted); padding:6px 0;
}
.cal-body{ margin-top:6px; }

.cal-cell{
  position: relative;
  border:1px solid var(--line);
  background: rgba(17,21,29,.55);
  border-radius: 12px;
  min-height: 160px;
  display:flex; flex-direction:column; padding:10px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.cal-cell:hover{
  border-color: rgba(255,130,60,.45);
  box-shadow: 0 8px 22px rgba(0,0,0,.28);
  transform: translateY(-1px);
}
.cal-cell.is-selected{
  border-color: rgba(255,130,60,.65);
  box-shadow: 0 0 0 2px rgba(255,130,60,.25) inset, 0 12px 26px rgba(0,0,0,.35);
}

/* cały dzień klikalny */
.cal-cell-link{
  position:absolute; inset:0; border-radius:inherit; z-index:1;
}
.cal-day, .cal-list{ position: relative; z-index:2; }

.cal-day{ font-weight:700; opacity:.95; font-size:1.05rem; }
.cal-list--compact{
  margin-top:6px; display:flex; flex-direction:column; gap:6px;
  overflow:auto; max-height: 220px;
}
.cal-item--mini{
  border:1px dashed var(--line); border-radius:8px; padding:4px 6px; background: rgba(10,14,20,.35);
}
.cal-item--mini .cal-title{ font-size:.9rem; }

/* === Widok dnia — linie między godzinami i hover wiersza === */
.day-grid{ display:flex; flex-direction:column; }
.day-row{
  display:grid; grid-template-columns: 100px 1fr; gap:12px;
  padding:10px 0;
  border-top: 1px solid var(--line);
  cursor: pointer;
  transition: background .15s ease;
}
.day-row:first-child{ border-top:none; padding-top:0; }
.day-row:hover{ background: rgba(255,130,60,.06); }
.day-time{ font-weight:700; color:var(--muted); padding-top:2px; }
.day-tasks{ display:flex; gap:8px; flex-wrap:wrap; }

/* chip zadania — sam tekst (klient — pojazd) */
.appt-chip{
  border:1px solid var(--line);
  border-radius:10px;
  background: rgba(17,21,29,.65);
  color:#fff;
  padding:6px 10px;
  font-size:.95rem;
  display:inline-flex; align-items:center; gap:6px;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
  cursor: pointer;
}
.appt-chip:hover{ transform: translateY(-2px); border-color: rgba(255,130,60,.45); box-shadow: 0 6px 16px rgba(0,0,0,.25); }
.chip--plan{ color:#ffb48a; border-color: rgba(255,130,60,.35); }
.chip--done{ color:#58d68d; border-color: rgba(88,214,141,.35); }
.chip--cancel{ color:#ff7777; border-color: rgba(255,60,60,.35); }

/* === Modal podglądu === */
.sf-modal{ position:fixed; inset:0; z-index:1000; }
.sf-modal[hidden]{ display:none; }
.sf-modal__backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.6); backdrop-filter: blur(2px); }
.sf-modal__dialog{ position:relative; max-width:700px; margin:10vh auto; padding:12px; }
.sf-modal__head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.sf-modal__body{ display:grid; gap:8px; }
.sf-modal__foot{ display:flex; justify-content:flex-end; gap:10px; margin-top:12px; }
.mrow{ display:flex; gap:8px; align-items:baseline; }
.mnotes{ white-space:pre-wrap; }
body.modal-open { overflow: hidden; }

/* === Wyraźne ikonki w polach daty/godziny === */
.field-icon{ position: relative; }
.field-icon .finput{ padding-right: 40px; }
.field-icon > i{
  position: absolute;
  right: 10px;
  bottom: 8px;
  font-size: 18px;
  color: #ff9b63;
  opacity: .9;
  pointer-events: none;
}
.field-icon .finput:focus + i{ color: #ffaF7a; opacity: 1; }

/* input date/time – lepsza widoczność ikonki w ciemnym motywie */
.finput[type="date"]::-webkit-calendar-picker-indicator,
.finput[type="time"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.8) contrast(1.1);
  opacity: .9;
}


/* tylko strona faktur */
#invPageWrap { 
  width: min(96vw, 1680px);
  margin: 0 auto;
}
#invPageWrap .invoice-form-xxl { 
  width: 100% !important; 
  max-width: none !important; 
}
#invPageWrap .frow.two-col   { grid-template-columns: 1fr 1fr; }
#invPageWrap .frow.three-col { grid-template-columns: 1fr 1fr 1fr; }

/* karta w środku ma też się poszerzać */
#invPageWrap .card.inner,
#invPageWrap .rowhead,
#invPageWrap #items { width: 100%; }

/* szeroki grid dla pozycji (żeby VAT się nie chował) */
#invPageWrap .inv-grid{
  display:grid;
  grid-template-columns: 3.5fr 1fr 1fr 1.6fr 1.2fr 1.2fr 1.2fr 1.3fr auto;
  gap:12px; align-items:center;
}
#invPageWrap .inv-grid select{ min-width: 112px; }

/* Wyśrodkowanie formularza faktury */
#invPageWrap {
  width: min(96vw, 1680px);
  margin: 0 auto;              /* centrowanie w poziomie */
  display: flex;
  justify-content: center;
}

#invPageWrap form.invoice-form-xxl {
  width: 100%;
  max-width: 1280px;           /* ograniczenie, żeby nie rozjeżdżało się na ultrapanoramicznych monitorach */
}


/* ===== Formularz faktur – szeroki i WYŚRODKOWANY ===== */
#invPageWrap {
    width: 100%;
    display: flex;              /* centrowanie zawartości */
    justify-content: center;    /* wyśrodkuj formularz */
}

/* samo <form class="card form-panel invoice-form-xxl"> */
#invPageWrap .invoice-form-xxl {
    width: min(96vw, 1680px);   /* szeroko, ale z limitem */
    max-width: 1680px;
    margin: 0;                  /* zerujemy ewentualne marginesy .card */
}

/* reszta może zostać jak była, ale na wszelki wypadek: */
#invPageWrap .card.inner { width: 100%; }
#invPageWrap .frow { width: 100%; }

#invPageWrap .frow.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 12px;
}

#invPageWrap .frow.three-col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 12px;
}

#invPageWrap .double {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 10px;
    margin: 8px 0;
}

#invPageWrap .rowhead {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

#invPageWrap #items.items-wide {
    margin-top: 12px;
    display: grid;
    gap: 10px;
    width: 100%;
}

/* grid pozycji – możesz zostawić swoją wersję albo tę: */
#invPageWrap .inv-grid {
    display: grid;
    grid-template-columns: 3.5fr 1fr 1fr 1.6fr 1.2fr 1.2fr 1.2fr 1.3fr auto;
    gap: 12px;
    align-items: center;
    font-size: 15px;
}

#invPageWrap .inv-grid select { min-width: 112px; }

#invPageWrap .muted {
    text-align: right;
    opacity: .85;
}

#invPageWrap .sumrow {
    display: flex;
    justify-content: flex-end;
    gap: 16px;
    margin-top: 12px;
    font-size: 16px;
}

/* =============================
   Poprawka tylko dla strony faktur
   ============================= */
body.page-invoices .main-content {
    margin-left: 0 !important;       /* kasujemy wymuszone przesunięcie 280px */
    display: flex;
    justify-content: center;         /* centrowanie zawartości */
}

body.page-invoices #invPageWrap {
    width: min(100%, 1680px);
}

body.page-invoices .invoice-form-xxl {
    width: 100%;
    max-width: 1480px;               /* ładna szerokość */
}

/* =========================
   KALENDARZ (miesięczny) - Admin
   ========================= */
.calendar-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin: 14px 0 18px;
}
.calendar-toolbar strong{
  font-size:18px;
  letter-spacing:.2px;
}
.calendar-toolbar .cal-nav{
  display:flex; gap:8px; align-items:center;
}
.calendar-toolbar .cal-search{
  margin-left:auto;
  display:flex; gap:8px; align-items:center;
}
.calendar-toolbar .cal-search .finput{ min-width:260px; }

.calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:10px;
  margin-bottom:10px;
  opacity:.85;
  font-size:13px;
}
.calendar-weekdays div{
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  text-align:center;
}

.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:10px;
}

.cal-day{
  position:relative;
  min-height:110px;
  border-radius:16px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  padding:10px;
  transition:transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}
.cal-day:hover{
  transform: translateY(-1px);
  border-color: rgba(255,130,0,.55);
  box-shadow: 0 12px 30px rgba(0,0,0,.25);
}
.cal-day.is-empty{
  background:transparent;
  border:1px dashed rgba(255,255,255,.08);
  opacity:.35;
}
.cal-day.is-active{
  border-color: rgba(255,130,0,.9);
  box-shadow: 0 14px 34px rgba(0,0,0,.32);
}

.cal-day a.day-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  text-decoration:none;
  color:inherit;
}
.cal-day .num{
  font-weight:700;
  opacity:.92;
}
.cal-day .today{
  font-size:12px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(255,130,0,.7);
  color:#ffb26b;
}

.cal-chips{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:10px;
}
.cal-chip{
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.18);
  cursor:grab;
  user-select:none;
}
.cal-chip:active{ cursor:grabbing; }
.cal-chip small{ opacity:.8; }
.cal-chip .t{
  font-weight:700;
  min-width:48px;
}
.cal-chip .txt{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:.92;
}

/* Kolory wizyt (tag) */
.cal-chip.orange{ border-color: rgba(255,130,0,.75); }
.cal-chip.blue{   border-color: rgba(90,170,255,.75); }
.cal-chip.green{  border-color: rgba(70,210,150,.75); }
.cal-chip.purple{ border-color: rgba(180,120,255,.75); }
.cal-chip.red{    border-color: rgba(255,90,90,.75); }
.cal-chip.gray{   border-color: rgba(200,200,200,.35); opacity:.9; }

/* Drop target */
.cal-day.drop-over{
  border-color: rgba(90,170,255,.85) !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
}

/* Panel dnia */
.day-panel{
  margin-top:18px;
}
.day-panel .appt-row{
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.02);
  margin-bottom:8px;
}
.day-panel .appt-row strong{ min-width:58px; }
.day-panel .appt-row em{ opacity:.8; }

.form-inline{
  display:grid;
  grid-template-columns: 140px 1.2fr 1.2fr 1.4fr 160px auto;
  gap:10px;
  align-items:center;
}
@media (max-width: 1100px){
  .form-inline{ grid-template-columns: 1fr; }
  .calendar-toolbar .cal-search{ margin-left:0; width:100%; }
  .calendar-toolbar .cal-search .finput{ width:100%; min-width:unset; }
}


/* ===== Header w dniu (żeby było “pole dnia”) ===== */
.cal-day .day-head{
  display:flex;
  align-items:center;
  gap:10px;
  justify-content:flex-start;
}
.cal-day .dot{
  width:8px;height:8px;border-radius:99px;
  background:rgba(255,130,0,.9);
  margin-left:auto;
}
.cal-day .num{ font-weight:800; opacity:.92; }
.cal-day .today{
  font-size:12px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(255,130,0,.7);
  color:#ffb26b;
}

/* ===== MODALE (dodawanie/edycja) ===== */
.sf-modal{ position:fixed; inset:0; z-index:9999; display:none; }
.sf-modal[aria-hidden="false"]{ display:block; }
.sf-modal__backdrop{
  position:absolute; inset:0;
  background:rgba(0,0,0,.65);
  backdrop-filter: blur(6px);
}
.sf-modal__panel{
  position:relative;
  width:min(92vw, 860px);
  margin: 7vh auto;
  border-radius:18px;
  background:rgba(15,18,22,.92);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 22px 70px rgba(0,0,0,.45);
  overflow:hidden;
}
.sf-modal__head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  padding:18px 18px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.sf-modal__title{ font-size:18px; font-weight:800; }
.sf-modal__sub{ opacity:.75; margin-top:4px; font-size:13px; }
.sf-divider{ height:1px; background:rgba(255,255,255,.06); }

.sf-form{ padding:16px 18px 18px; }
.sf-form label{ display:block; margin:10px 0 6px; opacity:.9; }
.sf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.sf-actions{ display:flex; gap:10px; justify-content:center; margin-top:14px; flex-wrap:wrap; }

.sf-daylist{ padding:14px 18px; max-height:40vh; overflow:auto; }
.sf-daylist .appt-row{
  display:flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.02);
  margin-bottom:8px;
}
.sf-daylist .appt-row strong{ min-width:60px; }
.sf-daylist .appt-row em{ opacity:.8; margin-left:8px; }

body.sf-modal-open{ overflow:hidden; }

@media (max-width: 760px){
  .sf-grid{ grid-template-columns:1fr; }
  .sf-modal__panel{ margin: 4vh auto; }
}


/* Weekend colors in weekdays header */
.calendar-weekdays div:nth-child(6){ color: rgba(200,200,200,.75); } /* Sobota - szare */
.calendar-weekdays div:nth-child(7){ color: rgba(80,220,140,.95); }  /* Niedziela - zielone */

/* Stała szerokość pól (żeby nie zmieniały rozmiaru po wpisaniu) */
.sf-form .finput, .sf-form select{
  width:100% !important;
  box-sizing:border-box;
}

/* Modal wyboru godziny przy przenoszeniu */
.sf-mini{
  padding:14px 18px 18px;
}
.sf-mini .row{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
}
.sf-mini .row .finput{ width:160px !important; }


/* ===== KALENDARZ: bez poziomego rozjeżdżania ===== */
html, body { overflow-x: hidden; }
.calendar-grid { width: 100%; }
.cal-day { min-width: 0; } /* ważne: nie pozwala rozpychać siatki */
.cal-chip .txt { min-width: 0; }

/* Chipy nie mogą wypychać szerokości */
.cal-chip { width: 100%; max-width: 100%; }
.cal-chip .txt{
  display:block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Jeśli gdzieś masz textarea: nie pozwalaj zmieniać szerokości */
textarea { resize: vertical; } /* albo: resize:none; jeśli wolisz całkiem zablokować */

/* ===== WEEKEND: podświetlenie CAŁEJ kolumny (na kafelkach dni) ===== */
.cal-day.weekend-sat {
  background: rgba(255,255,255,.025);
  border-color: rgba(200,200,200,.14);
}
.cal-day.weekend-sun {
  background: rgba(80,220,140,.06);
  border-color: rgba(80,220,140,.22);
}
.cal-day.weekend-sat .num { color: rgba(200,200,200,.85); }
.cal-day.weekend-sun .num { color: rgba(80,220,140,.95); }

/* Nagłówki dni tygodnia (sob/niedz) */
.calendar-weekdays div:nth-child(6){
  color: rgba(200,200,200,.75);
  background: rgba(255,255,255,.015);
  border-color: rgba(200,200,200,.12);
}
.calendar-weekdays div:nth-child(7){
  color: rgba(80,220,140,.95);
  background: rgba(80,220,140,.04);
  border-color: rgba(80,220,140,.18);
}

/* ===== CZYTELNE wybieranie godziny (select) ===== */
.sf-form select.time-select,
.sf-mini select.time-select{
  width: 180px !important;
}



/* ===== KALENDARZ: nie rozjeżdżaj w bok ===== */
html, body { overflow-x: hidden; }
.calendar-grid { width:100%; }
.cal-day { min-width:0; }
.cal-chip { width:100%; max-width:100%; }
.cal-chip .txt{
  min-width:0;
  white-space: normal;         /* rośnie w górę */
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;        /* max 2 linie */
  -webkit-box-orient:vertical;
}

/* textarea nie może rozpychać w bok */
textarea{ resize: vertical; }

/* ===== WEEKEND: CAŁA KOLUMNA (kafelki) ===== */
.cal-day.weekend-sat{
  background: rgba(167, 167, 167, 0.178);
  border-color: rgba(200,200,200,.12);
}
.cal-day.weekend-sun{
  background: rgba(255, 0, 0, 0.185);
  border-color: rgba(200,200,200,.12);
}
.cal-day.weekend-sat .num{ color: rgb(119, 118, 118); }
.cal-day.weekend-sun .num{ color: rgb(255, 0, 0); }

/* nagłówki sob/niedz */
.calendar-weekdays div:nth-child(6){
  color: rgba(200,200,200,.75);
  background: rgba(255,255,255,.015);
  border-color: rgba(200,200,200,.12);
}
.calendar-weekdays div:nth-child(7){
  color: rgba(80,220,140,.95);
  background: rgba(80,220,140,.04);
  border-color: rgba(80,220,140,.18);
}

/* czytelniejszy select czasu */
.sf-form select.time-select,
.sf-mini select.time-select{
  width: 190px !important;
}
/* === BLOKADA rozjeżdżania w bok === */
html, body { overflow-x: hidden; }
.calendar-grid { width: 100%; }
.cal-day { min-width: 0; }
.cal-chip { width: 100%; max-width: 100%; }
.cal-chip .txt{
  display:block;
  min-width:0;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
textarea { resize: vertical; } /* nie pozwala zmieniać szerokości */

/* === WEEKEND pionowo (na kafelkach) === */
/* ===== WEEKEND: CAŁA KOLUMNA (kafelki) ===== */
.cal-day.weekend-sat{
  background: rgba(167, 167, 167, 0.178);
  border-color: rgba(200,200,200,.12);
}
.cal-day.weekend-sun{
  background: rgba(255, 0, 0, 0.185);
  border-color: rgba(200,200,200,.12);
}
.cal-day.weekend-sat .num{ color: rgb(119, 118, 118); }
.cal-day.weekend-sun .num{ color: rgb(255, 0, 0); }


/* Nagłówki dni też lekko pod kolor */
.calendar-weekdays div:nth-child(6){
  color: rgba(200,200,200,.75);
  background: rgba(255,255,255,.015);
  border-color: rgba(200,200,200,.12);
}
.calendar-weekdays div:nth-child(7){
  color: rgba(80,220,140,.95);
  background: rgba(80,220,140,.04);
  border-color: rgba(80,220,140,.18);
}

/* Czytelne selecty z godziną */
.sf-form select.time-select,
.sf-mini select.time-select{ width: 180px !important; }




/* === Pricing + FAQ (StreetForge) === */
.page-head{ margin-bottom:18px; }
.page-head .muted{ opacity:.78; max-width:820px; }

.section-head{ margin-bottom:14px; }
.section-head .muted{ opacity:.78; }

.pricing-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:14px;
}
.pricing-grid.compact{ grid-template-columns: repeat(3, minmax(0,1fr)); }

@media (max-width: 980px){
  .pricing-grid, .pricing-grid.compact{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .pricing-grid, .pricing-grid.compact{ grid-template-columns: 1fr; }
}

.price-card{ transition: transform .18s ease, border-color .18s ease; }
.price-card:hover{ transform: translateY(-3px); border-color: rgba(255,138,31,.55); }

.price-card__top{
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  margin-bottom:8px;
}
.price-card h3{ margin:0; font-size:16px; }
.price-tag{
  white-space:nowrap;
  font-weight:700;
  border:1px solid rgba(255,138,31,.45);
  padding:6px 10px;
  border-radius:999px;
}
.price-note{ margin-top:10px; font-size:12px; opacity:.65; }

.cta-row{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-top:14px;
}

.faq-list{ display:grid; gap:12px; }
.faq-item{ border:1px solid rgba(255,255,255,.10); border-radius:14px; overflow:hidden; background: rgba(0,0,0,.18); }
.faq-q{
  width:100%;
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 14px;
  background: transparent;
  color: inherit;
  border:0;
  cursor:pointer;
}
.faq-q:hover{ background: rgba(255,138,31,.06); }
.faq-ico{
  width:34px; height:34px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.10);
  opacity:.9;
}
.faq-a{ max-height:0; overflow:hidden; transition:max-height .22s ease; }
.faq-a__inner{ padding: 0 14px 14px 14px; opacity:.85; line-height:1.5; }



.sf-alert{ padding:10px 12px; border-radius:12px; margin:10px 0; border:1px solid rgba(255,255,255,.12); }
.sf-alert--ok{ border-color: rgba(34,197,94,.55); background: rgba(34,197,94,.10); }
.sf-alert--err{ border-color: rgba(239,68,68,.55); background: rgba(239,68,68,.10); }

.tag{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-size:12px; border:1px solid rgba(255,255,255,.12); }
.tag--ok{ border-color: rgba(34,197,94,.55); }
.tag--muted{ opacity:.75; }

.btn--edit{ border-color: rgba(34,197,94,.65) !important; }
.btn--danger{ border-color: rgba(239,68,68,.65) !important; }


/* === About page === */
.about-grid{
  display:grid;
  grid-template-columns: 1.7fr 1fr;
  gap:14px;
}
@media (max-width: 900px){
  .about-grid{ grid-template-columns:1fr; }
}

.about-card .about-content h2,
.about-card .about-content h3{
  margin-top: 0;
}
.about-card .about-content h3{ margin-top: 16px; }

.about-card .about-content p{ opacity:.88; line-height:1.6; }
.about-card .about-content ul{ margin: 10px 0 0 18px; opacity:.88; }
.about-card .about-content li{ margin:6px 0; }

.about-updated{
  margin-top:14px;
  font-size:12px;
  opacity:.6;
  border-top:1px solid rgba(255,255,255,.08);
  padding-top:10px;
}

.about-side h3{ margin-top:0; }
.about-points{
  list-style:none;
  padding:0;
  margin:12px 0 0 0;
  display:grid;
  gap:10px;
}
.about-points li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  opacity:.88;
}
.about-points .dot{
  width:10px;
  height:10px;
  border-radius:999px;
  margin-top:6px;
  border:1px solid rgba(255,138,31,.7);
  box-shadow: 0 0 0 3px rgba(255,138,31,.10);
}



/* === Checklist === */
.progress-wrap{
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.10);
}
.progress-bar{
  height:100%;
  background: rgba(255,138,31,.85);
  transition: width .25s ease;
}

.checklist{ display:grid; gap:10px; }
.check-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
}
.check-item.is-done{
  opacity:.78;
  border-color: rgba(34,197,94,.35);
  background: rgba(34,197,94,.06);
}
.check-left{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}
.check-left input{ transform: scale(1.1); }
.check-actions{ display:flex; gap:8px; }
