/* ===================================================================
   Udany Urlop — Forum
   Styl spójny z portalową paletą (style.css ładowany pierwszy),
   ale forum dostaje własne layouty, karty kategorii, wątki, posty,
   embedy YT/TT/IG i panel admina. Mobile-first.
   =================================================================== */

:root {
  --fm-bg:        #fbfaf6;
  --fm-card:      #ffffff;
  --fm-line:      #eee8db;
  --fm-line-2:    #cfe3e9;
  --fm-ink:       #17324d;
  --fm-body:      #4a5d70;
  --fm-muted:     #6c8093;
  --fm-blue:      #0b6e8f;
  --fm-blue-d:    #08566f;
  --fm-blue-l:    #0b6e8f;
  --fm-cyan:      #0b6e8f;
  --fm-accent:    #f28c28;
  --fm-accent-d:  #d9761a;
  --fm-pin:       #f28c28;
  --fm-lock:      #6c8093;
  --fm-ban:       #e0564e;
  --fm-ok:        #2e9e6b;
  --fm-r-sm: 14px;
  --fm-r:    20px;
  --fm-r-lg: 20px;
  --fm-sh:   0 2px 6px rgba(23,50,77,.05), 0 10px 26px rgba(23,50,77,.07);
  --fm-sh-2: 0 6px 18px rgba(11,110,143,.10), 0 18px 36px rgba(23,50,77,.10);
}

body.fm-body {
  background:
    radial-gradient(circle at 90% -10%, rgba(11,110,143,.08), transparent 50%),
    radial-gradient(circle at -10% 30%, rgba(242,140,40,.06), transparent 55%),
    var(--fm-bg);
  min-height: 100vh;
}
.fm-main { padding: 0 0 80px; }
.fm-wrap { padding-top: 28px; padding-bottom: 60px; }
.fm-wrap.fm-narrow { max-width: 720px; }
.fm-muted { color: var(--fm-muted); }

/* === Header chip użytkownika (w istniejącym headerze portalu) === */
.fm-user-chip {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--fm-body); padding: 5px 10px;
  background: rgba(11,110,143,.08); border-radius: 999px;
}
.fm-user-chip a { color: var(--fm-blue); font-weight: 700; }
.fm-adm-link { color: var(--fm-accent-d) !important; }
.fm-nav-login { color: var(--fm-blue); font-weight: 700; }
.fm-nav-reg {
  background: var(--fm-blue); color: #fff !important;
  padding: 8px 16px; border-radius: 999px; font-weight: 800;
  margin-left: 6px;
}
.fm-nav-reg:hover { background: var(--fm-blue-d); text-decoration: none; }
.fm-active { color: var(--fm-accent-d) !important; font-weight: 800; }

/* === HERO === */
.fm-hero {
  background: linear-gradient(135deg, #0b6e8f 0%, #08566f 60%, #17324d 130%);
  color: #fff; padding: 70px 0 90px; position: relative; overflow: hidden;
}
.fm-hero::before, .fm-hero::after {
  content: ""; position: absolute; border-radius: 50%; filter: blur(50px); opacity:.4;
}
.fm-hero::before { width: 360px; height: 360px; background: #f28c28; top:-100px; left:-80px; }
.fm-hero::after  { width: 420px; height: 420px; background: #0b6e8f; bottom:-160px; right:-80px; }
.fm-hero .wrap { position: relative; z-index: 2; }
.fm-hero .eyebrow { color: #ffc89e; }
.fm-hero h1 {
  color: #fff; font-size: clamp(34px, 5.6vw, 60px); margin: 8px 0 14px;
  letter-spacing: -.03em;
}
.fm-hero h1 em { color: #ffd9b8; font-style: normal; }
.fm-hero-lead { color: #dbeaef; font-size: 17px; max-width: 600px; }
.fm-hero-grid {
  display: grid; gap: 50px; align-items: center;
  grid-template-columns: minmax(0,1fr);
}
@media (min-width: 900px) { .fm-hero-grid { grid-template-columns: 1.5fr 1fr; } }
.fm-hero-cta { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; margin-top: 24px; }
.fm-hero-link { color: #fff; font-weight: 700; }
.fm-hero-link:hover { color: #ffd9b8; }
.fm-hero-stats {
  list-style: none; padding: 0; margin: 0;
  display: grid; grid-template-columns: repeat(2,1fr); gap: 14px;
  background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.18);
  padding: 22px; border-radius: var(--fm-r-lg); backdrop-filter: blur(8px);
}
.fm-hero-stats li { display: flex; flex-direction: column; }
.fm-hero-stats b { font-size: 28px; font-weight: 900; }
.fm-hero-stats span { color: #dbeaef; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; }

/* === BREADCRUMBS, SEKCJE === */
.fm-breadcrumbs {
  font-size: 13px; color: var(--fm-muted); margin: 0 0 18px;
}
.fm-breadcrumbs a { color: var(--fm-blue); }
.fm-breadcrumbs span { margin: 0 4px; }
.fm-title { font-size: clamp(26px, 4vw, 38px); margin: 0 0 6px; color: var(--fm-ink); }
.fm-subtitle { color: var(--fm-muted); margin: 0 0 28px; }

.fm-section-head {
  display: flex; align-items: baseline; gap: 14px; margin: 22px 0 14px;
}
.fm-section-head h2 { font-size: 22px; margin: 0; }
.fm-section-meta { color: var(--fm-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .12em; }

.fm-section-title {
  font-size: 14px; text-transform: uppercase; letter-spacing: .14em;
  color: var(--fm-muted); margin: 36px 0 14px;
}

/* === Najnowsza aktywność === */
.fm-latest {
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); padding: 22px 24px; margin: 0 0 30px;
  box-shadow: var(--fm-sh);
}
.fm-latest-list { list-style: none; padding: 0; margin: 0; }
.fm-latest-list li {
  display: grid; gap: 12px; padding: 12px 0;
  grid-template-columns: minmax(160px,auto) 1fr auto;
  align-items: center; border-top: 1px dashed var(--fm-line);
}
.fm-latest-list li:first-child { border-top: 0; }
.fm-latest-cat {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; padding: 6px 10px; border-radius: 999px;
  background: color-mix(in srgb, var(--c) 10%, white);
  color: var(--c); border: 1px solid color-mix(in srgb, var(--c) 25%, white);
}
.fm-latest-th { color: var(--fm-ink); font-weight: 700; }
.fm-latest-th:hover { color: var(--fm-blue); }
.fm-latest-meta { color: var(--fm-muted); font-size: 13px; text-align: right; }
@media (max-width: 720px) {
  .fm-latest-list li { grid-template-columns: 1fr; }
  .fm-latest-meta { text-align: left; }
}

/* === Karty kategorii === */
.fm-cat-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid; gap: 18px;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
}
.fm-cat-card {
  --c: var(--fm-blue-l);
  background: var(--fm-card); border-radius: var(--fm-r);
  border: 1px solid var(--fm-line);
  box-shadow: var(--fm-sh);
  overflow: hidden; position: relative;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.fm-cat-card::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: var(--c);
}
.fm-cat-card:hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--c) 50%, var(--fm-line));
  box-shadow: var(--fm-sh-2);
}
.fm-cat-link {
  display: grid; grid-template-columns: 60px 1fr; gap: 16px;
  padding: 22px 22px 20px; color: inherit; text-decoration: none;
  align-items: start;
}
.fm-cat-link:hover { text-decoration: none; }
.fm-cat-ico {
  width: 56px; height: 56px; display: grid; place-items: center;
  background: color-mix(in srgb, var(--c) 12%, white);
  color: var(--c); font-size: 28px; border-radius: 14px;
}
.fm-cat-body h3 { font-size: 17px; margin: 0 0 4px; color: var(--fm-ink); }
.fm-cat-body p {
  color: var(--fm-muted); font-size: 14px; line-height: 1.5; margin: 0 0 12px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fm-cat-stats {
  display: flex; gap: 14px; font-size: 13px; color: var(--fm-muted);
  margin-bottom: 10px;
}
.fm-cat-stats b { color: var(--fm-ink); font-weight: 800; }
.fm-cat-last { font-size: 13px; color: var(--fm-muted); display: grid; gap: 2px; }
.fm-cat-last-title { color: var(--fm-ink); font-weight: 600; }
.fm-cat-last-meta { color: var(--fm-muted); }
.fm-cat-empty { color: var(--fm-muted); font-style: italic; }

/* === Nagłówek kategorii === */
.fm-cat-head {
  --c: var(--fm-blue);
  display: grid; gap: 20px; align-items: center;
  grid-template-columns: 84px 1fr auto;
  padding: 26px; margin: 0 0 24px;
  background: var(--fm-card); border-radius: var(--fm-r);
  border: 1px solid var(--fm-line); box-shadow: var(--fm-sh);
  position: relative; overflow: hidden;
}
.fm-cat-head::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--c);
}
.fm-cat-head-ico {
  width: 84px; height: 84px; border-radius: 18px;
  background: color-mix(in srgb, var(--c) 12%, white);
  color: var(--c); display: grid; place-items: center; font-size: 42px;
}
.fm-cat-head-body h1 { font-size: clamp(22px, 3.4vw, 32px); margin: 4px 0 6px; }
.fm-cat-head-body p { color: var(--fm-muted); margin: 0; }
@media (max-width: 720px) {
  .fm-cat-head { grid-template-columns: 64px 1fr; }
  .fm-cat-head-cta { grid-column: 1 / -1; }
  .fm-cat-head-ico { width: 64px; height: 64px; font-size: 32px; }
}

/* === Lista wątków === */
.fm-empty {
  background: var(--fm-card); border: 1px dashed var(--fm-line-2);
  padding: 30px; text-align: center; border-radius: var(--fm-r);
  color: var(--fm-muted);
}
.fm-thread-list {
  list-style: none; padding: 0; margin: 0;
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); box-shadow: var(--fm-sh); overflow: hidden;
}
.fm-thread-row {
  display: grid; gap: 14px; padding: 16px 22px;
  grid-template-columns: 44px 1fr 90px 150px;
  align-items: center; border-top: 1px solid var(--fm-line);
  transition: background .15s;
}
.fm-thread-row:first-child { border-top: 0; }
.fm-thread-row:hover { background: #fbfaf6; }
.fm-pinned { background: linear-gradient(90deg, rgba(242,140,40,.07), transparent 60%); }
.fm-tr-title {
  display: block; font-weight: 700; color: var(--fm-ink); font-size: 16px;
  line-height: 1.35;
}
.fm-tr-title:hover { color: var(--fm-blue); }
.fm-tr-meta { color: var(--fm-muted); font-size: 13px; margin-top: 4px; }
.fm-tr-stats { display: flex; flex-direction: column; align-items: center; line-height: 1.1; color: var(--fm-muted); font-size: 12px; }
.fm-tr-stats b { color: var(--fm-ink); font-size: 16px; font-weight: 800; }
.fm-tr-stats i { font-style: normal; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.fm-tr-last { font-size: 13px; color: var(--fm-muted); text-align: right; }
.fm-tr-last-user { display: block; font-weight: 700; color: var(--fm-ink); }
@media (max-width: 720px) {
  .fm-thread-row { grid-template-columns: 40px 1fr; }
  .fm-tr-stats, .fm-tr-last { grid-column: 2; flex-direction: row; gap: 14px; text-align: left; }
  .fm-tr-last { font-size: 12px; }
}

/* === Badges === */
.fm-badge {
  display: inline-block; vertical-align: middle; font-size: 10px; font-weight: 900;
  letter-spacing: .1em; padding: 3px 7px; border-radius: 4px; color: #fff;
  margin-right: 4px;
}
.fm-badge-pin { background: var(--fm-pin); }
.fm-badge-lock { background: var(--fm-lock); }

/* === Avatar === */
.fm-avatar {
  display: inline-grid; place-items: center; color: #fff; font-weight: 800;
  border-radius: 50%; font-size: 16px; flex: 0 0 auto;
  box-shadow: 0 2px 6px rgba(23,50,77,.15);
  border: 2px solid #fff;
}
.fm-avatar-admin { box-shadow: 0 0 0 2px var(--fm-accent), 0 2px 8px rgba(242,140,40,.4); }
.fm-avatar-mod   { box-shadow: 0 0 0 2px var(--fm-cyan),   0 2px 8px rgba(11,110,143,.4); }

/* === Wątek: nagłówek === */
.fm-thread-head { margin: 0 0 22px; }
.fm-thread-head h1 { font-size: clamp(22px, 3.6vw, 32px); margin: 6px 0 0; }
.fm-th-meta { display: flex; gap: 14px; flex-wrap: wrap; color: var(--fm-muted); font-size: 13px; }
.fm-th-cat {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px;
  border-radius: 999px; background: color-mix(in srgb, var(--c) 12%, white);
  color: var(--c); font-weight: 700;
}

/* === Posty === */
.fm-posts {
  list-style: none; padding: 0; margin: 0 0 24px;
  display: flex; flex-direction: column; gap: 18px;
}
.fm-post {
  display: grid; gap: 0;
  grid-template-columns: 180px 1fr;
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); box-shadow: var(--fm-sh); overflow: hidden;
}
.fm-post-side {
  background: linear-gradient(160deg, #fbfaf6, #e7f1f4);
  padding: 22px 18px; display: flex; flex-direction: column;
  align-items: center; gap: 8px; border-right: 1px solid var(--fm-line);
  text-align: center;
}
.fm-post-user { color: var(--fm-ink); font-weight: 800; font-size: 15px; }
.fm-post-user:hover { color: var(--fm-blue); }
.fm-post-stat { color: var(--fm-muted); font-size: 12px; }
.fm-post-since { color: var(--fm-muted); font-size: 12px; }
.fm-tag {
  font-size: 10px; font-weight: 800; letter-spacing: .1em;
  text-transform: uppercase; padding: 3px 8px; border-radius: 999px;
}
.fm-tag-admin { background: var(--fm-accent); color: #fff; }
.fm-tag-mod   { background: var(--fm-cyan);   color: #fff; }
.fm-tag-ban   { background: var(--fm-ban);    color: #fff; }
.fm-tag-ok    { background: rgba(46,158,107,.12); color: #1f7a52; }
.fm-tag-pin   { background: #ffeede; color: #9a5212; }
.fm-tag-lock  { background: #eee8db; color: #4a5d70; }

.fm-post-main { padding: 22px 26px; min-width: 0; }
.fm-post-head {
  display: flex; align-items: center; gap: 12px;
  border-bottom: 1px dashed var(--fm-line); padding-bottom: 10px; margin-bottom: 14px;
}
.fm-post-date { color: var(--fm-muted); font-size: 13px; }
.fm-post-edit-btn,
.fm-post-del-btn {
  background: none; border: 1px solid var(--fm-line); border-radius: 999px;
  font: inherit; font-size: 12px; padding: 4px 12px; cursor: pointer;
  color: var(--fm-body);
}
.fm-post-edit-btn:hover { background: var(--fm-blue); color: #fff; border-color: var(--fm-blue); }
.fm-post-del-btn:hover { background: var(--fm-ban); color: #fff; border-color: var(--fm-ban); }
.fm-post-del { display: inline; }
.fm-post-body { font-size: 16px; line-height: 1.7; color: var(--fm-body); word-wrap: break-word; }
.fm-post-body p { margin: 0 0 12px; }
.fm-post-body p:last-child { margin: 0; }
.fm-post-body a { color: var(--fm-blue); text-decoration: underline; }
.fm-post-edit { margin-top: 10px; color: var(--fm-muted); font-size: 12px; font-style: italic; }
.fm-post-sig {
  margin-top: 14px; padding-top: 10px;
  border-top: 1px dashed var(--fm-line);
  color: var(--fm-muted); font-size: 13px; font-style: italic;
}
.fm-quote {
  border-left: 3px solid var(--fm-blue-l); padding: 10px 16px;
  background: #e7f1f4; border-radius: 0 var(--fm-r-sm) var(--fm-r-sm) 0;
  margin: 12px 0; color: var(--fm-body); font-style: italic;
}
.fm-edit-form textarea {
  width: 100%; padding: 12px; font: inherit; border: 1px solid var(--fm-line);
  border-radius: var(--fm-r-sm); resize: vertical;
}

@media (max-width: 720px) {
  .fm-post { grid-template-columns: 1fr; }
  .fm-post-side {
    flex-direction: row; flex-wrap: wrap; justify-content: flex-start;
    border-right: 0; border-bottom: 1px solid var(--fm-line); padding: 14px 18px;
  }
  .fm-post-main { padding: 18px 18px; }
}

/* === Embedy === */
.fm-embed {
  margin: 14px 0; max-width: 720px;
  border-radius: var(--fm-r-sm); overflow: hidden;
  box-shadow: 0 2px 8px rgba(23,50,77,.10);
}
.fm-yt { position: relative; padding-bottom: 56.25%; height: 0; background: #000; }
.fm-yt iframe {
  position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
.fm-tt { max-width: 380px; }
.fm-ig { max-width: 540px; }
.fm-img { display: inline-block; margin: 12px 0; }
.fm-img img {
  max-width: 100%; max-height: 460px; border-radius: var(--fm-r-sm);
  box-shadow: 0 2px 10px rgba(23,50,77,.12);
}

/* === Box „zaloguj się, by odpowiedzieć” === */
.fm-loginbox {
  text-align: center; padding: 36px 24px;
  background: linear-gradient(135deg, #e7f1f4, #fbfaf6);
  border: 1px dashed var(--fm-line-2); border-radius: var(--fm-r);
  margin: 18px 0;
}
.fm-loginbox p { font-size: 16px; color: var(--fm-body); margin: 0 0 16px; }
.fm-loginbox .btn { margin-right: 10px; }

/* === Formularz odpowiedzi / nowego wątku === */
.fm-reply,
.fm-card-form {
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); padding: 26px; box-shadow: var(--fm-sh);
  margin: 18px 0;
}
.fm-reply h3 { margin: 0 0 12px; font-size: 18px; }
.fm-form-help {
  color: var(--fm-muted); font-size: 13px; margin: 0 0 10px;
}
.fm-form-help code {
  background: #e7f1f4; color: var(--fm-blue-d); padding: 1px 6px;
  border-radius: 4px; font-size: 12px;
}
.fm-card-form label,
.fm-reply label {
  display: block; font-weight: 700; color: var(--fm-ink);
  font-size: 14px; margin: 14px 0 6px;
}
.fm-card-form label:first-of-type { margin-top: 0; }
.fm-card-form input[type="text"],
.fm-card-form input[type="email"],
.fm-card-form input[type="password"],
.fm-card-form input[type="search"],
.fm-card-form select,
.fm-card-form textarea,
.fm-reply textarea {
  display: block; width: 100%; padding: 12px 14px;
  font: inherit; color: var(--fm-ink);
  border: 1px solid var(--fm-line); border-radius: var(--fm-r-sm);
  background: #fff; transition: border-color .15s, box-shadow .15s;
}
.fm-card-form input:focus,
.fm-card-form select:focus,
.fm-card-form textarea:focus,
.fm-reply textarea:focus {
  outline: none; border-color: var(--fm-blue-l);
  box-shadow: 0 0 0 4px rgba(11,110,143,.15);
}
.fm-form-row { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 16px; }
.fm-form-2 {
  display: grid; gap: 14px; grid-template-columns: 1fr 1fr;
}
@media (max-width: 600px) { .fm-form-2 { grid-template-columns: 1fr; } }
.fm-captcha { background: #e7f1f4; padding: 14px 16px; border-radius: var(--fm-r-sm); }
.fm-captcha input { max-width: 120px; margin-top: 8px; }
.fm-check {
  display: flex; gap: 10px; align-items: flex-start; font-weight: 500 !important; color: var(--fm-body) !important;
}
.fm-check input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; }
.fm-btn-ghost {
  background: none; border: 1px solid var(--fm-line); border-radius: 999px;
  font: inherit; padding: 12px 22px; cursor: pointer; color: var(--fm-body);
}

/* === Flash === */
.fm-flash {
  padding: 14px 18px; border-radius: var(--fm-r-sm);
  margin: 0 0 18px; font-size: 14px; font-weight: 600;
  border: 1px solid; border-left-width: 4px;
}
.fm-flash-ok  { background: rgba(46,158,107,.12); color: #1f7a52; border-color: #2e9e6b; }
.fm-flash-err { background: rgba(224,86,78,.12); color: #b23029; border-color: #e0564e; }

/* === Paginacja === */
.fm-pager {
  display: flex; gap: 6px; justify-content: center; margin: 24px 0;
  flex-wrap: wrap;
}
.fm-pager a, .fm-pager span {
  display: inline-flex; padding: 8px 14px; border-radius: 8px;
  border: 1px solid var(--fm-line); font-weight: 700; font-size: 14px;
  color: var(--fm-blue); background: var(--fm-card);
}
.fm-pager a:hover { background: var(--fm-blue); color: #fff; text-decoration: none; }
.fm-pager-cur { background: var(--fm-blue); color: #fff !important; border-color: var(--fm-blue); }

/* === Profil === */
.fm-profile-head {
  display: grid; gap: 22px; grid-template-columns: 96px 1fr;
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); padding: 26px; margin: 0 0 22px;
  box-shadow: var(--fm-sh); align-items: center;
}
.fm-profile-head h1 { font-size: 26px; margin: 0 0 6px; }
.fm-profile-meta { color: var(--fm-muted); font-size: 14px; margin: 0 0 8px; }
.fm-profile-bio { color: var(--fm-body); }
.fm-profile-sig { color: var(--fm-muted); font-style: italic; margin: 4px 0 0; }
.fm-profile-2col {
  display: grid; gap: 22px; grid-template-columns: 1fr 1fr;
  margin-top: 22px;
}
@media (max-width: 760px) { .fm-profile-2col { grid-template-columns: 1fr; } }
.fm-profile-list { list-style: none; padding: 0; margin: 0; }
.fm-profile-list li {
  padding: 10px 0; border-top: 1px dashed var(--fm-line);
  display: flex; gap: 10px; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap;
}
.fm-profile-list li:first-child { border-top: 0; }
.fm-profile-list a { font-weight: 700; color: var(--fm-ink); }
.fm-profile-list a:hover { color: var(--fm-blue); }

/* === Panel admina === */
.fm-adm-head { margin: 0 0 22px; }
.fm-adm-head h1 { margin: 0 0 14px; }
.fm-adm-tabs {
  display: flex; gap: 6px; flex-wrap: wrap;
  border-bottom: 2px solid var(--fm-line);
}
.fm-adm-tabs a {
  padding: 10px 16px; font-weight: 700; color: var(--fm-muted);
  border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.fm-adm-tabs a:hover { color: var(--fm-blue); text-decoration: none; }
.fm-adm-tabs a.on {
  color: var(--fm-blue); border-bottom-color: var(--fm-accent);
}
.fm-adm-stats {
  list-style: none; padding: 0; margin: 0 0 22px;
  display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.fm-adm-stats li {
  background: var(--fm-card); border: 1px solid var(--fm-line); border-radius: var(--fm-r);
  padding: 20px; box-shadow: var(--fm-sh);
  display: flex; flex-direction: column;
}
.fm-adm-stats b { font-size: 28px; color: var(--fm-ink); }
.fm-adm-stats span { color: var(--fm-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }

.fm-adm-search { display: flex; gap: 10px; margin: 0 0 16px; }
.fm-adm-search input {
  flex: 1; padding: 10px 14px; font: inherit;
  border: 1px solid var(--fm-line); border-radius: var(--fm-r-sm);
}

.fm-adm-table-wrap {
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); box-shadow: var(--fm-sh); overflow-x: auto;
}
.fm-adm-table {
  width: 100%; border-collapse: collapse; font-size: 14px; min-width: 740px;
}
.fm-adm-table th, .fm-adm-table td {
  padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--fm-line);
  vertical-align: middle;
}
.fm-adm-table th { background: #fbfaf6; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--fm-muted); }
.fm-adm-table tr:last-child td { border-bottom: 0; }
.fm-adm-table-tight th, .fm-adm-table-tight td { padding: 8px 12px; font-size: 13px; }
.fm-adm-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.fm-adm-actions form,
.fm-inline { display: inline; margin: 0; }
.fm-adm-actions button,
.fm-inline button,
.fm-inline select {
  font: inherit; font-size: 12px; padding: 6px 12px;
  border: 1px solid var(--fm-line); background: #fff; border-radius: 6px;
  cursor: pointer; color: var(--fm-body);
}
.fm-adm-actions button:hover { background: var(--fm-blue); color: #fff; border-color: var(--fm-blue); }
.fm-btn-danger { background: var(--fm-ban) !important; color: #fff !important; border-color: var(--fm-ban) !important; }
.fm-btn-danger:hover { background: #c4453d !important; }
.fm-btn-ok { background: var(--fm-ok) !important; color: #fff !important; border-color: var(--fm-ok) !important; }
.fm-btn-ok:hover { background: #257f55 !important; }

.fm-adm-posts {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 14px;
}
.fm-adm-posts li {
  background: var(--fm-card); border: 1px solid var(--fm-line);
  border-radius: var(--fm-r); padding: 16px 20px; box-shadow: var(--fm-sh);
}
.fm-adm-post-head { margin-bottom: 8px; }
.fm-adm-posts details { margin: 8px 0; }
.fm-adm-posts summary { cursor: pointer; color: var(--fm-blue); font-weight: 700; }
.fm-adm-edit textarea {
  width: 100%; padding: 10px; margin: 10px 0; min-height: 110px;
  border: 1px solid var(--fm-line); border-radius: var(--fm-r-sm); font: inherit;
}

/* === Footer === */
.fm-footer {
  background: linear-gradient(180deg, transparent, rgba(11,110,143,.05));
  padding: 30px 0;
  border-top: 1px solid var(--fm-line);
  color: var(--fm-muted); font-size: 14px;
}
.fm-footer-in {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 14px;
}
.fm-foot-links { display: flex; gap: 18px; flex-wrap: wrap; }
.fm-foot-links a { color: var(--fm-blue); font-weight: 600; }
