:root{
  --bg:#f5f7fb;
  --bg-2:#eef2f8;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#e9eef6;
  --text:#0f172a;
  --muted:#64748b;
  --border:#dbe3ef;
  --accent:#4f46e5;
  --accent-2:#7c3aed;
  --accent-soft:#eef2ff;
  --success:#16a34a;
  --danger:#dc2626;
  --warning:#d97706;
  --max:1280px;
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 10px 30px rgba(15,23,42,.06);
  --shadow-soft:0 4px 14px rgba(15,23,42,.05);
}

html[data-theme="dark"]{
  --bg:#0b1220;
  --bg-2:#111a2b;
  --surface:#0f172a;
  --surface-2:#131d31;
  --surface-3:#1a2740;
  --text:#e5edf8;
  --muted:#94a3b8;
  --border:#22314d;
  --accent:#818cf8;
  --accent-2:#a78bfa;
  --accent-soft:#1d2540;
  --success:#22c55e;
  --danger:#f87171;
  --warning:#f59e0b;
  --shadow:0 16px 40px rgba(0,0,0,.22);
  --shadow-soft:0 6px 18px rgba(0,0,0,.18);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);
}
a{color:var(--accent);text-decoration:none}
a:hover{opacity:.92}
img{max-width:100%;display:block}
main{min-height:72vh}
hr{border:none;border-top:1px solid var(--border);margin:24px 0}

.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.section{padding:34px 0}
.narrow{max-width:760px}

.topbar{
  position:sticky;
  top:0;
  z-index:60;
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
html[data-theme="dark"] .topbar{
  background:rgba(11,18,32,.82);
}
.topbar-inner{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  color:var(--text);
}
.brand:hover{color:var(--text)}
.brand-logo{
  width:48px;
  height:48px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
  font-weight:800;
  font-size:1.2rem;
  box-shadow:var(--shadow-soft);
}
.brand strong{
  display:block;
  font-size:1.5rem;
  line-height:1;
  letter-spacing:-.03em;
}
.brand small{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.95rem;
}

.nav{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.nav a,
.theme-toggle{
  height:42px;
  padding:0 16px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  box-shadow:var(--shadow-soft);
}
.nav a:hover,
.theme-toggle:hover{
  background:var(--surface-2);
}
.theme-toggle{
  cursor:pointer;
  font:inherit;
}

.btn{
  min-height:46px;
  padding:0 18px;
  border:none;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
  font-weight:800;
  box-shadow:var(--shadow-soft);
  cursor:pointer;
}
.btn:hover{color:#fff}
.btn-secondary{
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--border);
}
.btn-secondary:hover{color:var(--text);background:var(--surface-2)}
.btn-sm{min-height:42px;padding:0 16px}
.btn-block{width:100%}

.hero{
  padding:34px 0 12px;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:22px;
}
.hero-panel,
.hero-visual,
.panel,
.card,
.soft-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:var(--shadow);
}
.hero-panel{
  padding:34px;
}
.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  font-weight:800;
  border:1px solid var(--border);
}
.hero h1{
  margin:18px 0 12px;
  font-size:clamp(2.4rem,4.2vw,4.8rem);
  line-height:.98;
  letter-spacing:-.05em;
}
.lead{
  margin:0;
  font-size:1.12rem;
  line-height:1.7;
  color:var(--muted);
  max-width:58ch;
}
.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:24px;
}
.hero-meta{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:26px;
}
.meta-box{
  padding:16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface-2);
}
.meta-box strong{
  display:block;
  font-size:1.1rem;
  margin-bottom:4px;
}
.meta-box span{
  color:var(--muted);
  font-size:.94rem;
}

.hero-visual{
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100%;
}
.visual-frame{
  width:100%;
  min-height:420px;
  border-radius:16px;
  background:
    linear-gradient(180deg,var(--surface-2),var(--surface)),
    var(--surface);
  border:1px solid var(--border);
  padding:20px;
  display:grid;
  grid-template-rows:auto 1fr;
  gap:18px;
}
.visual-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.visual-dots{
  display:flex;
  gap:8px;
}
.visual-dots span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--surface-3);
}
.visual-pill{
  height:34px;
  padding:0 12px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  font-weight:800;
  border:1px solid var(--border);
}
.visual-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:14px;
}
.visual-main,
.visual-side,
.visual-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
}
.visual-main{
  padding:16px;
  display:grid;
  gap:12px;
}
.visual-line{
  height:12px;
  border-radius:999px;
  background:var(--surface-3);
}
.visual-line.w60{width:60%}
.visual-line.w45{width:45%}
.visual-line.w30{width:30%}
.visual-line.accent{background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.visual-main-bottom{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
.visual-card{
  min-height:116px;
  padding:14px;
}
.visual-side{
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:2rem;
  font-weight:900;
  color:var(--accent);
}

.section-title{
  margin:0 0 8px;
  font-size:2rem;
  letter-spacing:-.03em;
}
.section-text{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}

.cards{display:grid;gap:18px}
.cards.three{grid-template-columns:repeat(3,1fr)}
.card{
  padding:22px;
}
.card h3{margin:0 0 10px;font-size:1.2rem}
.card p{margin:0;color:var(--muted);line-height:1.7}
.card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.card-badge{
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:var(--accent-soft);
  border:1px solid var(--border);
  color:var(--accent);
  display:inline-flex;
  align-items:center;
  font-size:.84rem;
  font-weight:800;
}
.icon-box{
  width:46px;
  height:46px;
  border-radius:12px;
  background:var(--surface-2);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.15rem;
}
.card-link{
  display:inline-flex;
  margin-top:16px;
  font-weight:800;
}

.panel{
  padding:24px;
}
.soft-card{
  padding:18px;
}
.grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.grid-3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.stack{display:grid;gap:12px}

.list-link{
  display:block;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  color:var(--text);
  box-shadow:var(--shadow-soft);
}
.list-link strong{
  display:block;
  margin-bottom:4px;
  font-size:1rem;
}
.list-link span{
  color:var(--muted);
  line-height:1.6;
}
.list-link:hover{
  background:var(--surface-2);
  color:var(--text);
}

.summary-list{
  display:grid;
  gap:12px;
}
.summary-item{
  display:block;
  padding:16px;
  border-radius:14px;
  background:var(--surface);
  border:1px solid var(--border);
  color:var(--text);
}
.summary-item strong{
  display:block;
  margin-bottom:5px;
}
.summary-item span{
  color:var(--muted);
  line-height:1.6;
}
.summary-item:hover{
  background:var(--surface-2);
  color:var(--text);
}

.mini-post{
  padding:16px 0;
  border-bottom:1px solid var(--border);
}
.mini-post:last-child{border-bottom:none}
.mini-post h3{margin:0 0 6px}
.mini-post small{color:var(--muted)}
.mini-post p{margin:8px 0 0;color:var(--muted);line-height:1.7}

.footer{
  margin-top:44px;
  padding:34px 0 52px;
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.5);
}
html[data-theme="dark"] .footer{
  background:rgba(11,18,32,.45);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr;
  gap:18px;
}
.list-unstyled{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

form{display:grid;gap:12px}
label{font-weight:700}
input,textarea,select{
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  outline:none;
  font:inherit;
}
textarea{resize:vertical;min-height:120px}
input:focus,textarea:focus,select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(79,70,229,.08);
}
.checkbox{
  display:flex;
  align-items:center;
  gap:10px;
}
.checkbox input{width:auto;min-height:auto}

.flash{
  margin:18px 0 0;
  padding:14px 16px;
  border-radius:12px;
  border:1px solid var(--border);
}
.flash-success{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.2)}
.flash-error{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2)}
.flash-info{background:rgba(79,70,229,.08);border-color:rgba(79,70,229,.2)}

.table-wrap{overflow:auto}
table{
  width:100%;
  border-collapse:collapse;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
}
th,td{
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  text-align:left;
}
th{background:var(--surface-2)}
tr:last-child td{border-bottom:none}

.chat-box{padding:0;overflow:hidden}
.chat-stream{
  max-height:420px;
  overflow:auto;
  display:grid;
  gap:0;
}
.chat-message{
  padding:16px 18px;
  border-bottom:1px solid var(--border);
}
.chat-message small{color:var(--muted)}
.chat-message p{margin:8px 0 0}
.chat-form{
  padding:18px;
  border-top:1px solid var(--border);
  background:var(--surface-2);
}

.muted{color:var(--muted)}
.mt{margin-top:18px}
.page-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.page-head h1,
.page-head h2{
  margin:0 0 8px;
}
.page-head p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
}

@media (max-width:1100px){
  .hero-grid,
  .grid-2,
  .grid-3,
  .cards.three,
  .footer-grid{
    grid-template-columns:1fr;
  }
  .hero-meta{
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:760px){
  .container{padding:0 16px}
  .topbar-inner{
    align-items:flex-start;
    flex-direction:column;
    padding:16px 0;
  }
  .nav{
    justify-content:flex-start;
  }
  .hero-panel,
  .hero-visual,
  .panel,
  .card,
  .soft-card{
    padding:18px;
  }
  .hero h1{
    font-size:2.5rem;
  }
  .hero-meta{
    grid-template-columns:1fr;
  }
  .hero-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .btn,
  .btn-secondary,
  .theme-toggle,
  .nav a{
    width:100%;
  }
  .visual-grid,
  .visual-main-bottom{
    grid-template-columns:1fr;
  }
}

/* ===== Header compact ===== */
.header-mini{
  min-height:74px !important;
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  align-items:center !important;
  gap:18px !important;
  padding:12px 0 !important;
}

.brand-mini{
  gap:12px !important;
}

.brand-mini .brand-logo{
  width:44px !important;
  height:44px !important;
  border-radius:12px !important;
  font-size:1.1rem !important;
}

.brand-mini strong{
  font-size:1.05rem !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
}

.brand-mini small{
  font-size:.8rem !important;
  line-height:1.2 !important;
  color:var(--muted) !important;
  max-width:320px !important;
}

.nav-mini{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}

.nav-mini a{
  height:36px !important;
  padding:0 13px !important;
  border-radius:10px !important;
  border:1px solid var(--border) !important;
  background:var(--surface) !important;
  color:var(--text) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:700 !important;
  font-size:.95rem !important;
  box-shadow:var(--shadow-soft) !important;
}

.nav-mini a:hover{
  background:var(--surface-2) !important;
}

.header-mini-right{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}

.header-mini-right > a,
.header-mini-user{
  height:36px !important;
  padding:0 13px !important;
  border-radius:10px !important;
  border:1px solid var(--border) !important;
  background:var(--surface) !important;
  color:var(--text) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:700 !important;
  font-size:.95rem !important;
  box-shadow:var(--shadow-soft) !important;
}

.header-mini-right > a:hover,
.header-mini-user:hover{
  background:var(--surface-2) !important;
  color:var(--text) !important;
}

.theme-toggle-mini{
  height:36px !important;
  padding:0 12px !important;
  border-radius:10px !important;
  font-size:.92rem !important;
  box-shadow:var(--shadow-soft) !important;
}

.role-badge{
  min-height:28px !important;
  padding:0 9px !important;
  border-radius:999px !important;
  font-size:.78rem !important;
  font-weight:800 !important;
}

.topbar{
  border-bottom:1px solid var(--border) !important;
}

@media (max-width:1200px){
  .header-mini{
    grid-template-columns:1fr !important;
    align-items:flex-start !important;
  }

  .nav-mini{
    justify-content:flex-start !important;
  }

  .header-mini-right{
    justify-content:flex-start !important;
  }
}

@media (max-width:760px){
  .brand-mini small{
    max-width:none !important;
  }

  .nav-mini,
  .header-mini-right{
    width:100% !important;
  }

  .nav-mini a,
  .header-mini-right > a,
  .header-mini-user,
  .theme-toggle-mini{
    width:100% !important;
  }
}

.account-chip{
  min-width:220px;
  padding:12px 14px;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:14px;
  box-shadow:var(--shadow-soft);
}

.account-chip-top{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  margin-bottom:8px;
}

.account-chip strong{
  display:block;
  line-height:1.1;
  margin-bottom:4px;
}

.account-chip small{
  display:block;
  color:var(--muted);
  line-height:1.3;
  word-break:break-word;
}

/* ===== Rôles ===== */
.role-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  font-size:.84rem;
  font-weight:800;
  border:1px solid transparent;
}

.role-user{
  background:rgba(100,116,139,.12);
  color:#475569;
  border-color:rgba(100,116,139,.18);
}

.role-moderator{
  background:rgba(37,99,235,.12);
  color:#2563eb;
  border-color:rgba(37,99,235,.18);
}

.role-admin{
  background:rgba(124,58,237,.12);
  color:#7c3aed;
  border-color:rgba(124,58,237,.18);
}

html[data-theme="dark"] .role-user{
  background:rgba(148,163,184,.12);
  color:#cbd5e1;
  border-color:rgba(148,163,184,.18);
}

html[data-theme="dark"] .role-moderator{
  background:rgba(96,165,250,.12);
  color:#93c5fd;
  border-color:rgba(96,165,250,.18);
}

html[data-theme="dark"] .role-admin{
  background:rgba(167,139,250,.12);
  color:#c4b5fd;
  border-color:rgba(167,139,250,.18);
}

/* ===== Admin users ===== */
.table-actions{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:220px;
}

.role-select{
  min-width:150px;
}

@media (max-width:1200px){
  .header-shell{
    grid-template-columns:1fr;
    align-items:flex-start;
  }

  .header-nav{
    justify-content:flex-start;
  }

  .header-actions{
    justify-content:flex-start;
  }
}

@media (max-width:760px){
  .account-chip{
    min-width:100%;
  }

  .header-user-links,
  .header-nav{
    width:100%;
  }

  .header-nav a,
  .header-user-links a,
  .theme-toggle{
    width:100%;
  }

  .table-actions{
    flex-direction:column;
    align-items:stretch;
    min-width:180px;
  }
}

/* ===== Témoignages propres ===== */
.testimonial-page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.testimonial-page-head h1{
  margin:0 0 8px;
  font-size:2.35rem;
  letter-spacing:-.03em;
}

.testimonial-page-head p{
  margin:0;
  max-width:720px;
  line-height:1.7;
}

.testimonial-tools{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.testimonial-overview{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  margin-bottom:18px;
}

.testimonial-stat{
  padding:18px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}

.testimonial-stat strong{
  display:block;
  margin-bottom:6px;
  font-size:1.15rem;
}

.testimonial-stat span{
  color:var(--muted);
  font-size:.95rem;
}

.testimonial-list{
  display:grid;
  gap:16px;
}

.testimonial-card{
  padding:22px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface);
  box-shadow:var(--shadow);
}

.testimonial-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.testimonial-title{
  margin:0 0 8px;
  font-size:1.45rem;
  letter-spacing:-.02em;
}

.testimonial-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.96rem;
}

.testimonial-card-badges{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.testimonial-card-body{
  padding-top:2px;
  color:var(--text);
  line-height:1.85;
  font-size:1rem;
}

.testimonial-card-body p{
  margin:0;
}

.testimonial-card-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
}

.status-badge{
  min-height:32px;
  padding:0 11px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.82rem;
  font-weight:800;
  border:1px solid transparent;
}

.status-live{
  background:rgba(34,197,94,.10);
  color:#15803d;
  border-color:rgba(34,197,94,.18);
}

.status-pending{
  background:rgba(245,158,11,.10);
  color:#b45309;
  border-color:rgba(245,158,11,.18);
}

.status-rejected{
  background:rgba(239,68,68,.10);
  color:#b91c1c;
  border-color:rgba(239,68,68,.18);
}

html[data-theme="dark"] .status-live{
  background:rgba(34,197,94,.14);
  color:#86efac;
  border-color:rgba(34,197,94,.2);
}

html[data-theme="dark"] .status-pending{
  background:rgba(245,158,11,.14);
  color:#fcd34d;
  border-color:rgba(245,158,11,.2);
}

html[data-theme="dark"] .status-rejected{
  background:rgba(239,68,68,.14);
  color:#fca5a5;
  border-color:rgba(239,68,68,.2);
}

.empty-state{
  padding:30px;
  border:1px dashed var(--border);
  border-radius:18px;
  background:var(--surface);
  text-align:center;
  box-shadow:var(--shadow-soft);
}

.empty-state h2{
  margin:0 0 8px;
}

.empty-state p{
  margin:0 0 18px;
  color:var(--muted);
}

@media (max-width:980px){
  .testimonial-page-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .testimonial-overview{
    grid-template-columns:1fr;
  }
}

@media (max-width:760px){
  .testimonial-card-head{
    flex-direction:column;
  }

  .testimonial-card-footer{
    flex-direction:column;
    align-items:flex-start;
  }

  .testimonial-tools{
    width:100%;
  }

  .testimonial-tools .btn,
  .testimonial-tools .btn-secondary{
    width:100%;
  }
}

.admin-inline-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

.admin-edit-box{
  margin-top:18px;
  border-top:1px solid var(--border);
  padding-top:16px;
}

.admin-edit-box summary{
  cursor:pointer;
  font-weight:800;
  color:var(--text);
  margin-bottom:12px;
}

.btn-danger{
  background:linear-gradient(135deg,#dc2626,#ef4444);
  color:#fff;
  border:none;
}

.btn-danger:hover{
  color:#fff;
  filter:brightness(1.03);
}

@media (max-width:760px){
  .admin-inline-actions{
    flex-direction:column;
  }

  .admin-inline-actions form{
    width:100%;
  }

  .admin-inline-actions .btn,
  .admin-inline-actions .btn-secondary,
  .admin-inline-actions .btn-danger{
    width:100%;
  }
}

/* ===== Forum redesign ===== */
.forum-hero{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.forum-hero h1{
  margin:0 0 8px;
  font-size:2.35rem;
  letter-spacing:-.03em;
}

.forum-kicker{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent);
  border:1px solid var(--border);
  font-size:.82rem;
  font-weight:800;
  margin-bottom:10px;
}

.forum-hero-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.forum-overview{
  display:grid;
  gap:14px;
}

.forum-overview-compact{
  grid-template-columns:repeat(2, 1fr);
  margin-bottom:18px;
}

.forum-overview-inline{
  grid-template-columns:1fr;
}

.forum-overview-card{
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
  min-width:180px;
}

.forum-overview-card strong{
  display:block;
  margin-bottom:6px;
  font-size:1.12rem;
}

.forum-overview-card span{
  color:var(--muted);
  font-size:.95rem;
}

.forum-category-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
}

.forum-category-card{
  padding:22px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface);
  box-shadow:var(--shadow);
}

.forum-category-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}

.forum-category-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--surface-2);
  border:1px solid var(--border);
  font-size:1.1rem;
}

.forum-category-label{
  font-size:.86rem;
  font-weight:800;
  color:var(--muted);
}

.forum-category-card h2{
  margin:0 0 10px;
  font-size:1.5rem;
  letter-spacing:-.02em;
}

.forum-category-card p{
  margin:0;
  color:var(--muted);
  line-height:1.75;
}

.forum-category-footer{
  margin-top:18px;
}

.forum-breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  margin-bottom:16px;
  font-size:.95rem;
}

.forum-breadcrumb a{
  color:var(--muted);
}

.forum-breadcrumb a:hover{
  color:var(--text);
}

.forum-thread-list{
  display:grid;
  gap:14px;
}

.forum-thread-card{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  padding:20px 22px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}

.forum-thread-card h2{
  margin:0 0 8px;
  font-size:1.28rem;
  letter-spacing:-.02em;
}

.forum-thread-card h2 a{
  color:var(--text);
}

.forum-thread-card h2 a:hover{
  color:var(--accent);
}

.forum-thread-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.94rem;
  margin-bottom:10px;
}

.forum-thread-card p{
  margin:0;
  color:var(--muted);
  line-height:1.75;
}

.forum-post-card{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:18px;
  padding:22px;
  border:1px solid var(--border);
  border-radius:18px;
  background:var(--surface);
  box-shadow:var(--shadow);
}

.forum-post-main{
  margin-bottom:18px;
}

.forum-post-author{
  display:flex;
  align-items:center;
  gap:12px;
}

.forum-avatar{
  width:52px;
  height:52px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:1.1rem;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
  box-shadow:var(--shadow-soft);
}

.forum-post-content h1{
  margin:0 0 12px;
  font-size:2rem;
  letter-spacing:-.03em;
}

.forum-post-content .wysiwyg{
  line-height:1.85;
}

.forum-replies-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.forum-replies-head h2{
  margin:0;
}

.forum-replies-list{
  display:grid;
  gap:14px;
}

.forum-reply-box h3{
  margin-top:0;
}

.forum-new-box{
  padding:24px;
}

.forum-form-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:8px;
}

@media (max-width:980px){
  .forum-hero{
    flex-direction:column;
    align-items:flex-start;
  }

  .forum-overview-compact,
  .forum-category-grid{
    grid-template-columns:1fr;
  }

  .forum-thread-card,
  .forum-post-card{
    grid-template-columns:1fr;
  }
}

@media (max-width:760px){
  .forum-form-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .forum-form-actions .btn,
  .forum-form-actions .btn-secondary{
    width:100%;
  }

  .forum-replies-head{
    flex-direction:column;
    align-items:flex-start;
  }
}

.brand-logo-image-wrap{
  overflow:hidden;
  padding:0 !important;
  background:var(--surface) !important;
}

.brand-logo-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:inherit;
}

.logo-preview-card{
  margin-top:8px;
  padding:18px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  box-shadow:var(--shadow-soft);
}

.logo-preview-card strong{
  display:block;
  margin-bottom:12px;
}

.logo-preview-box{
  width:120px;
  height:120px;
  border-radius:18px;
  border:1px solid var(--border);
  background:var(--surface-2);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.logo-preview-image{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}