@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Space+Mono&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Rently — indigo brand */
  --g9:#1E1B4B; --g7:#4F46E5; --g5:#6366F1; --g2:#C7D2FE; --g1:#EEF2FF;
  --o5:#F97316; --o1:#FFF7ED;
  --au5:#F59E0B; --au1:#FFFBEB;
  --bg:#ffffff; --surf:#F8FAFC; --bdr:#E2E8F0;
  --tx:#0F172A; --tx2:#64748B;
  --red:#EF4444; --red1:#FEF2F2;
}

body { font-family: 'Inter', system-ui, sans-serif; background: var(--surf); color: var(--tx); min-height: 100vh; }

/* NAV */
.lk-nav { display:flex; align-items:center; justify-content:space-between; padding:14px 40px; border-bottom:.5px solid var(--bdr); background:var(--bg); gap:16px; flex-wrap:wrap; position:sticky; top:0; z-index:100; }
.lk-logo { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; color:var(--tx); text-decoration:none; display:flex; align-items:center; gap:9px; }
.lk-logo span { color:var(--g7); }
.lk-nav-link { font-size:13px; color:var(--tx2); text-decoration:none; }
.lk-nav-link:hover { color:var(--tx); }
.lk-nav-right { display:flex; align-items:center; gap:10px; }
.lk-nav-user { font-size:13px; color:var(--tx2); }
.lk-nav-user strong { color:var(--tx); }

/* LANGUAGE SWITCH */
.lk-lang-switch {
  display: inline-flex; align-items: center; gap: 2px;
  background: var(--surf); border: .5px solid var(--bdr);
  border-radius: 8px; padding: 2px; flex-shrink: 0;
  position: relative; z-index: 2;
}
.lk-lang-btn {
  border: none; background: transparent; cursor: pointer;
  font-family: inherit; font-size: 11px; font-weight: 700;
  letter-spacing: .04em; color: var(--tx2);
  padding: 5px 8px; border-radius: 6px; line-height: 1;
  transition: background .15s, color .15s;
}
.lk-lang-btn:hover { color: var(--tx); }
.lk-lang-btn.active { background: var(--bg); color: var(--g7); box-shadow: 0 1px 3px rgba(0,0,0,.08); }

/* BUTTONS */
.lk-btn { padding:8px 16px; border-radius:8px; font-size:13px; font-weight:500; cursor:pointer; border:.5px solid var(--bdr); background:var(--bg); color:var(--tx); font-family:inherit; transition:all .15s; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.lk-btn:hover { border-color:#94A3B8; }
.lk-btn-green { background:var(--g7); color:#fff; border-color:var(--g7); }
.lk-btn-green:hover { background:var(--g5); border-color:var(--g5); }
.lk-btn-outline { border-color:var(--g7); color:var(--g7); background:transparent; }
.lk-btn-outline:hover { background:var(--g1); }
.lk-btn-red { background:var(--red); color:#fff; border-color:var(--red); font-size:12px; padding:5px 10px; }
.lk-btn-sm { padding:5px 10px; font-size:12px; }
.lk-btn-lg { padding:13px 28px; font-size:15px; border-radius:10px; }
.lk-btn-full { width:100%; justify-content:center; }

/* FORMS */
.lk-form-group { margin-bottom:18px; }
.lk-label { display:block; font-size:13px; font-weight:500; color:var(--tx); margin-bottom:6px; }
.lk-label-hint { color:var(--tx2); font-weight:400; font-size:12px; }
.lk-input { width:100%; padding:10px 14px; border:1px solid var(--bdr); border-radius:8px; font-size:14px; color:var(--tx); background:var(--bg); font-family:inherit; transition:border-color .15s; outline:none; }
.lk-input:focus { border-color:var(--g7); box-shadow:0 0 0 3px rgba(79,70,229,.12); }
.lk-input::placeholder { color:var(--tx2); }
.lk-input-wrap { position:relative; }
.lk-input-wrap i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--tx2); font-size:16px; pointer-events:none; }
.lk-input-wrap .lk-input { padding-left:38px; }
.lk-form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* CARDS */
.lk-card-box { background:var(--bg); border:.5px solid var(--bdr); border-radius:16px; padding:28px; }

/* BADGES */
.lk-badge { display:inline-flex; align-items:center; gap:4px; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:500; }
.lk-badge-green { background:var(--g1); color:var(--g7); }
.lk-badge-orange { background:var(--o1); color:#C05A1A; }
.lk-badge-gold { background:var(--au1); color:#92610A; }
.lk-badge-gray { background:var(--surf); color:var(--tx2); }
.lk-badge-red { background:var(--red1); color:var(--red); }

/* LAYOUT */
.lk-page { max-width:480px; margin:60px auto; padding:0 20px; }
.lk-page-wide { max-width:1100px; margin:0 auto; padding:40px; }
.lk-h2 { font-family:'Space Grotesk',sans-serif; font-size:26px; font-weight:700; color:var(--tx); }
.lk-h3 { font-family:'Space Grotesk',sans-serif; font-size:18px; font-weight:700; color:var(--tx); }
.lk-divider { height:.5px; background:var(--bdr); margin:20px 0; }

/* ALERTS */
.lk-alert { padding:12px 16px; border-radius:8px; font-size:13px; margin-bottom:16px; display:none; align-items:center; gap:8px; }
.lk-alert.show { display:flex; }
.lk-alert-error { background:var(--red1); color:var(--red); }
.lk-alert-success { background:var(--g1); color:var(--g7); }

/* STATS GRID */
.lk-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:28px; }
.lk-stat-card { background:var(--bg); border:.5px solid var(--bdr); border-radius:12px; padding:18px; }
.lk-stat-label { font-size:12px; color:var(--tx2); margin-bottom:5px; display:flex; align-items:center; gap:6px; }
.lk-stat-value { font-family:'Space Grotesk',sans-serif; font-size:32px; font-weight:700; color:var(--tx); }
.lk-stat-value.green { color:var(--g7); }
.lk-stat-value.orange { color:var(--o5); }
.lk-stat-value.gold { color:var(--au5); }

/* TABLE */
.lk-table-wrap { background:var(--bg); border:.5px solid var(--bdr); border-radius:14px; overflow:hidden; }
.lk-table { width:100%; border-collapse:collapse; }
.lk-table th { padding:11px 16px; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.6px; color:var(--tx2); text-align:left; border-bottom:.5px solid var(--bdr); background:var(--surf); white-space:nowrap; }
.lk-table td { padding:13px 16px; font-size:13px; color:var(--tx); border-bottom:.5px solid var(--bdr); vertical-align:middle; }
.lk-table tr:last-child td { border-bottom:none; }
.lk-table tr:hover td { background:var(--surf); }
.lk-table-empty { padding:40px; text-align:center; color:var(--tx2); font-size:14px; }
.lk-av { width:36px; height:36px; border-radius:50%; background:var(--g7); display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:700; font-family:'Space Grotesk',sans-serif; flex-shrink:0; }
.lk-av-orange { background:var(--o5); }
.lk-user-cell { display:flex; align-items:center; gap:10px; }
.lk-user-name { font-weight:500; }
.lk-user-email { font-size:11px; color:var(--tx2); }

/* TABS */
.lk-tabs { display:flex; gap:2px; background:var(--surf); padding:3px; border-radius:9px; border:.5px solid var(--bdr); width:fit-content; margin-bottom:20px; }
.lk-tab { padding:6px 14px; border-radius:7px; font-size:13px; font-weight:500; cursor:pointer; color:var(--tx2); border:none; background:transparent; font-family:inherit; transition:all .15s; white-space:nowrap; }
.lk-tab.active { background:var(--bg); color:var(--tx); box-shadow:0 1px 3px rgba(0,0,0,.08); }

/* SEARCH ROW */
.lk-search-row { display:flex; gap:12px; margin-bottom:20px; align-items:center; flex-wrap:wrap; }
.lk-search-wrap { position:relative; flex:1; min-width:200px; }
.lk-search-wrap i { position:absolute; left:11px; top:50%; transform:translateY(-50%); color:var(--tx2); font-size:15px; pointer-events:none; }
.lk-search-input { width:100%; padding:9px 14px 9px 36px; border:.5px solid var(--bdr); border-radius:8px; font-size:13px; color:var(--tx); background:var(--bg); font-family:inherit; outline:none; }
.lk-search-input:focus { border-color:var(--g7); }

/* ADMIN CREDS */
.lk-creds { background:linear-gradient(135deg,#4F46E5 0%,#312E81 100%); border-radius:12px; padding:16px 22px; margin-bottom:28px; display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.lk-creds-item { }
.lk-creds-label { font-size:10px; color:rgba(255,255,255,.4); text-transform:uppercase; letter-spacing:.7px; margin-bottom:3px; }
.lk-creds-val { font-family:'Space Mono',monospace; font-size:14px; color:var(--au5); }

/* PLAYER CARD */
.lk-player-card { background:linear-gradient(145deg,#4F46E5 0%,#312E81 100%); border-radius:18px; padding:22px; border:1px solid rgba(129,140,248,.35); }
.lk-pc-badge { display:inline-flex; align-items:center; gap:4px; background:rgba(234,179,8,.18); color:#FDE68A; padding:3px 9px; border-radius:20px; font-size:10px; font-weight:700; font-family:'Space Grotesk',sans-serif; margin-bottom:14px; }
.lk-pc-user { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.lk-pc-av { width:44px; height:44px; border-radius:11px; background:var(--g7); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0; font-size:16px; font-family:'Space Grotesk',sans-serif; font-weight:700; }
.lk-pc-name { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:700; color:#fff; }
.lk-pc-sub { font-size:10px; color:rgba(255,255,255,.45); font-family:'Space Mono',monospace; margin-top:2px; }
.lk-xp-row { display:flex; justify-content:space-between; font-size:9px; color:rgba(255,255,255,.35); font-family:'Space Mono',monospace; margin-bottom:5px; }
.lk-xp-bar { height:4px; background:rgba(255,255,255,.1); border-radius:2px; margin-bottom:14px; }
.lk-xp-fill { height:100%; background:var(--au5); border-radius:2px; }
.lk-pc-stats { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; }
.lk-pc-stat { background:rgba(255,255,255,.07); border-radius:7px; padding:8px; text-align:center; }
.lk-pc-stat-n { font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:700; color:#fff; }
.lk-pc-stat-l { font-size:9px; color:rgba(255,255,255,.35); text-transform:uppercase; letter-spacing:.4px; margin-top:1px; }

/* ROLE CARDS */
.lk-role-cards { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }
.lk-role-card { border:1.5px solid var(--bdr); border-radius:12px; padding:20px 16px; cursor:pointer; transition:all .15s; text-align:center; background:var(--bg); }
.lk-role-card:hover { border-color:var(--g7); background:var(--g1); }
.lk-role-card.selected { border-color:var(--g7); background:var(--g1); box-shadow:0 0 0 3px rgba(79,70,229,.12); }
.lk-role-card i { font-size:28px; color:var(--g7); display:block; margin-bottom:8px; }
.lk-role-title { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:700; color:var(--tx); margin-bottom:4px; }
.lk-role-desc { font-size:12px; color:var(--tx2); line-height:1.5; }

/* QUICK ACTIONS */
.lk-actions-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; }
.lk-action-card { background:var(--bg); border:.5px solid var(--bdr); border-radius:12px; padding:18px; cursor:pointer; transition:all .15s; text-decoration:none; display:block; }
.lk-action-card:hover { border-color:var(--g7); transform:translateY(-2px); box-shadow:0 4px 12px rgba(79,70,229,.1); }
.lk-action-card i { font-size:22px; color:var(--g7); display:block; margin-bottom:8px; }
.lk-action-title { font-size:13px; font-weight:500; color:var(--tx); margin-bottom:3px; }
.lk-action-desc { font-size:11px; color:var(--tx2); }

@media(max-width:600px){
  .lk-nav { padding:12px 16px; }
  .lk-page { margin:24px auto; }
  .lk-page-wide { padding:16px; }
  .lk-form-row { grid-template-columns:1fr; }
  .lk-role-cards { grid-template-columns:1fr; }
}

/* ============================================================
   MOBILE — wspólne poprawki (telefon)
   ============================================================ */
@media (max-width: 640px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; }

  .lk-nav {
    padding: 10px 14px;
    gap: 10px;
    flex-wrap: nowrap;
  }
  .lk-logo { font-size: 17px; min-width: 0; }
  .lk-logo svg { width: 22px; height: 26px; }
  .lk-nav-right {
    flex: 1;
    justify-content: flex-end;
    min-width: 0;
    gap: 6px;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 1px;
  }
  .lk-nav-right::-webkit-scrollbar { display: none; }
  .lk-nav-right > span,
  .lk-nav-user,
  #navGreeting { display: none !important; }

  .lk-btn {
    padding: 9px 12px;
    font-size: 12px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .lk-btn-lg { padding: 13px 18px; font-size: 14px; width: 100%; }

  .lk-page {
    margin: 20px auto;
    padding: 0 16px;
    max-width: 100%;
  }
  .lk-page-wide {
    padding: 16px;
    padding-bottom: 48px;
  }
  .lk-h2 { font-size: 22px; letter-spacing: -.02em; }
  .lk-h3 { font-size: 16px; }
  .lk-card-box { padding: 20px 16px; border-radius: 14px; }

  .lk-input,
  .lk-search-input,
  select.lk-input {
    font-size: 16px; /* bez zoomu iOS przy focus */
    padding: 11px 14px;
  }
  .lk-input-wrap .lk-input { padding-left: 40px; }

  .lk-stats-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .lk-stat-value { font-size: 26px; }
  .lk-actions-grid { grid-template-columns: 1fr 1fr; }

  .lk-tabs {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .lk-tabs::-webkit-scrollbar { display: none; }

  .lk-search-row { flex-direction: column; align-items: stretch; }
  .lk-search-wrap { min-width: 0; width: 100%; }

  .lk-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 12px;
  }
  .lk-table { min-width: 520px; }

  .lk-creds {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding: 16px;
  }

  .lk-role-card { padding: 18px 14px; }
  .lk-role-card i { font-size: 24px; }

  .lk-alert { font-size: 12px; padding: 10px 12px; }
}

@media (max-width: 400px) {
  .lk-stats-grid,
  .lk-actions-grid { grid-template-columns: 1fr; }
  .lk-nav { padding: 10px 12px; }
}

/* ============================================================
   MOBILE TAB BAR — nawigacja dolna (zalogowany użytkownik)
   ============================================================ */
.lk-mobile-tabs {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  z-index: 10040;
  background: var(--bg);
  border-top: .5px solid var(--bdr);
  padding: 6px 10px calc(6px + env(safe-area-inset-bottom, 0px));
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  box-shadow: 0 -6px 24px rgba(15,23,42,.08);
  box-sizing: border-box;
  /* top ustawiany przez JS (visualViewport) — bottom zostaje jako fallback. */
}
.lk-mobile-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 7px 4px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--tx2);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.1;
  position: relative;
  min-width: 0;
}
.lk-mobile-tab i { font-size: 21px; line-height: 1; }
.lk-mobile-tab.active { color: var(--g7); background: var(--g1); }
.lk-mobile-tab-badge {
  position: absolute;
  top: 4px;
  right: calc(50% - 18px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 10px;
  background: #EF4444;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
button.lk-mobile-tab {
  border: none;
  background: transparent;
  font-family: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* ============================================================
   PANEL „WIĘCEJ" — wszystkie funkcje na telefonie
   ============================================================ */
.lk-more-sheet {
  position: fixed;
  inset: 0;
  z-index: 10050;
  background: rgba(15, 23, 42, .45);
  opacity: 0;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s ease;
}
.lk-more-sheet.open { opacity: 1; visibility: visible; }
.lk-more-panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--bg);
  border-radius: 20px 20px 0 0;
  padding: 10px 18px calc(20px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -12px 40px rgba(15, 23, 42, .22);
  transform: translateY(100%);
  transition: transform .26s cubic-bezier(.32, .72, 0, 1);
  max-height: 88vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.lk-more-sheet.open .lk-more-panel { transform: translateY(0); }
.lk-more-handle {
  width: 40px;
  height: 4px;
  border-radius: 4px;
  background: var(--bdr);
  margin: 4px auto 12px;
}
.lk-more-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--tx);
  margin-bottom: 16px;
}
.lk-more-x {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: none;
  background: var(--surf);
  color: var(--tx2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  -webkit-tap-highlight-color: transparent;
}
.lk-more-x:hover { color: var(--tx); }
.lk-more-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.lk-more-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 8px;
  border: .5px solid var(--bdr);
  border-radius: 14px;
  background: var(--bg);
  text-decoration: none;
  color: var(--tx);
  text-align: center;
  transition: border-color .15s, background .15s, transform .1s;
  -webkit-tap-highlight-color: transparent;
}
.lk-more-tile:active { transform: scale(.97); }
.lk-more-tile:hover { border-color: var(--g7); background: var(--g1); }
.lk-more-tile i { font-size: 24px; color: var(--g7); line-height: 1; }
.lk-more-tile span {
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.2;
}
.lk-more-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  justify-content: center;
  margin: 18px 0 4px;
  padding-top: 16px;
  border-top: .5px solid var(--bdr);
}
.lk-more-links a {
  font-size: 13px;
  color: var(--tx2);
  text-decoration: none;
}
.lk-more-links a:hover { color: var(--g7); }
.lk-more-logout {
  width: 100%;
  margin-top: 14px;
  padding: 13px;
  border: 1px solid var(--bdr);
  border-radius: 12px;
  background: var(--bg);
  color: var(--red);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  -webkit-tap-highlight-color: transparent;
}
.lk-more-logout:hover { background: var(--red1); border-color: var(--red); }
body.lk-more-open { overflow: hidden; }

@media (max-width: 768px) {
  body.lk-has-mobile-tabs {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
  }
  body.lk-has-mobile-tabs .lk-mobile-tabs { display: grid; }

  /* Górna nawigacja — tylko logo, dzwonek i język */
  body.lk-has-mobile-tabs .lk-nav {
    padding: 10px 12px;
    gap: 8px;
    flex-wrap: nowrap;
  }
  body.lk-has-mobile-tabs .lk-nav-right {
    flex: 1;
    min-width: 0;
    gap: 6px;
    overflow: visible;
  }
  body.lk-has-mobile-tabs .lk-nav-right > .lk-btn,
  body.lk-has-mobile-tabs .lk-nav-right > a.lk-btn,
  body.lk-has-mobile-tabs .lk-nav-right > span.lk-nav-user,
  body.lk-has-mobile-tabs .lk-nav-right > a[href*="profile"]:not(.lk-notif-wrap a) {
    display: none !important;
  }
  body.lk-has-mobile-tabs .lk-nav-right > a[href*="profile"][style*="border-radius:50%"] {
    display: none !important;
  }

  body.lk-has-mobile-tabs .lk-page-wide {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.lk-has-mobile-tabs.lk-msg-page,
  body.lk-has-mobile-tabs.lk-msg-page html {
    height: 100%;
    overflow: hidden;
  }
  body.lk-has-mobile-tabs.lk-msg-page {
    padding-bottom: 0;
  }
  body.lk-has-mobile-tabs.lk-msg-page .msg-shell {
    height: calc(100dvh - 68px - env(safe-area-inset-bottom, 0px));
  }
  body.lk-has-mobile-tabs.lk-msg-page .lk-mobile-tabs {
    display: grid;
  }
}

@media (max-width: 640px) {
  .lk-nav .lk-btn span { display: none; }
  .lk-nav .lk-btn { padding: 9px 10px; min-width: 38px; justify-content: center; }
  .lk-lang-switch { flex-shrink: 0; }
  .lk-notif-wrap { flex-shrink: 0; }
}

/* ULUBIONE — serduszko na karcie i na stronie ogłoszenia */
@keyframes lk-fav-pop {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.4); }
  100% { transform: scale(1); }
}
.lk-fav-btn {
  position: absolute; top: 10px; right: 10px; z-index: 4;
  width: 32px; height: 32px; border-radius: 50%; border: none;
  background: rgba(255,255,255,.88); color: #64748B; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 6px rgba(0,0,0,.18);
  outline: none; -webkit-tap-highlight-color: transparent;
  transition: color .2s, background .2s;
  padding: 0; margin: 0;
}
.lk-fav-btn:hover { background: #fff; }
.lk-fav-btn.fav-on { background: #fff; }
.lk-fav-btn .lk-heart-ic { display: block; flex-shrink: 0; pointer-events: none; }
.lk-fav-btn.fav-on { background: #fff; }
.lk-fav-btn .lk-heart-ic.fav-pop { animation: lk-fav-pop .35s cubic-bezier(.34,1.56,.64,1); }
.lk-fav-btn:focus-visible { outline: 2px solid var(--g7); outline-offset: 2px; }
.lk-fav-btn:disabled { opacity: .65; cursor: wait; }

.lk-fav-btn-lg {
  width: 100%; margin-top: 10px; padding: 10px;
  border: 1.5px solid var(--bdr); border-radius: 12px;
  background: var(--surf); color: var(--tx2); cursor: pointer;
  font-size: 13px; font-weight: 600; font-family: inherit;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  outline: none; -webkit-tap-highlight-color: transparent;
  transition: border-color .2s, color .2s, background .2s;
}
.lk-fav-btn-lg:hover { border-color: var(--red); color: var(--red); }
.lk-fav-btn-lg.fav-on { border-color: var(--red); color: var(--red); background: var(--red1); }
.lk-fav-btn-lg .lk-heart-ic { flex-shrink: 0; pointer-events: none; }
.lk-fav-btn-lg .lk-heart-ic.fav-pop,
.lk-fav-btn-lg i.fav-pop { animation: lk-fav-pop .35s cubic-bezier(.34,1.56,.64,1); }
.lk-fav-btn-lg:focus-visible { outline: 2px solid var(--g7); outline-offset: 2px; }
.lk-fav-btn-lg:disabled { opacity: .65; cursor: wait; }

/* POWIADOMIENIA — dzwoneczek w nav */
.lk-notif-wrap { position: relative; flex-shrink: 0; }
.lk-notif-btn {
  position: relative; width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--bdr); background: var(--bg); color: var(--tx2);
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: 18px; transition: border-color .15s, color .15s, background .15s;
  padding: 0; outline: none; -webkit-tap-highlight-color: transparent;
}
.lk-notif-btn:hover { border-color: var(--g7); color: var(--g7); background: var(--g1); }
.lk-notif-btn.has-unread { color: var(--g7); border-color: var(--g2); }
.lk-notif-badge {
  position: absolute; top: -2px; right: -2px; min-width: 17px; height: 17px;
  padding: 0 4px; border-radius: 10px; background: var(--red); color: #fff;
  font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center;
  line-height: 1; border: 2px solid var(--bg);
}
.lk-notif-panel {
  position: absolute; top: calc(100% + 8px); right: 0; width: 340px; max-width: calc(100vw - 24px);
  background: var(--bg); border: 1px solid var(--bdr); border-radius: 14px;
  box-shadow: 0 12px 40px rgba(15,23,42,.14); z-index: 200;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  overflow: hidden;
  max-height: min(70vh, 520px);
  display: flex; flex-direction: column;
}
.lk-notif-panel.open { opacity: 1; visibility: visible; transform: translateY(0); }

/* Mobile sheet — panel jest przenoszony do <body>, żeby overflow nav go nie ucinał. */
.lk-notif-panel.lk-notif-sheet {
  position: fixed !important;
  left: 12px !important;
  right: 12px !important;
  top: auto !important;
  width: auto !important;
  max-width: none !important;
  bottom: calc(var(--lk-vv-bottom-gap, 0px) + var(--lk-tabbar-h, 76px) + 10px) !important;
  max-height: min(58dvh, 420px) !important;
  z-index: 10060 !important;
  border-radius: 16px;
  transform: translateY(10px);
}
.lk-notif-panel.lk-notif-sheet.open { transform: translateY(0); }
body:not(.lk-has-mobile-tabs) .lk-notif-panel.lk-notif-sheet {
  bottom: calc(var(--lk-vv-bottom-gap, 0px) + 14px + env(safe-area-inset-bottom, 0px)) !important;
  max-height: min(70dvh, 480px) !important;
}

.lk-notif-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 14px 16px 10px; border-bottom: 1px solid var(--bdr);
  font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 700; color: var(--tx);
  flex-shrink: 0;
}
.lk-notif-head > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lk-notif-mark-all {
  background: none; border: none; color: var(--g7); font-size: 11px; font-weight: 600;
  cursor: pointer; font-family: inherit; padding: 4px 0; flex-shrink: 0;
}
.lk-notif-mark-all:hover { text-decoration: underline; }
.lk-notif-list { max-height: none; overflow-y: auto; flex: 1; min-height: 0; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.lk-notif-item {
  display: flex; gap: 12px; padding: 12px 16px; text-decoration: none; color: inherit;
  border-bottom: 1px solid var(--bdr); transition: background .12s;
}
.lk-notif-item:last-child { border-bottom: none; }
.lk-notif-item:hover { background: var(--surf); }
.lk-notif-item.unread { background: rgba(79,70,229,.04); }
.lk-notif-item.unread .lk-notif-title { font-weight: 700; }
.lk-notif-ic {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.lk-notif-ic.ic-new_user { background: rgba(5,150,105,.1); color: #059669; }
.lk-notif-ic.ic-favorite { background: var(--red1); color: var(--red); }
.lk-notif-ic.ic-inquiry { background: var(--o1); color: var(--o5); }
.lk-notif-ic.ic-listing_pending { background: rgba(245,158,11,.12); color: #D97706; }
.lk-notif-ic.ic-listing_verified { background: rgba(34,197,94,.12); color: #16A34A; }
.lk-notif-ic.ic-listing_rejected,
.lk-notif-ic.ic-listing_deleted { background: var(--red1); color: var(--red); }
.lk-notif-ic.ic-listing_blocked { background: rgba(239,68,68,.12); color: #DC2626; }
.lk-notif-ic.ic-abuse_report { background: rgba(239,68,68,.12); color: #DC2626; }
.lk-notif-ic.ic-level_up { background: rgba(245,158,11,.14); color: #D97706; }
.lk-notif-ic.ic-info { background: var(--surf); color: var(--tx2); }
.lk-notif-body { flex: 1; min-width: 0; }
.lk-notif-title {
  font-size: 13px; font-weight: 600; color: var(--tx); line-height: 1.35; margin-bottom: 2px;
  overflow-wrap: anywhere; word-break: break-word;
}
.lk-notif-text {
  font-size: 12px; color: var(--tx2); line-height: 1.45;
  overflow-wrap: anywhere; word-break: break-word;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
  overflow: hidden;
}
.lk-notif-time { font-size: 10px; color: var(--tx2); margin-top: 4px; opacity: .85; }
.lk-notif-empty { padding: 36px 20px; text-align: center; color: var(--tx2); font-size: 13px; }
.lk-notif-empty i { display: block; font-size: 28px; opacity: .35; margin-bottom: 8px; }

@media (max-width: 768px) {
  .lk-notif-text { -webkit-line-clamp: 4; }
}

/* Profile links — avatar, name, owner card */
.lk-profile-link {
  text-decoration: none;
  color: inherit;
  transition: opacity .15s, border-color .15s, box-shadow .15s;
}
.lk-profile-link:hover { color: inherit; }
a.lk-owner-card.lk-profile-link:hover {
  border-color: rgba(79,70,229,.35);
  box-shadow: 0 4px 16px rgba(79,70,229,.08);
}
.lk-ll.lk-profile-link:hover .lk-ll-av { box-shadow: 0 0 0 2px rgba(79,70,229,.25); }
.lk-owner-go {
  margin-left: auto; flex-shrink: 0; align-self: center;
  font-size: 12px; font-weight: 600; color: var(--g7);
  display: inline-flex; align-items: center; gap: 4px;
}
.lk-profile-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px 3px 3px; border-radius: 999px;
  border: .5px solid var(--bdr); background: var(--surf);
  font-size: 11px; font-weight: 600; color: var(--tx);
  transition: border-color .15s, background .15s;
}
.lk-profile-chip:hover { border-color: var(--g7); background: var(--g1); color: var(--g7); }
.lk-profile-chip-av {
  width: 20px; height: 20px; border-radius: 50%; background: var(--g7);
  color: #fff; font-size: 8px; font-weight: 700; font-family: 'Space Grotesk', sans-serif;
  display: flex; align-items: center; justify-content: center;
}
.msg-chat-name-link { color: inherit; text-decoration: none; }
.msg-chat-name-link:hover { color: var(--g7); }
.cv-rev-name-link { color: inherit; text-decoration: none; }
.cv-rev-name-link:hover { color: var(--g7); }

/* User avatars — zdjęcie lub inicjały */
.has-avatar { padding: 0 !important; overflow: hidden; }
.has-avatar img,
.sb-av img, .msg-conv-av img, .msg-chat-av img, .lk-ll-av img,
.lk-owner-av img, .cv-avatar img, .cv-rev-av img, .adm-av img,
.lk-profile-chip-av img, .av-preview img, .rv-user-av img {
  width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block;
}
.sb-av-wrap {
  position: relative; width: 72px; height: 72px; margin: 0 auto 14px; cursor: pointer;
}
.sb-av-wrap .sb-av-overlay {
  position: absolute; inset: 0; border-radius: 50%;
  background: rgba(0,0,0,.45); color: #fff;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s; pointer-events: none;
  font-size: 22px;
}
.sb-av-wrap:hover .sb-av-overlay { opacity: 1; }
.av-edit { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.av-preview {
  width: 88px; height: 88px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg,#818CF8,#4F46E5);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Space Grotesk',sans-serif; font-size: 30px; font-weight: 700; color: #fff;
}
.av-actions { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 200px; }
.av-hint { font-size: 12px; color: var(--tx2); line-height: 1.55; margin: 12px 0 0; }
.av-btn-outline {
  display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px;
  border: 1.5px solid var(--bdr); border-radius: 10px; background: var(--bg);
  font-size: 13px; font-weight: 600; color: var(--tx); cursor: pointer; transition: all .15s;
}
.av-btn-outline:hover { border-color: var(--g7); color: var(--g7); }
.av-btn-outline.danger { color: #DC2626; border-color: rgba(220,38,38,.25); }
.av-btn-outline.danger:hover { background: rgba(220,38,38,.06); border-color: #DC2626; }
@media (max-width: 560px) {
  .av-edit { flex-direction: column; align-items: center; text-align: center; }
  .av-actions { align-items: center; width: 100%; }
}

/* Historia ceny */
.lk-price-change {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; padding: 5px 10px; border-radius: 8px;
  margin-bottom: 10px;
}
.lk-price-down { background: rgba(5,150,105,.1); color: #059669; border: .5px solid rgba(5,150,105,.2); }
.lk-price-up   { background: rgba(217,119,6,.1); color: #D97706; border: .5px solid rgba(217,119,6,.2); }
.lk-price-drop-badge {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 6px;
  background: rgba(5,150,105,.12); color: #059669; white-space: nowrap;
}
.lk-price-history { margin-bottom: 28px; }
.lk-ph-timeline { display: flex; flex-direction: column; gap: 0; }
.lk-ph-row {
  display: flex; align-items: center; gap: 12px; padding: 12px 0;
  border-bottom: .5px solid var(--bdr);
}
.lk-ph-row:last-child { border-bottom: none; }
.lk-ph-dot {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
  background: var(--g7); border: 2px solid var(--bg); box-shadow: 0 0 0 1px var(--bdr);
}
.lk-ph-row.first .lk-ph-dot { background: #059669; }
.lk-ph-row.latest .lk-ph-dot { background: var(--g7); box-shadow: 0 0 0 2px rgba(79,70,229,.25); }
.lk-ph-price { font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700; color: var(--tx); min-width: 90px; }
.lk-ph-date { font-size: 12px; color: var(--tx2); flex: 1; }
.lk-ph-diff { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 6px; }
.lk-ph-diff.down { background: rgba(5,150,105,.1); color: #059669; }
.lk-ph-diff.up   { background: rgba(217,119,6,.1); color: #D97706; }
.lk-price-benchmark {
  margin-top: 14px; padding: 12px 14px; border-radius: 12px;
  background: var(--surf); border: .5px solid var(--bdr);
  font-size: 12px; color: var(--tx2); line-height: 1.55;
}
.lk-price-benchmark strong { color: var(--tx); }
.lk-price-benchmark .fair { color: #059669; font-weight: 600; }
.lk-price-benchmark .above { color: #D97706; font-weight: 600; }

/* ── Szukam współlokatora ── */
.rm-wrap { max-width: 960px; margin: 0 auto; padding: 0 16px 48px; }
.rm-hero {
  background: linear-gradient(135deg, rgba(79,70,229,.08), rgba(124,58,237,.04));
  border: .5px solid rgba(79,70,229,.16); border-radius: 18px;
  padding: 24px 22px; margin-bottom: 20px;
}
.rm-hero h1 {
  font-family: 'Space Grotesk', sans-serif; font-size: 22px; font-weight: 700;
  color: var(--tx); margin: 0 0 8px; display: flex; align-items: center; gap: 10px;
}
.rm-hero h1 i { color: var(--g7); }
.rm-hero p { font-size: 14px; color: var(--tx2); line-height: 1.55; margin: 0; }
.rm-status {
  display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px;
  border-radius: 14px; margin-bottom: 18px; font-size: 13px; line-height: 1.5;
}
.rm-status.ok { background: rgba(5,150,105,.08); border: .5px solid rgba(5,150,105,.2); color: #047857; }
.rm-status.warn { background: rgba(217,119,6,.08); border: .5px solid rgba(217,119,6,.2); color: #B45309; }
.rm-status i { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.rm-filters {
  display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px;
  align-items: end;
}
.rm-filter-panel {
  background: var(--bg); border: .5px solid var(--bdr); border-radius: 16px;
  padding: 14px 16px; margin-bottom: 20px; display: flex; flex-direction: column; gap: 12px;
}
.rm-filter-panel .rm-filters { margin-bottom: 0; }
.rm-filter-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px; padding-top: 12px; border-top: .5px solid var(--bdr);
}
.rm-filter-toolbar-chips { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; min-width: 0; }
.rm-filter-gender-seg {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.rm-filter-gender-lbl {
  font-size: 12px; font-weight: 700; color: var(--tx2); white-space: nowrap;
}
.rm-pref-seg-compact .rm-pref-opt { padding: 7px 11px; font-size: 11px; }
.rm-filters label { font-size: 12px; font-weight: 600; color: var(--tx2); display: block; margin-bottom: 4px; }
.rm-filters-hint { font-size: 11px; font-weight: 500; color: var(--tx2); opacity: .85; }
.rm-filter-chips {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px;
}
.rm-filter-chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px;
  border: 1.5px solid var(--bdr); border-radius: 999px; font-size: 12px; font-weight: 600;
  color: var(--tx2); background: var(--bg); cursor: pointer; user-select: none; transition: all .15s;
}
.rm-filter-chip input { accent-color: var(--g7); width: 14px; height: 14px; margin: 0; flex-shrink: 0; }
.rm-filter-chip:has(input:checked) {
  border-color: rgba(79,70,229,.35); background: rgba(79,70,229,.08); color: var(--g7);
}
.rm-inp {
  width: 100%; box-sizing: border-box; border: .5px solid var(--bdr);
  border-radius: 10px; padding: 9px 11px; font-size: 14px; color: var(--tx);
  background: var(--bg); font-family: inherit;
}
.rm-inp:focus { outline: none; border-color: var(--g5); box-shadow: 0 0 0 3px var(--g1); }
.rm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.rm-card {
  background: var(--bg); border: .5px solid var(--bdr); border-radius: 16px;
  padding: 18px; display: flex; flex-direction: column; gap: 12px;
  transition: box-shadow .2s, border-color .2s;
}
.rm-card-top {
  display: flex; align-items: flex-start; gap: 10px;
}
.rm-card-flag {
  flex-shrink: 0; margin-top: 2px;
  width: 34px; height: 34px; padding: 0; border: 1px solid rgba(220,38,38,.22);
  border-radius: 10px; background: rgba(220,38,38,.07); color: #DC2626;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: 16px; line-height: 1;
  transition: background .15s, border-color .15s, color .15s, transform .1s, box-shadow .15s;
}
.rm-card-flag:hover {
  background: rgba(220,38,38,.12); border-color: rgba(220,38,38,.35);
  color: #B91C1C; box-shadow: 0 2px 8px rgba(220,38,38,.12);
}
.rm-card-flag:active { transform: scale(.94); }
.rm-card:hover { border-color: rgba(79,70,229,.25); box-shadow: 0 8px 28px rgba(79,70,229,.08); }
.rm-card-head { display: flex; gap: 12px; align-items: flex-start; flex: 1; min-width: 0; }
.rm-card-head-body { flex: 1; min-width: 0; }
.rm-card-av {
  width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg,#818CF8,#4F46E5);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Space Grotesk', sans-serif; font-size: 16px; font-weight: 700; color: #fff;
  overflow: hidden;
}
.rm-card-av img { width: 100%; height: 100%; object-fit: cover; }
.rm-card-name { font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700; color: var(--tx); }
.rm-card-name-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-right: 2px; }
.rm-card-gender {
  font-size: 11px; font-weight: 600; color: var(--tx2);
  padding: 2px 8px; border-radius: 999px;
  background: var(--surf); border: .5px solid var(--bdr); line-height: 1.4;
}
.rm-card-verified { color: #059669; font-size: 14px; flex-shrink: 0; }
.rm-card-name-link { color: inherit; text-decoration: none; }
.rm-card-name-link:hover { color: var(--g7); }
a.rm-card-av { text-decoration: none; transition: box-shadow .15s; }
a.rm-card-av:hover { box-shadow: 0 0 0 2px rgba(79,70,229,.28); }
.rm-card-meta { font-size: 12px; color: var(--tx2); margin-top: 2px; }
.rm-card-bio { font-size: 13px; color: var(--tx2); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rm-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.rm-tag {
  font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px;
  background: var(--surf); border: .5px solid var(--bdr); color: var(--tx2);
}
.rm-tag.on { background: rgba(79,70,229,.08); border-color: rgba(79,70,229,.2); color: var(--g7); }
.rm-social { display: flex; gap: 8px; flex-wrap: wrap; }
.rm-social a {
  display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600;
  color: var(--g7); text-decoration: none; padding: 4px 8px; border-radius: 8px;
  background: rgba(79,70,229,.06);
}
.rm-social a:hover { background: rgba(79,70,229,.12); }
.rm-card-actions { margin-top: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.rm-btn {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 10px 14px; border-radius: 11px; font-size: 13px; font-weight: 700;
  border: none; cursor: pointer; text-decoration: none;
  border: none; cursor: pointer; font-family: inherit; transition: all .15s;
}
.rm-btn-primary { background: var(--g7); color: #fff; }
.rm-btn-primary:hover { filter: brightness(1.05); }
.rm-btn-primary:disabled { opacity: .55; cursor: not-allowed; }
.rm-btn-outline { background: var(--bg); color: var(--tx); border: 1.5px solid var(--bdr); }
.rm-btn-outline:hover { border-color: var(--g7); color: var(--g7); }
.rm-btn-matched { background: rgba(5,150,105,.12); color: #059669; cursor: pointer; }
.rm-empty {
  text-align: center; padding: 48px 24px; color: var(--tx2);
  background: var(--bg); border: .5px dashed var(--bdr); border-radius: 16px;
}
.rm-empty i { font-size: 40px; opacity: .25; display: block; margin-bottom: 12px; }
.rm-life-groups { display: flex; flex-direction: column; gap: 14px; margin-top: 10px; }
.rm-life-grp-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
  color: var(--tx2); margin-bottom: 6px;
}
.rm-life-grp-hint { font-size: 12px; color: var(--tx2); line-height: 1.45; margin: 0 0 8px; }
.rm-life-list { display: flex; flex-direction: column; gap: 6px; }
.rm-life-list-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
@media (max-width: 520px) { .rm-life-list-2col { grid-template-columns: 1fr; } }
.rm-life-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-top: 8px; }
.rm-life-chip {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border: .5px solid var(--bdr); border-radius: 10px; font-size: 13px; color: var(--tx);
  cursor: pointer; background: var(--surf); transition: all .15s; line-height: 1.35;
}
.rm-life-chip input { accent-color: var(--g7); flex-shrink: 0; width: 16px; height: 16px; margin: 0; }
.rm-life-chip:has(input:checked) { border-color: var(--g7); background: rgba(79,70,229,.06); }
.rm-pref-list { display: flex; flex-direction: column; gap: 10px; }
.rm-pref-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 11px 12px; border: .5px solid var(--bdr); border-radius: 12px;
  background: var(--surf); flex-wrap: wrap;
}
.rm-pref-lbl { font-size: 13px; font-weight: 600; color: var(--tx); flex: 1; min-width: 140px; }
.rm-pref-seg {
  display: inline-flex; border: .5px solid var(--bdr); border-radius: 10px;
  overflow: hidden; background: var(--bg); flex-shrink: 0;
}
.rm-pref-opt {
  display: flex; align-items: center; justify-content: center; cursor: pointer; margin: 0;
  font-size: 12px; font-weight: 600; color: var(--tx2); user-select: none;
  padding: 8px 12px; border-right: .5px solid var(--bdr); transition: background .12s, color .12s;
}
.rm-pref-opt input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rm-pref-opt:last-child { border-right: none; }
.rm-pref-opt:has(input:checked) { background: var(--g7); color: #fff; }
@media (max-width: 520px) {
  .rm-pref-row { flex-direction: column; align-items: stretch; }
}
.adm-abuse-msg {
  background: var(--surf); border: .5px solid var(--bdr); border-radius: 10px;
  padding: 10px 12px; max-width: 280px;
}
.adm-abuse-msg-author { font-size: 11px; font-weight: 700; color: var(--g7); margin-bottom: 5px; }
.adm-abuse-msg-body { font-size: 12px; line-height: 1.45; color: var(--tx); white-space: pre-wrap; word-break: break-word; }
.adm-abuse-user-link { font-weight: 700; color: var(--g7); text-decoration: none; }
.adm-abuse-user-link:hover { text-decoration: underline; }
.adm-abuse-extra { margin-top: 6px; font-size: 11px; color: var(--tx2); line-height: 1.45; }
@media (max-width: 720px) {
  .rm-filter-toolbar { flex-direction: column; align-items: stretch; }
  .rm-filter-gender-seg { justify-content: space-between; }
  .rm-filter-gender-seg .rm-pref-seg { flex: 1; }
}
.msg-conv-tabs {
  display: flex; gap: 6px; margin-bottom: 10px;
}
.msg-conv-tab {
  flex: 1; text-align: center; padding: 7px 10px; border-radius: 9px;
  font-size: 12px; font-weight: 700; color: var(--tx2); background: var(--surf);
  border: 1.5px solid transparent; cursor: pointer; transition: all .15s;
}
.msg-conv-tab.active { background: var(--g1); color: var(--g7); border-color: rgba(79,70,229,.2); }
.msg-roommate-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 700;
  padding: 2px 8px; border-radius: 999px; background: rgba(79,70,229,.1); color: var(--g7);
}
.msg-shared-badge {
  display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 700;
  padding: 2px 8px; border-radius: 999px; background: rgba(5,150,105,.1); color: #047857;
}
.msg-rm-link-bar {
  display: none; padding: 10px 14px; border-top: .5px solid var(--bdr);
  background: rgba(79,70,229,.04); flex-shrink: 0;
}
.msg-rm-link-bar.show { display: block; }
.msg-rm-link-bar--pending { background: rgba(79,70,229,.06); }
.msg-rm-link-inner {
  display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap;
}
.msg-rm-link-text { flex: 1; min-width: 200px; font-size: 12.5px; line-height: 1.5; color: var(--tx2); }
.msg-rm-link-text strong { color: var(--tx); }
.msg-rm-link-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.msg-rm-link-btn {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
  border-radius: 10px; font-size: 12px; font-weight: 700; border: none; cursor: pointer;
  font-family: inherit; text-decoration: none;
}
.msg-rm-link-btn.primary { background: var(--g7); color: #fff; }
.msg-rm-link-btn.outline { background: var(--bg); color: var(--tx); border: 1.5px solid var(--bdr); }
.msg-rm-link-btn.danger { background: rgba(239,68,68,.1); color: #B91C1C; border: 1.5px solid rgba(239,68,68,.25); }
.msg-rm-link-btn.success { background: rgba(5,150,105,.12); color: #047857; border: 1.5px solid rgba(5,150,105,.2); }

.msg-viewing-bar {
  display: none; align-items: center; gap: 8px; padding-bottom: 2px;
}
.msg-viewing-propose-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; border-radius: 10px; border: 1.5px solid rgba(79,70,229,.25);
  background: rgba(79,70,229,.08); color: #4338CA; font-size: 12px; font-weight: 700;
  cursor: pointer; font-family: inherit; transition: background .15s, border-color .15s;
}
.msg-viewing-propose-btn:hover { background: rgba(79,70,229,.14); border-color: rgba(79,70,229,.4); }
.msg-viewing-card {
  align-self: center; max-width: 88%; width: 100%; max-width: 340px;
  background: var(--bg); border: 1.5px solid rgba(79,70,229,.22);
  border-radius: 16px; padding: 14px 16px; margin: 4px 0;
  box-shadow: 0 2px 12px rgba(79,70,229,.06);
}
.msg-viewing-card.mine { border-color: rgba(79,70,229,.35); }
.msg-viewing-card-head {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  font-family: 'Space Grotesk',sans-serif; font-size: 13px; font-weight: 700; color: var(--tx);
}
.msg-viewing-card-head i { color: var(--g7); font-size: 18px; }
.msg-viewing-when { font-size: 14px; font-weight: 700; color: var(--tx); margin-bottom: 4px; }
.msg-viewing-note { font-size: 12px; color: var(--tx2); line-height: 1.45; margin-bottom: 8px; white-space: pre-wrap; word-break: break-word; }
.msg-viewing-status {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 8px; margin-bottom: 10px;
}
.msg-viewing-status.pending { background: rgba(245,158,11,.12); color: #B45309; }
.msg-viewing-status.accepted { background: rgba(5,150,105,.12); color: #047857; }
.msg-viewing-status.declined { background: rgba(239,68,68,.1); color: #B91C1C; }
.msg-viewing-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.msg-viewing-time { font-size: 10px; color: var(--tx2); text-align: center; margin-top: 4px; }

/* Trust badges (pkt 7.1) */
.lk-trust-icons { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 6px; }
.lk-trust-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px; border-radius: 10px; font-size: 12px; font-weight: 600;
  border: 1.5px solid var(--bdr); background: var(--surf); color: var(--tx2);
  cursor: help; line-height: 1.2;
}
.lk-trust-badge i { font-size: 15px; flex-shrink: 0; }
.lk-trust-badge--on { background: rgba(16,110,86,.10); border-color: rgba(16,110,86,.28); color: #0F6E56; }
.lk-trust-badge--on.lk-trust-badge--rently { background: rgba(79,70,229,.12); border-color: rgba(79,70,229,.35); color: #4338CA; }
.lk-trust-badge--off { opacity: .55; }
.lk-trust-badge--compact {
  width: 26px; height: 26px; padding: 0; justify-content: center; border-radius: 8px;
}
.lk-trust-badge--compact .lk-trust-badge-label { display: none; }
.lk-trust-section {
  background: var(--surf); border: .5px solid var(--bdr); border-radius: 14px;
  padding: 16px 18px; margin-bottom: 24px;
}
.lk-trust-section-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px;
}
.lk-trust-section-sub { font-size: 12px; color: var(--tx2); margin-top: 4px; line-height: 1.45; }
.lk-trust-score {
  font-family: 'Space Grotesk',sans-serif; font-size: 15px; font-weight: 700; color: var(--g7);
  white-space: nowrap; padding: 4px 10px; border-radius: 10px; background: var(--g1);
}
.lk-trust-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.lk-trust-footnote { font-size: 11px; color: var(--tx2); margin: 12px 0 0; line-height: 1.45; }
.lk-listing .lk-trust-icons { margin-top: 0; margin-bottom: 6px; }

/* ── Hub Współlokatorzy ── */
.rh-header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 20px; background:var(--bg); border-bottom:.5px solid var(--bdr); position:sticky; top:0; z-index:10; }
.rh-logo { display:flex; align-items:center; gap:9px; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; color:var(--tx); text-decoration:none; }
.rh-wrap { max-width:900px; margin:24px auto; padding:0 16px 40px; }
.rh-hero { background:linear-gradient(135deg,rgba(79,70,229,.08),rgba(79,70,229,.02)); border:.5px solid rgba(79,70,229,.18); border-radius:18px; padding:20px 22px; margin-bottom:18px; }
.rh-hero h1 { font-family:'Space Grotesk',sans-serif; font-size:24px; margin:0 0 6px; display:flex; align-items:center; gap:10px; }
.rh-hero h1 i { color:var(--g7); }
.rh-hero p { margin:0; font-size:14px; color:var(--tx2); line-height:1.55; }
.rh-partner { display:flex; align-items:center; gap:14px; margin-top:14px; padding-top:14px; border-top:.5px solid rgba(79,70,229,.12); flex-wrap:wrap; }
.rh-partner-av { width:48px; height:48px; border-radius:50%; background:linear-gradient(135deg,#818CF8,#4F46E5); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif; font-weight:700; overflow:hidden; flex-shrink:0; }
.rh-partner-av img { width:100%; height:100%; object-fit:cover; }
.rh-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.rh-tab {
  padding:9px 14px; border-radius:999px; font-size:13px; font-weight:700; cursor:pointer;
  border:1.5px solid var(--bdr); background:var(--bg); color:var(--tx2); transition:all .15s;
}
.rh-tab.active { background:var(--g1); color:var(--g7); border-color:rgba(79,70,229,.25); }
.rh-tab .n { display:inline-flex; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:rgba(79,70,229,.12); color:var(--g7); font-size:10px; align-items:center; justify-content:center; margin-left:5px; }
.rh-card { background:var(--bg); border:.5px solid var(--bdr); border-radius:16px; padding:18px 20px; margin-bottom:14px; }
.rh-sec-title { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:15px; margin:0 0 12px; display:flex; align-items:center; gap:8px; }
.rh-sec-title i { color:var(--g7); }
.rh-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-top:.5px solid var(--bdr); text-decoration:none; color:var(--tx); }
.rh-row:first-of-type { border-top:none; padding-top:0; }
.rh-row-meta { font-size:12px; color:var(--tx2); margin-top:2px; }
.rh-badge { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap; }
.rh-empty { text-align:center; padding:28px 16px; color:var(--tx2); font-size:13px; line-height:1.55; }
.rh-empty i { font-size:32px; opacity:.25; display:block; margin-bottom:8px; }
.rh-quick { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; }
.rh-quick a {
  display:flex; flex-direction:column; gap:8px; padding:14px; border-radius:14px; border:.5px solid var(--bdr);
  background:var(--surf); text-decoration:none; color:var(--tx); transition:all .15s;
}
.rh-quick a:hover { border-color:rgba(79,70,229,.3); box-shadow:0 4px 16px rgba(79,70,229,.08); }
.rh-quick a i { font-size:22px; color:var(--g7); }
.rh-quick a span { font-size:12px; font-weight:700; }
.rh-subsec { margin-top:14px; padding-top:14px; border-top:.5px solid var(--bdr); }
.rh-subsec:first-of-type { margin-top:0; padding-top:0; border-top:none; }
.rh-subsec-title { font-size:12px; font-weight:700; color:var(--tx2); text-transform:uppercase; letter-spacing:.04em; margin:0 0 8px; display:flex; align-items:center; gap:6px; }
.rh-subsec-title i { font-size:14px; }
.rh-empty-sm { font-size:12px; color:var(--tx2); padding:8px 0 4px; }
.rh-picker-hint { margin:0 0 10px; font-size:12px; color:var(--tx2); line-height:1.5; }

/* Przyciski udostępniania współlokatorowi */
.rh-share-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  font-family:inherit; font-size:12px; font-weight:700; line-height:1.2;
  padding:7px 12px; border-radius:10px; border:none; cursor:pointer;
  background:linear-gradient(135deg,#6366F1,#4F46E5); color:#fff;
  box-shadow:0 2px 8px rgba(79,70,229,.22); transition:transform .12s, box-shadow .12s;
  white-space:normal; text-align:center;
}
.rh-share-btn:hover { transform:translateY(-1px); box-shadow:0 4px 14px rgba(79,70,229,.28); }
.rh-share-btn i { font-size:15px; flex-shrink:0; }
.rh-share-btn--muted { background:var(--surf); color:var(--tx2); border:.5px solid var(--bdr); box-shadow:none; }
.rh-share-btn--muted:hover { box-shadow:0 2px 8px rgba(15,23,42,.06); }
.rh-share-btn--compact { width:100%; font-size:11px; padding:6px 8px; }
.rh-share-btn--compact span { flex:1; }
.rh-share-btn--chat { background:linear-gradient(135deg,#0EA5E9,#0284C7); box-shadow:0 2px 10px rgba(14,165,233,.22); white-space:nowrap; }
.rh-share-btn--chat:hover { box-shadow:0 4px 14px rgba(14,165,233,.32); }
.rh-share-btn--row { font-size:11px; padding:7px 10px; white-space:nowrap; width:auto; }
.rh-row-actions--stack {
  display:flex; flex-direction:column; align-items:stretch; gap:6px;
  flex-shrink:0; min-width:min(100%, 200px); max-width:220px;
}
.rh-row-actions--stack .rh-share-btn { width:100%; justify-content:center; }

/* Rozwijane sekcje „Dodaj do wspólnych” */
.rh-acc-list { display:flex; flex-direction:column; gap:8px; }
.rh-acc { border:.5px solid var(--bdr); border-radius:12px; background:var(--surf); overflow:hidden; }
.rh-acc-head {
  list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px; cursor:pointer; font-weight:700; font-size:13px; color:var(--tx);
  user-select:none;
}
.rh-acc-head::-webkit-details-marker { display:none; }
.rh-acc-label { display:flex; align-items:center; gap:8px; min-width:0; }
.rh-acc-label i { color:var(--g7); font-size:16px; }
.rh-acc-n {
  display:inline-flex; min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  background:rgba(79,70,229,.1); color:var(--g7); font-size:11px; align-items:center; justify-content:center;
}
.rh-acc-chev { color:var(--tx2); font-size:16px; transition:transform .2s; flex-shrink:0; }
.rh-acc[open] .rh-acc-chev { transform:rotate(180deg); }
.rh-acc-body { padding:0 14px 14px; border-top:.5px solid var(--bdr); }
.rh-acc-body .rh-picker-hint { margin-top:10px; }

/* Wiersze w accordion */
.rh-pick-row {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:10px 0; border-top:.5px solid var(--bdr);
}
.rh-pick-row:first-child { border-top:none; }
.rh-pick-row-text { min-width:0; flex:1; }
.rh-pick-row .rh-share-btn { width:auto; flex-shrink:0; max-width:48%; }

/* Kafelki ulubionych */
.rh-fav-tiles {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(148px,1fr)); gap:10px; margin-top:4px;
}
.rh-fav-tile {
  border:.5px solid var(--bdr); border-radius:12px; overflow:hidden; background:var(--bg);
  display:flex; flex-direction:column;
}
.rh-fav-tile-img {
  aspect-ratio:4/3; background:center/cover no-repeat #EEF2FF;
}
.rh-fav-tile-img--empty {
  display:flex; align-items:center; justify-content:center; color:rgba(79,70,229,.35); font-size:28px;
}
.rh-fav-tile-link { display:block; text-decoration:none; }
.rh-fav-tile-body { padding:10px; display:flex; flex-direction:column; gap:6px; flex:1; }
.rh-fav-tile-title {
  font-size:12px; font-weight:700; color:var(--tx); text-decoration:none; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.rh-fav-tile-meta { font-size:11px; color:var(--tx2); }

/* Miniatury w wspólnych listach */
.rh-row--with-thumb { align-items:flex-start; }
.rh-row--with-thumb .rh-row-link { padding-top:2px; }
.rh-row-thumb {
  width:52px; height:52px; border-radius:10px; flex-shrink:0;
  background:center/cover no-repeat #EEF2FF; border:.5px solid var(--bdr);
}
.rh-row-thumb--empty {
  display:flex; align-items:center; justify-content:center; color:rgba(79,70,229,.3); font-size:20px;
}
.rh-row-thumb--chat { background:#EEF2FF; }
.rh-row-body { min-width:0; flex:1; }
.rh-row-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; align-self:flex-start; }

/* Karty czatów współlokatorów */
.rh-chat-list { display:flex; flex-direction:column; gap:10px; }
.rh-chat-card {
  display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:12px 14px;
  padding:14px; border-radius:14px; border:.5px solid var(--bdr);
  background:var(--surf); align-items:start;
}
.rh-chat-card--compact {
  grid-template-columns:minmax(0,1fr) auto; padding:12px 14px;
}
.rh-chat-card__thumb { display:block; text-decoration:none; flex-shrink:0; }
.rh-chat-card__img {
  display:block; width:56px; height:56px; border-radius:12px;
  background:center/cover no-repeat #EEF2FF; border:.5px solid var(--bdr);
}
.rh-chat-card__img--empty {
  display:flex; align-items:center; justify-content:center;
  color:rgba(79,70,229,.35); font-size:22px;
}
.rh-chat-card__main { min-width:0; }
.rh-chat-card__head {
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px; margin-bottom:6px;
}
.rh-chat-card__title {
  font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:700;
  color:var(--tx); text-decoration:none; line-height:1.35;
}
.rh-chat-card__title:hover { color:var(--g7); }
.rh-chat-owner {
  display:inline-flex; align-items:center; gap:4px;
  font-size:10px; font-weight:700; color:var(--g7);
  background:rgba(79,70,229,.1); padding:2px 8px; border-radius:999px;
}
.rh-chat-owner--partner { color:#4338CA; background:rgba(99,102,241,.12); }
.rh-chat-facts { display:flex; flex-wrap:wrap; gap:5px 12px; }
.rh-chat-fact {
  display:inline-flex; align-items:center; gap:4px;
  font-size:11px; color:var(--tx2); line-height:1.35;
}
.rh-chat-fact i { font-size:12px; opacity:.5; flex-shrink:0; }
.rh-chat-fact--price { font-weight:600; color:var(--tx); }
.rh-chat-preview {
  display:flex; align-items:flex-start; gap:6px; margin-top:8px;
  padding:8px 10px; border-radius:8px;
  background:var(--bg); border:.5px solid var(--bdr);
  font-size:11px; color:var(--tx2); line-height:1.4; min-width:0;
}
.rh-chat-preview__label { flex-shrink:0; opacity:.55; font-size:12px; line-height:1.2; }
.rh-chat-preview__text {
  min-width:0; overflow:hidden; display:-webkit-box;
  -webkit-line-clamp:2; -webkit-box-orient:vertical;
}
.rh-chat-card__open {
  display:inline-flex; align-items:center; gap:5px; margin-top:10px;
  font-size:12px; font-weight:600; color:var(--g7); text-decoration:none;
}
.rh-chat-card__open:hover { text-decoration:underline; text-underline-offset:2px; }
.rh-chat-card__side {
  display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-start;
  align-self:stretch; padding-top:2px;
}
.rh-chat-card__side--pick { justify-content:center; align-self:center; }
.rh-share-btn--ghost {
  background:transparent !important; color:var(--tx2) !important;
  border:.5px solid var(--bdr) !important; box-shadow:none !important;
  font-size:11px !important; padding:6px 10px !important;
}
.rh-share-btn--ghost:hover {
  color:var(--tx) !important; border-color:rgba(79,70,229,.25) !important;
  background:var(--bg) !important; box-shadow:none !important; transform:none;
}
.rh-acc-body .rh-chat-list { gap:8px; }
.rh-acc-body .rh-chat-card--compact { background:var(--bg); }

@media (max-width:560px) {
  .rh-pick-row { flex-direction:column; align-items:stretch; }
  .rh-pick-row .rh-share-btn { max-width:none; }
  .rh-row-actions { flex-wrap:wrap; justify-content:flex-end; }
}
@media (max-width: 640px) {
  .rm-filters { grid-template-columns: 1fr; }
  .rh-quick { grid-template-columns:1fr 1fr; }
}

/* Koszt wprowadzenia (czynsz + kaucja + prowizja + ukryte koszty) */
.lk-mic-block {
  margin-top: 12px; padding: 12px 14px;
  background: var(--surf); border: .5px solid var(--bdr); border-radius: 12px;
}
.lk-mic-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font-size: 12.5px; color: var(--tx2); padding: 3px 0;
}
.lk-mic-row span:last-child { font-weight: 600; color: var(--tx); white-space: nowrap; }
.lk-mic-total {
  margin-top: 8px; padding-top: 8px; border-top: .5px solid var(--bdr);
  font-size: 13px; color: var(--tx);
}
.lk-mic-total span:last-child strong { color: var(--g7); font-size: 15px; }
.lk-mic-compact {
  font-size: 11px; color: var(--tx2); line-height: 1.45; margin-top: 4px;
}
.lk-mic-compact strong { color: var(--g7); font-weight: 700; }
.lk-price-plus { font-weight: 500; color: var(--tx2); margin: 0 2px; }
.lk-price-split-hint { font-size: 11px; color: var(--tx2); margin-top: 2px; line-height: 1.35; }
.lk-price .lk-price-split-hint { margin-bottom: 4px; }

/* ── Cena na osobę / współlokator ── */
.lk-ppp-splits {
  display: flex; flex-direction: column; gap: 2px;
  margin-top: 4px;
}
.lk-ppp-line {
  font-size: 11px; font-weight: 500; color: var(--tx2); line-height: 1.4;
}
.lk-ppp-shared {
  display: inline; font-size: 11px; font-weight: 500; color: var(--tx2);
}
.lk-roommate-strip {
  margin-top: 12px; padding-top: 12px;
  border-top: .5px solid var(--bdr);
}
.lk-roommate-strip--compact { margin-top: 10px; padding-top: 10px; }
.lk-roommate-strip__copy { margin-bottom: 10px; }
.lk-roommate-strip__slogan {
  display: block;
  font-size: 12px; font-weight: 600; color: var(--tx);
  line-height: 1.35;
}
.lk-roommate-strip__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; padding: 9px 12px; border-radius: 9px;
  font-size: 12px; font-weight: 600; text-decoration: none;
  color: var(--g7); background: var(--g1); border: .5px solid rgba(79,70,229,.22);
  transition: background .15s, border-color .15s;
}
.lk-roommate-strip__btn:hover { background: #E0E7FF; border-color: var(--g7); }
.lk-roommate-strip--detail {
  margin: 14px 0 0; padding: 14px;
  background: linear-gradient(135deg, rgba(79,70,229,.04), rgba(129,140,248,.06));
  border: .5px solid rgba(79,70,229,.14); border-radius: 12px;
}
.lk-roommate-strip--detail .lk-roommate-strip__btn {
  background: var(--g7); color: #fff; border-color: var(--g7);
}
.lk-roommate-strip--detail .lk-roommate-strip__btn:hover { background: var(--g5); }
.lk-ppp-card {
  margin: 12px 0 14px; padding: 12px 13px;
  background: var(--surf); border: .5px solid var(--bdr); border-radius: 10px;
}
.lk-ppp-card-title {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: var(--tx2); margin-bottom: 8px;
}
.lk-ppp-card-hint { font-size: 10px; color: var(--tx2); margin-top: 6px; line-height: 1.35; }
.lk-rent-block { margin-top: 10px; margin-bottom: 4px; }
.lk-admin-inc { display: flex; flex-wrap: wrap; gap: 6px; }
.lk-admin-inc-chip {
  font-size: 10px; font-weight: 600; color: var(--g7);
  background: rgba(79,70,229,.08); border: .5px solid rgba(79,70,229,.18);
  padding: 3px 8px; border-radius: 999px;
}

/* ============================================================
   MOBILE RESPONSIVE — wspólne komponenty (v32)
   ============================================================ */

/* Stopka */
.lk-footer {
  padding: 28px 40px;
  border-top: .5px solid var(--bdr);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  background: var(--bg);
}
.lk-flinks { display: flex; flex-wrap: wrap; gap: 16px 22px; }
.lk-fl { font-size: 12px; color: var(--tx2); text-decoration: none; }
.lk-fl:hover { color: var(--tx); }

/* Nagłówki stron modułowych (współlokator, hub) */
.rm-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 14px 20px;
  background: var(--bg); border-bottom: .5px solid var(--bdr);
  position: sticky; top: 0; z-index: 50;
}
.rm-wrap { max-width: 1100px; margin: 24px auto 40px; padding: 0 20px; }

/* Auth — ukryj tekst pomocniczy w nav */
.lk-nav-auth-hint { font-size: 13px; color: var(--tx2); white-space: nowrap; }

/* Podgląd legal / auth */
.lk-legal-page { max-width: 720px; margin: 0 auto; padding: 32px 40px 48px; }
.lk-legal-hero { padding: 32px 40px; }

/* Modale zgłoszeń — wspólne */
.lk-modal-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(15,23,42,.45); z-index: 10100;
  align-items: center; justify-content: center;
  padding: 20px; box-sizing: border-box;
}
.lk-modal-overlay.open { display: flex; }
.lk-modal-card {
  background: var(--bg); border-radius: 16px;
  max-width: 440px; width: 100%; padding: 24px;
  border: .5px solid var(--bdr);
  max-height: min(90vh, 720px); overflow-y: auto;
  box-sizing: border-box;
}
.lk-modal-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px; margin: 0 0 12px; line-height: 1.3;
}
.lk-modal-actions {
  display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap;
}

@media (max-width: 768px) {
  body.lk-has-mobile-tabs .lk-page-wide {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px) + 20px) !important;
  }
  body.lk-has-mobile-tabs .prof-layout {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px) + 16px) !important;
  }
  .prof-nav { top: 52px; }

  /* Profil — bez poziomego scrolla */
  body.prof-page { overflow-x: clip; max-width: 100vw; }
  .prof-layout { overflow-x: hidden; max-width: 100%; width: 100%; box-sizing: border-box; }
  .prof-layout > div { min-width: 0; max-width: 100%; }
  .prof-layout .lk-input,
  .prof-layout textarea,
  .prof-layout select { max-width: 100%; box-sizing: border-box; }
  .prof-layout .g2 { min-width: 0; }
  .summary-card { width: 100%; max-width: 100%; box-sizing: border-box; }
  .sb-div { margin-left: 0 !important; margin-right: 0 !important; }
  .sb-name { word-break: break-word; overflow-wrap: anywhere; hyphens: auto; padding: 0 2px; }
  .sidebar-col { max-width: 100%; min-width: 0; }

  /* Mapa — panel „Więcej” nad kafelkami Leaflet */
  body.lk-more-open .leaflet-container { z-index: 1 !important; }
}

/* ── Cookie bar (niezbędne pliki cookie) — zawsze przypięty do dołu viewportu ── */
.lk-cookie-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  padding: 14px 20px calc(14px + env(safe-area-inset-bottom, 0px));
  background: rgba(15, 23, 42, .96); color: #E2E8F0;
  border-top: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  animation: lkCookieIn .35s ease;
}
.lk-cookie-bar--hide { animation: lkCookieOut .28s ease forwards; }
@keyframes lkCookieIn { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes lkCookieOut { to { transform: translateY(100%); opacity: 0; } }
.lk-cookie-inner {
  max-width: 1100px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.lk-cookie-text { font-size: 13px; line-height: 1.5; margin: 0; flex: 1; min-width: 240px; }
.lk-cookie-text a { color: #A5B4FC; text-decoration: underline; }
.lk-cookie-btn {
  padding: 10px 18px; border-radius: 9px; border: none;
  background: #4F46E5; color: #fff; font-weight: 600; font-size: 13px;
  cursor: pointer; font-family: inherit; white-space: nowrap;
}
.lk-cookie-btn:hover { background: #4338CA; }
.lk-cookie-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.lk-cookie-btn--ghost {
  background: transparent; color: #E2E8F0; border: 1px solid rgba(255,255,255,.25);
}
.lk-cookie-btn--ghost:hover { background: rgba(255,255,255,.08); }

@media (max-width: 640px) {
  .lk-footer {
    padding: 20px 16px;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .lk-flinks { gap: 12px 18px; }

  .lk-nav-auth-hint { display: none !important; }

  .lk-modal-overlay { padding: 12px; align-items: flex-end; }
  .lk-modal-card { padding: 20px 16px; border-radius: 18px 18px 0 0; max-height: 88vh; }
  .lk-modal-actions { flex-direction: column-reverse; }
  .lk-modal-actions .lk-btn { width: 100%; justify-content: center; }

  .rm-header { padding: 10px 14px; }
  .rm-header .lk-btn span { display: none; }
  .rm-header .lk-btn { min-width: 38px; justify-content: center; padding: 9px 10px; }
  .rm-wrap { margin: 16px auto 32px; padding: 0 14px; }

  .rh-header { padding: 10px 14px; }
  .rh-header .lk-btn span { display: none; }
  .rh-header .lk-btn { min-width: 38px; justify-content: center; padding: 9px 10px; }
  .rh-wrap { margin: 16px auto 32px; padding: 0 14px 32px; }

  /* ── Współlokatorzy: filtry ── */
  .rm-filters { grid-template-columns: 1fr; }
  .rm-filters .lk-btn { width: 100%; justify-content: center; height: 42px; }
  .rm-filter-panel { padding: 12px 14px; border-radius: 14px; }
  .rm-filter-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
  .rm-filter-toolbar-chips {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%;
  }
  .rm-filter-chip {
    justify-content: center; text-align: center;
    padding: 10px 8px; font-size: 11px; line-height: 1.25;
    border-radius: 12px;
  }
  .rm-filter-gender-seg {
    width: 100%; flex-direction: column; align-items: stretch; gap: 8px;
  }
  .rm-filter-gender-lbl { white-space: normal; }

  /* ── Segmenty Tak/Nie/Obojętnie — siatka 2 kolumny zamiast ściskania ── */
  .rm-pref-seg,
  .rm-pref-seg-compact {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px; width: 100%;
    border: none; background: transparent; overflow: visible;
  }
  .rm-pref-opt {
    flex: unset !important;
    border: .5px solid var(--bdr) !important;
    border-radius: 10px !important;
    background: var(--bg);
    padding: 10px 6px !important;
    font-size: 11px !important;
    text-align: center; line-height: 1.25;
    min-height: 40px; justify-content: center;
    white-space: normal; word-break: break-word;
  }
  .rm-pref-row { flex-direction: column; align-items: stretch; gap: 10px; }
  .rm-pref-lbl { min-width: 0; width: 100%; }

  /* ── Karty profili współlokatorów ── */
  .rm-grid { grid-template-columns: 1fr; gap: 12px; }
  .rm-card { padding: 16px; }
  .rm-card-top { gap: 8px; }
  .rm-card-head { gap: 10px; min-width: 0; }
  .rm-card-name-row { gap: 6px; }
  .rm-card-name-row .rm-card-name-link {
    min-width: 0; flex: 1;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .rm-card-gender { flex-shrink: 0; font-size: 10px; }
  .rm-card-flag { width: 32px; height: 32px; font-size: 15px; }
  .rm-card-actions { flex-direction: column; gap: 8px; }
  .rm-card-actions .rm-btn {
    width: 100%; justify-content: center;
    white-space: normal; line-height: 1.3; font-size: 12px;
    padding: 11px 12px;
  }
  .rm-social { gap: 6px; }
  .rm-social a { flex: 1 1 calc(50% - 6px); justify-content: center; min-width: 0; }
  .rm-status { flex-direction: row; align-items: flex-start; }

  /* ── Hub współlokatorów ── */
  .rh-tabs {
    flex-wrap: nowrap; overflow-x: auto;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
    gap: 6px; padding-bottom: 4px; margin-bottom: 14px;
  }
  .rh-tabs::-webkit-scrollbar { display: none; }
  .rh-tab { flex-shrink: 0; padding: 8px 12px; font-size: 12px; }
  .rh-hero { padding: 16px; }
  .rh-hero h1 { font-size: 20px; flex-wrap: wrap; }
  .rh-partner { flex-direction: column; align-items: stretch; gap: 12px; }
  .rh-partner > div:last-child,
  .rh-partner-actions {
    width: 100%; display: flex; flex-direction: column; gap: 8px;
  }
  .rh-partner .lk-btn { width: 100%; justify-content: center; }
  .rh-partner-unlink { color: #B91C1C !important; border-color: rgba(239,68,68,.3) !important; }
  .rh-quick { grid-template-columns: 1fr 1fr; gap: 8px; }
  .rh-row {
    flex-direction: column; align-items: stretch; gap: 10px;
    padding: 14px 0;
  }
  .rh-row-actions,
  .rh-row-actions--stack {
    width: 100%; max-width: none; min-width: 0;
    flex-direction: column; align-items: stretch; gap: 8px;
  }
  .rh-row-actions .rh-share-btn,
  .rh-row-actions--stack .rh-share-btn { width: 100%; max-width: none; }
  .rh-pick-row { flex-direction: column; align-items: stretch; gap: 10px; }
  .rh-pick-row .rh-share-btn { width: 100%; max-width: none; }
  .rh-fav-tiles { grid-template-columns: 1fr 1fr; }
  .rh-chat-card {
    grid-template-columns:48px minmax(0,1fr);
    gap:10px 12px; padding:12px;
  }
  .rh-chat-card__img { width:48px; height:48px; }
  .rh-chat-card__side {
    grid-column:1 / -1; flex-direction:row; justify-content:flex-end;
    align-self:auto; padding-top:0; border-top:.5px solid var(--bdr); padding-top:10px;
  }
  .rh-chat-card--compact { grid-template-columns:minmax(0,1fr); }
  .rh-chat-card--compact .rh-chat-card__side--pick {
    grid-column:1 / -1; justify-content:stretch;
  }
  .rh-chat-card--compact .rh-chat-card__side--pick .rh-share-btn { width:100%; }

  /* ── Czat: nagłówek, uczestnicy, pasek połączenia ── */
  .msg-chat-head {
    padding: 10px 12px; gap: 8px;
    flex-wrap: nowrap; align-items: center;
  }
  .msg-chat-head .lk-btn { display: none; }
  .msg-chat-head > div[style*="flex:1"] { min-width: 0; overflow: hidden; }
  .msg-chat-name {
    font-size: 13px; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
  }
  .msg-chat-role { font-size: 10px; line-height: 1.35; }
  .msg-participant-strip {
    max-width: 100%; max-height: 52px; overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    gap: 4px; margin-top: 3px;
  }
  .msg-part-chip { font-size: 10px; padding: 3px 7px; }
  .msg-delete-btn, .msg-report-btn { width: 32px; height: 32px; flex-shrink: 0; }
  .msg-conv-tabs { gap: 4px; }
  .msg-conv-tab { padding: 8px 6px; font-size: 11px; }
  .msg-conv-item { align-items: flex-start; padding: 12px 14px; }
  .msg-conv-name { flex-wrap: wrap; gap: 4px; }
  .msg-conv-meta { gap: 4px; }
  .msg-roommate-badge, .msg-shared-badge { font-size: 9px; padding: 2px 6px; }
  .msg-rm-link-inner { flex-direction: column; gap: 12px; }
  .msg-rm-link-text { min-width: 0; width: 100%; font-size: 12px; }
  .msg-rm-link-actions { width: 100%; flex-direction: column; gap: 8px; }
  .msg-rm-link-btn { width: 100%; justify-content: center; padding: 11px 14px; }

  .lk-legal-page { padding: 20px 16px 40px; }
  .lk-legal-hero { padding: 24px 16px; }

  /* Listing feature tiles */
  .lk-feat-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 8px; }
  .lk-feat-tile { padding: 12px 8px; font-size: 11px; }
  .lk-breadcrumb { padding: 12px 16px !important; }

  /* Dashboard listing rows */
  .ml { flex-wrap: wrap; align-items: flex-start; gap: 10px; }
  .ml-thumb { width: 48px; height: 48px; }
  .ml > a:not(.ml-thumb) { flex: 1; min-width: 0; }
  .ml-right { margin-left: 0; width: 100%; text-align: left; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; justify-content: space-between; }
  .ml-actions { margin-top: 0; justify-content: flex-start; }
  .ml-title { max-width: 100%; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

  /* CV block on dashboard */
  .cv-block { flex-wrap: wrap; gap: 12px; }
  .cv-score { margin-left: 0; width: 100%; text-align: left; display: flex; align-items: baseline; gap: 8px; }
  .cv-score-n { font-size: 24px; }

  /* 2FA recovery codes */
  .twofa-recovery-grid { grid-template-columns: 1fr !important; }

  /* Add listing — miejsce na dolny pasek */
  body.lk-has-mobile-tabs .add-layout {
    padding-bottom: calc(68px + env(safe-area-inset-bottom, 0px) + 24px) !important;
  }
  body.lk-has-mobile-tabs .prog-wrap { top: 0; }

  /* Bąbelki czatu */
  .msg-bubble-wrap { max-width: 88%; }
  .msg-input-area { padding: 10px 12px; }
  .msg-messages { padding: 12px 12px; }
}

@media (max-width: 480px) {
  .lk-feat-grid { grid-template-columns: 1fr 1fr; }
  .lk-stat-cell { min-width: 72px; padding: 10px 6px; }
  .lk-stat-val { font-size: 15px; }
  .rm-hero h1 { font-size: 20px; }
  .rm-hero { padding: 18px 16px; }
  .rm-filter-toolbar-chips { grid-template-columns: 1fr; }
  .rm-social a { flex: 1 1 100%; }
  .rh-quick { grid-template-columns: 1fr; }
  .rh-fav-tiles { grid-template-columns: 1fr; }
}

/* ── Nagłówek modułów (protokół, współlokator) ── */
.lk-module-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  background: var(--bg);
  border-bottom: .5px solid var(--bdr);
  position: sticky;
  top: 0;
  z-index: 100;
}
.lk-module-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--tx);
  text-decoration: none;
  flex-shrink: 0;
}
.lk-module-nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
  justify-content: center;
  min-width: 0;
}
.lk-module-nav a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tx2);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.lk-module-nav a:hover { background: var(--surf); color: var(--tx); }
.lk-module-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.lk-module-back span { display: inline; }
@media (max-width: 640px) {
  .lk-module-nav a span { display: none; }
  .lk-module-back span { display: none; }
  .lk-module-header { padding: 10px 14px; }
}
@media (max-width: 768px) {
  body:has([data-lk-module-header]).lk-has-mobile-tabs .pr-wrap,
  body:has([data-lk-module-header]).lk-has-mobile-tabs .rm-wrap,
  body:has([data-lk-module-header]).lk-has-mobile-tabs .rmk-wrap,
  body:has([data-lk-module-header]).lk-has-mobile-tabs .rh-wrap {
    padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 400px) {
  .rm-pref-opt { padding: 9px 5px !important; font-size: 10px !important; }
  .rm-filter-chip { font-size: 10px; padding: 9px 7px; }
}

/* ── Hub współlokatora: zakładki Szukaj | Moje ── */
.rm-top-tabs-wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.rm-top-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
  padding: 4px;
  background: var(--bg);
  border: .5px solid var(--bdr);
  border-radius: 12px;
}
.rm-top-tab {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  color: var(--tx2);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.rm-top-tab:hover { color: var(--tx); background: var(--surf); }
.rm-top-tab.active { background: var(--g1); color: var(--g7); }
.rm-hub-iframe {
  width: 100%;
  min-height: calc(100vh - 140px);
  border: none;
  border-radius: 14px;
  background: var(--surf);
}
body.rm-embed .lk-module-header { display: none !important; }
body.rm-embed .rh-wrap { margin-top: 0; padding-top: 8px; }

/* ── Landing: menu gościa (mobile) ── */
.lk-nav-burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: .5px solid var(--bdr);
  border-radius: 10px;
  background: var(--bg);
  color: var(--tx);
  cursor: pointer;
  flex-shrink: 0;
}
.lk-guest-sheet { position: fixed; inset: 0; z-index: 2000; }
.lk-guest-sheet[hidden] { display: none; }
.lk-guest-sheet-backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.45); }
.lk-guest-sheet-panel {
  position: absolute;
  top: 0; right: 0;
  width: min(320px, 92vw);
  height: 100%;
  background: var(--bg);
  box-shadow: -8px 0 32px rgba(15,23,42,.12);
  display: flex;
  flex-direction: column;
  animation: lkSheetIn .2s ease;
}
@keyframes lkSheetIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
.lk-guest-sheet-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border-bottom: .5px solid var(--bdr);
}
.lk-guest-sheet-title { font-weight: 700; font-size: 15px; color: var(--tx); }
.lk-guest-sheet-close {
  width: 36px; height: 36px;
  border: none; border-radius: 9px;
  background: var(--surf);
  color: var(--tx2);
  cursor: pointer;
}
.lk-guest-sheet-links {
  display: flex;
  flex-direction: column;
  padding: 12px;
  gap: 4px;
  overflow-y: auto;
}
.lk-guest-sheet-links a {
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--tx);
  text-decoration: none;
}
.lk-guest-sheet-links a:hover { background: var(--surf); }
@media (max-width: 768px) {
  .lk-nav-burger { display: inline-flex; }
}
body.lk-guest-open { overflow: hidden; }

/* ── Zapisane wyszukiwania ── */
.lk-saved-bar {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.lk-saved-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: .5px solid var(--bdr);
  background: var(--bg);
  font-size: 12px;
  font-weight: 600;
  color: var(--tx2);
  cursor: pointer;
  text-decoration: none;
}
.lk-saved-chip:hover { border-color: var(--g5); color: var(--g7); }
.lk-saved-chip .lk-saved-del {
  border: none;
  background: none;
  padding: 0 2px;
  color: var(--tx2);
  cursor: pointer;
  line-height: 1;
}
@media (max-width: 768px) {
  .lk-saved-bar { padding: 0 16px 12px; }
}

/* Animacja ikony odświeżania (patrz lokum_app.js) */
@keyframes lk-icon-spin { to { transform: rotate(360deg); } }
.lk-icon-spin { display: inline-block; animation: lk-icon-spin .7s cubic-bezier(.4,0,.2,1); }

/* ═══════════════════════════════════════════════════════════
   Strony logowania / rejestracji — split layout
   ═══════════════════════════════════════════════════════════ */
body.lk-auth-page {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  background: var(--surf);
  min-height: 100vh;
}

.lk-nav-auth {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px);
  border-bottom: .5px solid var(--bdr);
}

.lk-auth-shell {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(360px, 480px);
  min-height: calc(100vh - 61px);
  max-width: 1200px;
  margin: 0 auto;
  align-items: stretch;
}

.lk-auth-brand {
  position: relative;
  padding: 56px 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse 80% 60% at 10% 20%, rgba(129,140,248,.35), transparent 55%),
    radial-gradient(ellipse 60% 50% at 90% 80%, rgba(79,70,229,.2), transparent 50%),
    linear-gradient(165deg, #1E1B4B 0%, #312E81 48%, #4338CA 100%);
  color: #fff;
  border-radius: 0 28px 28px 0;
  margin: 20px 0 20px 20px;
}

.lk-auth-brand::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  opacity: .5;
  pointer-events: none;
}

.lk-auth-brand-inner { position: relative; z-index: 1; max-width: 420px; }

.lk-auth-brand-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  margin-bottom: 32px;
}

.lk-auth-brand-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  font-size: 12px;
  font-weight: 600;
  color: #C7D2FE;
  margin-bottom: 20px;
}

.lk-auth-brand h1 {
  font-size: clamp(28px, 4vw, 38px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  margin-bottom: 14px;
}

.lk-auth-brand p {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(255,255,255,.72);
  margin-bottom: 28px;
}

.lk-auth-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lk-auth-features li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  color: rgba(255,255,255,.88);
  line-height: 1.45;
}

.lk-auth-features i {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(255,255,255,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  color: #A5B4FC;
  flex-shrink: 0;
}

.lk-auth-main {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 40px 48px 24px;
}

.lk-auth-card {
  width: 100%;
  max-width: 420px;
  background: var(--bg);
  border: .5px solid var(--bdr);
  border-radius: 22px;
  padding: 32px 28px 28px;
  box-shadow:
    0 1px 2px rgba(15,23,42,.04),
    0 12px 40px rgba(79,70,229,.08);
  animation: lkAuthFadeUp .45s ease both;
}

@keyframes lkAuthFadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

.lk-auth-card-head { margin-bottom: 24px; text-align: center; }

.lk-auth-card-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, #818CF8, #4F46E5);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #fff;
  box-shadow: 0 8px 20px rgba(79,70,229,.28);
}

.lk-auth-card h2 {
  font-size: 24px;
  font-weight: 700;
  color: var(--tx);
  margin-bottom: 6px;
  letter-spacing: -.02em;
}

.lk-auth-card .lk-auth-sub {
  font-size: 14px;
  color: var(--tx2);
  line-height: 1.5;
}

.lk-auth-card .lk-card-box {
  border: none;
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.lk-auth-card .lk-btn-lg {
  margin-top: 4px;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(79,70,229,.25);
}

.lk-auth-card .lk-btn-lg:hover {
  box-shadow: 0 6px 20px rgba(79,70,229,.32);
}

.lk-auth-footer {
  margin-top: 20px;
  padding-top: 18px;
  border-top: .5px solid var(--bdr);
  text-align: center;
  font-size: 13px;
  color: var(--tx2);
}

.lk-auth-footer a {
  color: var(--g7);
  font-weight: 600;
  text-decoration: none;
}

.lk-auth-footer a:hover { text-decoration: underline; }

.lk-auth-trust {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 20px;
  font-size: 11px;
  color: var(--tx2);
}

.lk-auth-trust span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.lk-auth-trust i { color: var(--g7); font-size: 14px; }

@media (max-width: 900px) {
  .lk-auth-shell {
    grid-template-columns: 1fr;
    min-height: auto;
    max-width: 520px;
    padding: 0 16px 32px;
  }
  .lk-auth-brand {
    margin: 16px 0 0;
    border-radius: 18px;
    padding: 28px 24px;
  }
  .lk-auth-brand h1 { font-size: 24px; }
  .lk-auth-features { display: none; }
  .lk-auth-main { padding: 20px 0 0; }
  .lk-auth-card { padding: 24px 20px 20px; border-radius: 18px; }
}

/* Wariant szerszy — rejestracja wieloetapowa */
.lk-auth-shell--wide {
  grid-template-columns: minmax(280px, 1fr) minmax(400px, 560px);
  max-width: 1280px;
}
@media (max-width: 900px) {
  .lk-auth-shell--wide { max-width: 520px; }
}

/* Kroki rejestracji */
.lk-auth-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 24px;
}
.lk-auth-step-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--bdr);
  transition: background .2s;
}
.lk-auth-step-dot.active { background: var(--g7); }
.lk-auth-step-dot.done { background: var(--g2); }
.lk-auth-step-line { width: 40px; height: 1px; background: var(--bdr); }

.lk-reg-step-in { animation: lkAuthFadeUp .4s ease both; }

.reg-actions {
  display: flex;
  align-items: stretch;
  gap: 12px;
  margin-top: 20px;
}
.reg-back {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 16px;
  border-radius: 10px;
  border: .5px solid var(--bdr);
  background: var(--bg);
  color: var(--tx2);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: border-color .2s, color .2s;
}
.reg-back:hover { border-color: #94A3B8; color: var(--tx); }
.reg-submit {
  flex: 1;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 22px;
  border-radius: 10px;
  border: none;
  background: linear-gradient(135deg, #3730A3 0%, var(--g7) 45%, var(--g5) 100%);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(67,56,202,.35);
  transition: transform .2s, box-shadow .2s, opacity .2s;
}
.reg-submit:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(67,56,202,.42);
}
.reg-submit:disabled { opacity: .72; cursor: not-allowed; }
.reg-submit.is-loading .reg-submit-icon { animation: lk-icon-spin .7s linear infinite; }

/* Panele sukcesu / reset hasła */
.lk-auth-panel-hidden { display: none !important; }
.lk-auth-success-panel { display: none; }
.lk-auth-success-panel.show { display: block; }

.lk-auth-email-box {
  background: var(--surf);
  border: 1.5px solid rgba(16,185,129,.25);
  border-radius: 12px;
  padding: 20px 16px;
  text-align: center;
  margin: 18px 0;
}
.lk-auth-email-box i { font-size: 36px; color: #10B981; margin-bottom: 8px; display: block; }
.lk-auth-email-addr { font-size: 14px; font-weight: 600; color: var(--tx); word-break: break-all; }

.lk-auth-note-box {
  background: var(--g1);
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 12px;
  color: var(--g7);
  line-height: 1.5;
  margin-bottom: 18px;
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.lk-auth-code-input {
  font-family: 'Space Mono', ui-monospace, monospace !important;
  font-size: 26px !important;
  letter-spacing: 10px !important;
  text-align: center !important;
  padding: 14px 10px !important;
}

.lk-auth-strength-wrap { margin-top: 8px; }
.lk-auth-strength-bar-bg {
  height: 4px;
  background: var(--bdr);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 4px;
}
.lk-auth-strength-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width .3s, background .3s;
  width: 0%;
  background: var(--bdr);
}
.lk-auth-strength-label { font-size: 11px; color: var(--tx2); }

.lk-auth-pw-wrap { position: relative; }
.lk-auth-pw-wrap .lk-input { padding-right: 44px; }
.lk-auth-pw-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--tx2);
  font-size: 16px;
  padding: 4px;
}

.lk-auth-back-link {
  display: block;
  text-align: center;
  margin-top: 18px;
  font-size: 13px;
  color: var(--tx2);
  text-decoration: none;
}
.lk-auth-back-link:hover { color: var(--g7); }

.lk-input[readonly] {
  background: var(--surf);
  color: var(--tx2);
  cursor: default;
}

@media (max-width: 480px) {
  .reg-back span { display: none; }
  .reg-back { padding: 12px 14px; }
  .reg-submit { font-size: 14px; padding: 13px 16px; }
}
