@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap');

/* ── Variables ──────────────────────────────────────────────── */
.mp-app {
  --mp-acc:    #b09b58;   /* złoty — UI, nagłówki, przyciski */
  --mp-acc-dk: #8a7840;
  --mp-acc-lt: #f8f5ed;
  --avail:     #22c55e;   /* jasnozielony — status Dostępne */
  --reserv:    #d97706;   /* pomarańczowy — Zarezerwowane */
  --sold:      #dc2626;   /* czerwony — Sprzedane */
  --bg:        #f9f8f6;
  --border:    #e5e0d5;
  --text:      #333333;
  --muted:     #888880;
  --r:         3px;
  font-family: Lato, sans-serif;
  color: #333333;
}
.mp-app * { box-sizing: border-box; margin: 0; padding: 0; }
/* Reset niebieskiego podświetlenia dotyku/zaznaczenia — różni się domyślnie między przeglądarkami/systemami */
.mp-app, .mp-app * { -webkit-tap-highlight-color: transparent; }
.mp-app ::selection { background: rgba(176,155,88,.35); color: inherit; }
.mp-app ::-moz-selection { background: rgba(176,155,88,.35); color: inherit; }
/* Cena za m² — kolor stały, niezależny od przeglądarki/stanu wiersza */
.mp-app .mp-td-cena small { color:#9ca3af !important; -webkit-text-fill-color:#9ca3af; }
.mp-app .mp-price-m2      { color:#888880 !important; -webkit-text-fill-color:#888880; }

/* ── Stage ──────────────────────────────────────────────────── */
.mp-stage { margin-bottom: 24px; }
.mp-stage-header { display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }
.mp-stage-header-top { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.mp-stage-label {
  font-family:'Lato',Sans-serif;
  font-size:38px; font-weight:700; color:#333333;
  text-align:center; text-transform:none; letter-spacing:normal; line-height:1.2;
  width:100%;
}
/* Jeden kolor — strong też ciemny (złoty tylko na aktywnej zakładce) */
.mp-stage-label strong { color:#333333; font-weight:700; }
.mp-visual-wrap { margin-bottom:20px; }

.mp-breadcrumb-btn {
  padding:6px 16px; border-radius:3px;
  border:1.5px solid #b09b58; background:transparent;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700;
  color:#b09b58; cursor:pointer; transition:all .15s;
  text-transform:uppercase; letter-spacing:.07em;
}
.mp-breadcrumb-btn:hover { background:#b09b58; color:#fff; }

.mp-floor-tabs { display:flex; gap:4px; flex-wrap:wrap; margin-left:auto; }
.mp-tab-btn {
  padding:5px 14px; border-radius:3px;
  border:1.5px solid #e5e0d5; background:#fff;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700;
  color:#888880; cursor:pointer; transition:all .15s;
  text-transform:uppercase; letter-spacing:.05em;
}
.mp-tab-btn.active { background:#b09b58; border-color:#b09b58; color:#fff; }
.mp-tab-btn.extra  { border-style:dashed; }

/* Visual */
.mp-visual-wrap { background:#fff; border:1px solid #e5e0d5; overflow:hidden; position:relative; min-height:160px; display:flex; align-items:center; justify-content:center; touch-action:none; }
.mp-visual-loading { color:#888880; font-size:14px; }
.mp-visual-svg { width:100%; height:auto; display:block; }
.mp-visual-no-img { padding:32px; text-align:center; color:#888880; font-size:13px; }
/* Zoom */
.mp-zoom-container { width:100%; transform-origin:0 0; will-change:transform; cursor:grab; user-select:none; -webkit-user-select:none; }
.mp-zoom-container.dragging { cursor:grabbing; }
.mp-zoom-bar { position:absolute; bottom:10px; right:10px; z-index:10; display:flex; flex-direction:column; gap:4px; }
.mp-zoom-btn { width:32px; height:32px; border-radius:6px; background:rgba(255,255,255,.92); border:1px solid #e5e0d5; font-size:18px; font-weight:700; color:#555; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(0,0,0,.12); transition:background .12s, color .12s; line-height:1; user-select:none; }
.mp-zoom-btn:hover { background:#f8f5ed; color:#b09b58; border-color:#b09b58; }
.mp-zoom-btn[data-action="reset"] { font-size:11px; letter-spacing:-.02em; }

/* Polygons — kolory WYŁĄCZNIE z panelu admina (front.php generuje CSS per-projekt) */
.mp-vp { stroke-width:1.5; cursor:pointer; transition:fill .15s; }
.mp-vp.sprzedane { cursor:default; }
/* Hotspot — fallback (nadpisywany przez PHP CSS .mp-wrap-{pid}) */
.mp-vp.hotspot       { fill:rgba(176,155,88,.15); stroke:#b09b58; stroke-width:1.5; }
.mp-vp.hotspot:hover { fill:rgba(176,155,88,.42); }

.mp-tooltip {
  position:absolute; background:#2c2c2c; color:#fff;
  padding:6px 12px; border-radius:3px; font-size:12px;
  pointer-events:none; box-shadow:0 4px 16px rgba(0,0,0,.25);
  white-space:nowrap; z-index:10;
  font-family:Lato,sans-serif;
}
/* Strzałka wskazująca na mieszkanie (domyślnie tooltip nad — strzałka w dół) */
.mp-tooltip::after {
  content:''; position:absolute; left:50%; transform:translateX(-50%);
  bottom:-6px; border:6px solid transparent;
  border-top-color:#2c2c2c; border-bottom:none;
}
/* Tooltip pod mieszkaniem — strzałka w górę */
.mp-tooltip.mp-tooltip--below::after {
  bottom:auto; top:-6px;
  border-top:none; border-bottom:6px solid #2c2c2c;
}

/* Legenda — zachowuje oryginalne kolory statusów */
.mp-floor-legend { display:flex; gap:20px; margin-top:10px; font-size:11px; }
.mp-leg-item { display:flex; align-items:center; gap:6px; text-transform:uppercase; font-weight:700; color:#888880; letter-spacing:.05em; }
.mp-leg-dot { width:10px; height:10px; border-radius:50%; }
.mp-leg-dot.avail  { background:#22c55e; }
.mp-leg-dot.reserv { background:#d97706; }
.mp-leg-dot.sold   { background:#dc2626; }

/* ── Filtry ─────────────────────────────────────────────────── */
.mp-table-section { margin-top:32px; }
.mp-table-header {
  display:flex; flex-wrap:wrap; align-items:flex-end; gap:14px;
  padding:14px 16px; background:#fff;
  border:1px solid #e5e0d5; border-bottom:none;
  border-radius:3px 3px 0 0;
}
.mp-table-title { font-family:Lato,sans-serif; font-size:16px; font-weight:300; color:#333333; text-transform:uppercase; letter-spacing:.04em; }
.mp-table-filters { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; }
.mp-table-meta { margin-left:auto; font-size:12px; color:#888880; }
.mp-flat-count { font-weight:700; color:#333333; }

/* Pills — złoty aktywny (UI element, nie status) */
.mp-pills { display:flex; gap:4px; flex-wrap:wrap; }
.mp-pill {
  padding:5px 13px; border-radius:3px;
  border:1.5px solid #e5e0d5; background:transparent;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700;
  color:#888880; cursor:pointer; transition:all .15s;
  text-transform:uppercase; letter-spacing:.06em;
}
.mp-pill:hover           { border-color:#b09b58; color:#b09b58; background:transparent; }
.mp-pill.active          { background:#b09b58; border-color:#b09b58; color:#fff !important; }
/* Pills statusów — zachowują kolory statusów */
.mp-pill.avail.active    { background:#22c55e; border-color:#22c55e; color:#fff !important; }
.mp-pill.reserv.active   { background:#d97706; border-color:#d97706; color:#fff !important; }
.mp-pill.sold.active     { background:#dc2626; border-color:#dc2626; color:#fff !important; }
.mp-pill.avail:not(.active):hover  { border-color:#22c55e; color:#22c55e; }
.mp-pill.reserv:not(.active):hover { border-color:#d97706; color:#d97706; }
.mp-pill.sold:not(.active):hover   { border-color:#dc2626; color:#dc2626; }

/* Dual-range slider — jeden tor, dwa uchwyty ────────────────── */
.mp-range-group { display:flex; align-items:center; gap:10px; }
.mp-range-lbl-wrap { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#888880; white-space:nowrap; min-width:120px; }
.mp-dual-range {
  position:relative; width:130px; height:20px; flex-shrink:0;
}
/* Wspólny tor */
.mp-dual-range::before {
  content:''; position:absolute; top:50%; left:0; right:0;
  height:3px; background:#e5e0d5; border-radius:3px;
  transform:translateY(-50%); z-index:0;
}
/* Kolorowe wypełnienie między uchwytami */
.mp-range-fill {
  position:absolute; top:50%; height:3px;
  background:#b09b58; border-radius:3px;
  transform:translateY(-50%); pointer-events:none; z-index:1;
  left:0%; right:0%;
}
/* Oba input[range] nakładają się */
.mp-rng {
  position:absolute; top:50%; left:0; right:0; width:100%;
  -webkit-appearance:none; appearance:none;
  height:3px; background:transparent; outline:none;
  pointer-events:none; cursor:pointer; transform:translateY(-50%);
  margin:0; padding:0; z-index:2;
}
.mp-rng::-webkit-slider-thumb {
  -webkit-appearance:none; appearance:none;
  width:16px; height:16px; border-radius:50%;
  background:#b09b58; border:2px solid #fff;
  box-shadow:0 1px 4px rgba(0,0,0,.25);
  cursor:grab; pointer-events:all;
}
.mp-rng::-moz-range-thumb {
  width:16px; height:16px; border-radius:50%;
  background:#b09b58; border:2px solid #fff;
  box-shadow:0 1px 4px rgba(0,0,0,.25); cursor:grab;
  pointer-events:all; border:none;
}
.mp-rng::-webkit-slider-runnable-track { background:transparent; }
.mp-rng-max { z-index:3; }

/* Per-page + table meta — jedna linia ───────────────────────── */
.mp-table-meta { margin-left:auto; display:flex; align-items:center; gap:8px; font-size:12px; color:#888880; white-space:nowrap; }
.mp-per-page {
  padding:4px 8px; border:1.5px solid #e5e0d5; border-radius:3px;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700; color:#888880;
  background:#fff; cursor:pointer; outline:none;
}
.mp-per-page:focus { border-color:#b09b58; }

/* Paginacja ─────────────────────────────────────────────────── */
.mp-pagination { display:flex; justify-content:center; align-items:center; gap:4px; padding:14px 0 4px; flex-wrap:wrap; }
.mp-page-btn {
  min-width:32px; height:32px; padding:0 8px;
  border:1.5px solid #e5e0d5; border-radius:3px;
  background:#fff; font-family:Lato,sans-serif; font-size:12px; font-weight:700;
  color:#888880; cursor:pointer; transition:all .15s;
}
.mp-page-btn:hover:not(:disabled) { border-color:#b09b58; color:#b09b58; }
.mp-page-btn.active { background:#b09b58; border-color:#b09b58; color:#fff; }
.mp-page-btn:disabled { opacity:.35; cursor:default; }
.mp-page-dot { padding:0 2px; color:#888880; font-size:13px; line-height:32px; }

/* ── Tabela — złoty nagłówek ───────────────────────────────── */
.mp-table-wrap { overflow-x:auto; border:1px solid #e5e0d5; border-radius:0 0 3px 3px; background:#fff; }
.mp-front-table { width:100%; border-collapse:collapse; }
.mp-front-table thead { background: #b09b58; }
.mp-front-table th {
  padding:11px 16px;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.09em;
  color:#fff; text-align:center; cursor:pointer; user-select:none; white-space:nowrap; border:none;
}
.mp-front-table th { cursor:pointer; }
.mp-front-table th:last-child { cursor:default; }
.mp-front-table td { padding:11px 16px; font-size:13px; border-bottom:1px solid #e5e0d5; vertical-align:middle; height:58px; }
.mp-front-table tr { height:58px; }
.mp-front-table tr:last-child td { border-bottom:none; }
.mp-front-table tbody tr { cursor:pointer; transition:background .1s; }
/* Hover — kolor wg statusu */
/* Hover */
.mp-front-table tbody tr.dostepne:hover td      { background:rgba(34,197,94,.18); }
.mp-front-table tbody tr.zarezerwowane:hover td  { background:rgba(217,119,6,.18); }
.mp-front-table tbody tr.sprzedane:hover td      { background:inherit; }
.mp-front-table tbody tr:not(.dostepne):not(.zarezerwowane):not(.sprzedane):hover td { background:#f8f5ed; }
/* Aktywny wiersz — tylko mocniejsze tło, bez kolorowych borederów */
/* Stałe tło — zarezerwowane i sprzedane */
.mp-front-table tbody tr.zarezerwowane td { background:rgba(217,119,6,.08); }
.mp-front-table tbody tr.sprzedane td     { background:rgba(220,38,38,.06); }
/* Hover */
.mp-front-table tbody tr.zarezerwowane:hover td { background:rgba(217,119,6,.22) !important; }
.mp-front-table tbody tr.sprzedane:hover td     { background:rgba(220,38,38,.16) !important; }
/* Aktywny wiersz */
.mp-front-table tbody tr.mp-tr-active td              { background:rgba(34,197,94,.22) !important; }
.mp-front-table tbody tr.zarezerwowane.mp-tr-active td { background:rgba(217,119,6,.32) !important; }
.mp-front-table tbody tr.sprzedane.mp-tr-active td     { background:rgba(220,38,38,.18) !important; }
.mp-front-table tbody tr.sprzedane { opacity:.65; cursor:default; }
.mp-front-table tbody tr.sprzedane:hover td { background:inherit; }

/* Status badges — oryginalne kolory statusów */
.mp-status-badge { display:inline-block; padding:3px 9px; border-radius:3px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:#fff; }
.mp-status-badge.dostepne      { background:#22c55e; }
.mp-status-badge.zarezerwowane { background:#d97706; }
.mp-status-badge.sprzedane     { background:#dc2626; }

/* Karta mieszkania — ikona */
.mp-card-btn {
  width:28px; height:28px; border-radius:50%;
  border:1.5px solid #e5e0d5; background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; color:#888880;
  transition:border-color .15s, color .15s;
  cursor:pointer; flex-shrink:0; vertical-align:middle;
}
.mp-card-btn svg { width:13px; height:13px; pointer-events:none; }
.mp-card-btn:hover { border-color:#8a7840; color:#fff; background:#8a7840; }

.mp-table-btn { padding:4px 12px; border-radius:3px; border:1.5px solid #b09b58; background:transparent; color:#b09b58; font-family:Lato,sans-serif; font-size:11px; font-weight:700; cursor:pointer; text-decoration:none; display:inline-block; transition:all .15s; text-transform:uppercase; }
.mp-table-btn:hover { background:#b09b58; color:#fff; }
.mp-table-link { color:#b09b58; font-weight:700; text-decoration:none; font-size:13px; }
.mp-table-link:hover { text-decoration:underline; }
.mp-table-empty { padding:40px; text-align:center; color:#888880; font-size:13px; }

.mp-tr-flat { cursor:pointer; }
.mp-tr-flat.sprzedane { opacity:.65; cursor:default; }

/* ── Modal ──────────────────────────────────────────────────── */
.mp-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:16px; }
.mp-modal.hidden { display:none; }
.mp-modal-bg { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.mp-fmodal-box { position:relative; background:#fff; border-radius:3px; width:100%; max-width:1060px; max-height:96vh; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.2); animation:mp-fin .2s ease both; display:flex; flex-direction:column; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
@keyframes mp-fin { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.mp-fmodal-header { display:flex; justify-content:flex-end; padding:10px 10px 0; flex-shrink:0; background:#fff; border-bottom:1px solid #e5e0d5; }
.mp-fmodal-close { width:32px; height:32px; border-radius:50%; border:1.5px solid #e5e0d5; background:#fff; cursor:pointer; font-size:14px; color:#888; display:flex; align-items:center; justify-content:center; transition:all .15s; margin-bottom:10px; flex-shrink:0; }
.mp-fmodal-close:hover { background:#b09b58; color:#fff; border-color:#b09b58; }
.mp-fmodal-inner { display:flex; flex:1; overflow:hidden; min-height:0; }
.mp-fmodal-left { flex:1; padding:24px 28px; border-right:1px solid #e5e0d5; overflow-y:auto; -webkit-overflow-scrolling:touch; display:flex; flex-direction:column; }
.mp-fmodal-right { width:420px; flex-shrink:0; background:#f9f8f6; display:flex; flex-direction:column; overflow:hidden; }
.mp-fmodal-left img { width:100%; flex:1; min-height:0; max-height:340px; object-fit:contain; border-radius:3px; margin-bottom:14px; display:block; background:#f9f8f6; }
.mp-fmodal-left h2 { font-family:Lato,sans-serif; font-size:26px; font-weight:300; color:#333333; letter-spacing:.04em; }

/* Badge w modalu — kolory statusów */
.mp-info-badge { display:inline-block; padding:3px 10px; border-radius:3px; font-size:10px; font-weight:700; color:#fff; margin:8px 0 16px; text-transform:uppercase; letter-spacing:.07em; align-self:flex-start; }
.mp-info-badge.dostepne      { background:#22c55e; }
.mp-info-badge.zarezerwowane { background:#d97706; }
.mp-info-badge.sprzedane     { background:#dc2626; }

.mp-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; margin-bottom:16px; }
.mp-info-item { display:flex; flex-direction:column; gap:2px; }
.mp-info-item span { font-size:20px; font-weight:700; color:#333333; line-height:1.2; }
.mp-info-item label { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#888880; }
.mp-info-price { font-size:26px; font-weight:300; color:#b09b58; letter-spacing:.03em; padding:14px 0; border-top:1px solid #e5e0d5; border-bottom:1px solid #e5e0d5; margin:14px 0; }
.mp-price-m2 { display:block; font-size:13px; font-weight:400; color:#888880; margin-top:3px; }
.mp-info-cechy { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.mp-info-cecha { padding:3px 10px; border:1px solid #e5e0d5; border-radius:3px; font-size:11px; color:#888880; text-transform:uppercase; letter-spacing:.05em; }
.mp-action-btns { display:flex; gap:8px; margin-top:16px; flex-wrap:wrap; }
.mp-action-btn { display:inline-flex; align-items:center; gap:6px; padding:9px 18px; border-radius:3px; font-size:11px; font-weight:700; text-decoration:none; transition:all .15s; border:none; font-family:Lato,sans-serif; text-transform:uppercase; letter-spacing:.07em; cursor:pointer; }
.mp-action-btn-primary { background:#b09b58; color:#fff !important; -webkit-text-fill-color:#fff !important; }
.mp-action-btn-primary:hover { background:#8a7840; color:#fff !important; -webkit-text-fill-color:#fff !important; }
.mp-action-btn-outline { background:transparent; color:#b09b58 !important; -webkit-text-fill-color:#b09b58 !important; border:1.5px solid #b09b58; }
.mp-action-btn-outline:hover { background:#b09b58; color:#fff !important; -webkit-text-fill-color:#fff !important; }
.mp-pdf-link { display:inline-flex; align-items:center; gap:6px; margin-top:16px; padding:9px 18px; border:1.5px solid #b09b58; border-radius:3px; color:#b09b58; font-size:11px; font-weight:700; text-decoration:none; transition:all .15s; text-transform:uppercase; letter-spacing:.07em; }
.mp-pdf-link:hover { background:#b09b58; color:#fff; }
.mp-card-link { display:inline-flex; align-items:center; gap:6px; padding:9px 18px; background:#b09b58; color:#fff !important; border-radius:3px; font-size:11px; font-weight:700; text-decoration:none; transition:opacity .15s; text-transform:uppercase; letter-spacing:.07em; }
.mp-card-link:hover { opacity:.85; color:#fff !important; }

/* Formularz */
.mp-form-h { font-family:Lato,sans-serif; font-size:16px; font-weight:300; color:#333333; margin-bottom:18px; text-transform:uppercase; letter-spacing:.06em; }
.mp-fg { margin-bottom:12px; }
.mp-fg label { display:block; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#888880; margin-bottom:5px; }
.mp-fg input, .mp-fg textarea { width:100%; padding:9px 12px; border:1.5px solid #e5e0d5; border-radius:3px; font-family:Lato,sans-serif; font-size:13px; background:#fff; transition:border-color .15s; color:#333333; }
.mp-fg input:focus, .mp-fg textarea:focus { outline:none; border-color:#b09b58; }
.mp-fg textarea { resize:vertical; min-height:72px; }
.mp-rodo { display:flex; gap:8px; font-size:11px; color:#888880; line-height:1.5; cursor:pointer; margin-bottom:16px; align-items:flex-start; }
.mp-rodo input { flex-shrink:0; margin-top:2px; accent-color:#b09b58; }
.mp-app .mp-submit, .mp-app button.mp-submit {
  width:100%; padding:13px; background:#b09b58 !important; color:#fff !important;
  border:none !important; border-radius:3px; font-family:Lato,sans-serif;
  font-size:11px; font-weight:700; cursor:pointer; transition:background .15s;
  letter-spacing:.09em; text-transform:uppercase; box-shadow:none !important;
  outline:none; display:block; text-align:center;
}
.mp-app .mp-submit:hover, .mp-app button.mp-submit:hover { background:#8a7840 !important; }
.mp-app .mp-submit:disabled { opacity:.6; cursor:not-allowed; }
.mp-form-note { font-size:11px; color:#888880; text-align:center; margin-top:10px; }
.mp-form-msg { padding:10px 14px; border-radius:3px; font-size:13px; margin-bottom:12px; }
.mp-form-msg.ok  { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
.mp-form-msg.err { background:#fdecea; color:#c62828; border:1px solid #ef9a9a; }

/* Image tabs */
.mp-img-tabs { display:flex; gap:4px; margin-bottom:10px; }
.mp-img-tab { padding:4px 14px; border-radius:3px; border:1.5px solid #e5e0d5; background:#fff; font-size:10px; font-weight:700; cursor:pointer; color:#888880; transition:all .13s; text-transform:uppercase; letter-spacing:.07em; font-family:Lato,sans-serif; }
.mp-img-tab.active { background:#b09b58; color:#fff; border-color:#b09b58; }

/* Highlight — kolory/filter nadpisywane przez PHP CSS z projektu */
.mp-vp-highlight { stroke-width:3 !important; animation:mp-pulse 1.4s ease-in-out 2; }
@keyframes mp-pulse { 0%,100%{fill-opacity:.45} 50%{fill-opacity:1} }

@media(max-width:680px){
  /* ── Modal — pełny ekran bez marginesów ─────────────────────── */
  .mp-modal { padding:0; align-items:flex-start; }
  .mp-fmodal-box {
    max-height:100vh; height:100%;
    border-radius:0; overflow-y:auto; overflow-x:hidden;
    flex-direction:column;
  }
  .mp-fmodal-inner { flex-direction:column; overflow:visible; min-height:0; }
  .mp-fmodal-left {
    border-right:none; border-bottom:1px solid #e5e0d5;
    overflow:visible; padding:20px 16px;
  }
  .mp-fmodal-right { width:100%; overflow:visible; }
  .mp-fmodal-left img { max-height:200px; }
  .mp-fmodal-left h2 { font-size:20px; }
  .mp-fmodal-header { padding:8px 8px 0; }
  .mp-info-grid { grid-template-columns:1fr 1fr; gap:12px 16px; }
  .mp-info-item span { font-size:16px; }
  .mp-info-price { font-size:20px; }
  .mp-tabs-nav { padding:0 12px; }
  .mp-rnav { padding:10px 10px 8px; font-size:10px; }
  .mp-tab-content { padding:14px; }
  .mp-calc-grid { grid-template-columns:1fr 1fr; gap:8px; }

  /* ── Modal spot (parking) ─────────────────────────────────── */
  .mp-fmodal-box--spot {
    max-height:100vh; height:auto;
  }
  #mp-spot-modal .mp-fmodal-right { padding:0; }
  #mp-spot-modal .mp-lead-form { padding:12px 14px 16px; }

  /* ── Tabela — uproszczona na mobile ─────────────────────────── */
  .mp-front-table th,
  .mp-front-table td { padding:7px 6px; font-size:11px; }
  /* Ukryj kolumny Budynek i Piętro (1,2) TYLKO w trybie mieszkań */
  .mp-front-table.mp-mode-flats th:nth-child(1),
  .mp-front-table.mp-mode-flats td:nth-child(1),
  .mp-front-table.mp-mode-flats th:nth-child(2),
  .mp-front-table.mp-mode-flats td:nth-child(2) { display:none; }
  /* Tryb spotów (parking) — wszystkie 4 kolumny widoczne, kompaktowe */
  .mp-front-table.mp-mode-spots th,
  .mp-front-table.mp-mode-spots td { padding:6px 5px; font-size:10px; }
  .mp-front-table td { white-space:normal; }
  /* Cena — nigdy nie zawijaj */
  .mp-front-table td:has(.mp-price-main),
  .mp-front-table .mp-price-main { white-space:nowrap; }
  /* Kolumna ceny w trybie mieszkań (4. kolumna po ukryciu 1,2 = 3. widoczna) */
  .mp-front-table.mp-mode-flats td:nth-child(6) { white-space:nowrap; min-width:110px; }

  /* ── Nagłówek tabeli — kompaktowy ───────────────────────────── */
  .mp-table-header { padding:8px 10px; gap:5px; flex-direction:column; align-items:stretch; }
  .mp-table-title  { font-size:13px; text-align:center; margin-bottom:2px; }

  /* ── Filtry — pills statusu i pokoi obok siebie w jednej linii ── */
  .mp-table-filters { flex-direction:row; flex-wrap:wrap; gap:4px; justify-content:center; width:100%; }
  .mp-pills { flex-wrap:wrap; gap:3px; justify-content:center; }
  .mp-pill  { padding:4px 9px; font-size:9px; }
  /* Metraż slider — osobna linia, pełna szerokość */
  .mp-range-group { width:100%; justify-content:center; order:10; }
  .mp-range-lbl-wrap { min-width:0; white-space:nowrap; font-size:10px; }

  /* Meta — licznik i select obok siebie, wyśrodkowane */
  .mp-table-meta {
    margin-left:0; width:100%;
    display:flex; align-items:center; justify-content:center;
    gap:8px; flex-wrap:wrap; font-size:11px;
  }
  .mp-per-page { font-size:11px; }

  /* ── Stage label ─────────────────────────────────────────────── */
  .mp-stage-label { font-size:22px; }
  .mp-stage-header { gap:6px; margin-bottom:10px; }

  /* ── Breadcrumb + zakładki pięter — wyśrodkowane ────────────── */
  .mp-stage-header-top { gap:4px; flex-wrap:wrap; justify-content:center; }
  .mp-breadcrumb-btn   { font-size:9px; padding:4px 10px; }
  .mp-floor-tabs       { flex-wrap:wrap; gap:3px; justify-content:center; }
  .mp-tab-btn          { font-size:9px; padding:4px 8px; }

  /* ── Extra shortcuts — wyśrodkowane ─────────────────────────── */
  .mp-extra-shortcuts     { flex-wrap:wrap; gap:6px; justify-content:center; }
  .mp-extra-shortcut-btn  { font-size:11px; padding:7px 12px; }

  /* ── Paginacja — wyśrodkowana ────────────────────────────────── */
  .mp-pagination  { justify-content:center; }
  .mp-page-btn    { min-width:28px; height:28px; font-size:11px; }

  /* ── Legenda statusów — wyśrodkowana ────────────────────────── */
  .mp-floor-legend { gap:10px; flex-wrap:wrap; justify-content:center; }
}
.hidden{display:none!important;}

/* ── Zakładki modala ────────────────────────────────────────── */
.mp-tabs-nav { display:flex; gap:0; border-bottom:2px solid #e5e0d5; flex-shrink:0; padding:0 20px; background:#f9f8f6; }
.mp-rnav {
  padding:13px 14px 11px; border:none; background:none; cursor:pointer;
  font-family:Lato,sans-serif; font-size:11px; font-weight:700;
  color:#888880; text-transform:uppercase; letter-spacing:.07em;
  border-bottom:2px solid transparent; margin-bottom:-2px;
  transition:color .15s, border-color .15s, background .15s; white-space:nowrap;
  display:inline-block; user-select:none; outline:none;
  /* Blokuj dziedziczenie z Elementora */
  -webkit-text-fill-color: #888880;
}
.mp-rnav:hover { color:#b09b58; -webkit-text-fill-color:#b09b58; background:#f0ede8; }
.mp-rnav.active {
  background:#b09b58 !important; color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-bottom-color:#b09b58; font-weight:700;
}
/* Zakładka parkingu */
#mp-spot-modal .mp-tab-btn.active,
.mp-tab-bar .mp-tab-btn.active { background:#b09b58 !important; border-color:#b09b58 !important; color:#fff !important; }
.mp-tab-content { flex:1; overflow-y:auto; padding:20px 20px 20px; }

/* Padding 20px na dole sekcji pluginu */
.mp-app { padding-bottom:20px; }

/* ── Kalkulator kredytowy ───────────────────────────────────── */
.mp-calc { }
.mp-calc-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:10px 16px; margin-bottom:14px;
}
.mp-calc-row {
  display:flex; flex-direction:column; gap:4px;
}
.mp-calc-row.full { grid-column:1/-1; }
.mp-calc-row label {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.09em; color:#888880;
}
.mp-calc-input-wrap {
  display:flex; align-items:center; border:1.5px solid #e5e0d5;
  border-radius:3px; overflow:hidden; background:#fff;
}
.mp-calc-input-wrap input {
  flex:1; padding:7px 8px; border:none; outline:none;
  font-family:Lato,sans-serif; font-size:13px; font-weight:700;
  color:#333; background:#fff; min-width:0; width:100%;
}
.mp-calc-input-wrap:focus-within { border-color:#b09b58; }
.mp-calc-unit {
  padding:7px 8px; background:#f8f5ed; font-size:10px;
  font-weight:700; color:#888880; white-space:nowrap; border-left:1px solid #e5e0d5;
  flex-shrink:0;
}
.mp-calc-sub { font-size:10px; color:#b0a898; margin-top:1px; }
.mp-calc-total-rate {
  font-size:20px; font-weight:700; color:#b09b58; padding:6px 8px;
  border:1.5px solid #e5e0d5; border-radius:3px; background:#fff; line-height:1;
}

/* Wynik kalkulatora */
.mp-calc-result {
  padding:14px 16px; background:#f8f5ed;
  border-radius:3px; border-left:3px solid #b09b58;
  margin-bottom:12px;
}
.mp-calc-result-main {
  display:flex; align-items:baseline; gap:8px; margin-bottom:10px;
}
.mp-calc-result-main span {
  font-size:26px; font-weight:300; color:#b09b58; letter-spacing:.02em; line-height:1;
}
.mp-calc-result-main small {
  font-size:10px; font-weight:700; text-transform:uppercase;
  letter-spacing:.09em; color:#888880;
}
.mp-calc-result-details {
  display:grid; grid-template-columns:1fr 1fr; gap:6px;
}
.mp-calc-result-details div {
  display:flex; flex-direction:column; gap:1px;
}
.mp-calc-result-details span {
  font-size:13px; font-weight:700; color:#333;
}
.mp-calc-result-details small {
  font-size:9px; font-weight:700; text-transform:uppercase;
  letter-spacing:.08em; color:#888880;
}
.mp-calc-disclaimer {
  font-size:10px; color:#b0a898; line-height:1.5;
}

/* ── Ikona ⓘ historia cen ───────────────────────────────────── */
.mp-price-info-btn {
  background:none; border:none; cursor:pointer; padding:0 2px;
  font-size:14px; color:#b09b58; opacity:.7; vertical-align:middle;
  line-height:1; transition:opacity .15s;
}
.mp-price-info-btn:hover { opacity:1; }

/* ── Tooltip historia cen ───────────────────────────────────── */
.mp-price-tooltip {
  position:absolute; z-index:999999;
  background:#fff; border:1px solid #e5e0d5; border-radius:4px;
  box-shadow:0 6px 24px rgba(0,0,0,.12);
  min-width:260px; max-width:320px;
}

/* ── Obraz 3D w popupie — nie poucinany ─────────────────────── */
.mp-fmodal-left img,
.mp-fmodal-left .mp-img-3d,
.mp-fmodal-left .mp-img-2d {
  width:100%; height:auto; max-height:none;
  object-fit:contain; border-radius:4px;
  margin-bottom:16px; display:block; background:#f9f8f6;
}

/* ── Wyśrodkowanie tabeli ───────────────────────────────────── */
.mp-front-table th,
.mp-front-table td { text-align:center; }
.mp-front-table th:first-child,
.mp-front-table td:first-child { text-align:left; }
.mp-front-table td:last-child { text-align:center; }

/* ── Extra shortcuts ────────────────────────────────────────── */
.mp-extra-shortcuts {
  display:flex; flex-wrap:wrap; gap:8px;
  margin-top:10px;
}
.mp-extra-shortcut-btn {
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 16px; border-radius:3px;
  background:#fff; border:1.5px solid #b09b58; color:#b09b58;
  font-family:Lato,sans-serif; font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.07em;
  cursor:pointer; transition:all .15s;
  box-shadow:0 2px 6px rgba(0,0,0,.08);
}
.mp-extra-shortcut-btn:hover { background:#b09b58; color:#fff; }
.mp-extra-shortcut-btn svg { width:13px; height:13px; flex-shrink:0; }

/* ── Modal miejsca dodatkowego ──────────────────────────────── */
.mp-fmodal-box--spot { max-width: 720px; }
.mp-spot-numer { font-family:Lato,sans-serif; font-size:26px; font-weight:300; color:#333; letter-spacing:.04em; margin:0 0 8px; }
.mp-spot-opis  { font-size:13px; color:#78716c; line-height:1.6; margin-top:14px; padding-top:14px; border-top:1px solid #e5e0d5; }
#mp-spot-modal .mp-fmodal-right { padding:0; }
#mp-spot-modal .mp-tab-bar      { padding:16px 20px 0; }
#mp-spot-modal .mp-lead-form    { padding:16px 20px 20px; overflow-y:auto; flex:1; }

/* ── Pola formularza ────────────────────────────────────────── */
.mp-fr { margin-bottom:12px; }
.mp-fr label { display:block; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:#888880; margin-bottom:5px; }
.mp-fr input, .mp-fr textarea {
  width:100%; padding:9px 12px; border:1.5px solid #e5e0d5; border-radius:3px;
  font-family:Lato,sans-serif; font-size:13px; color:#333; background:#fff;
  transition:border-color .15s; outline:none; resize:vertical;
}
.mp-fr input:focus, .mp-fr textarea:focus { border-color:#b09b58; }
.mp-fr textarea { min-height:72px; }
.mp-consent { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:#888; line-height:1.5; margin-bottom:14px; cursor:pointer; }
.mp-consent input[type=checkbox] { margin-top:2px; flex-shrink:0; accent-color:#b09b58; }

/* ── Parking spot polygons ──────────────────────────────────── */
.mp-vp.sprzedane  { cursor:default !important; }
