/* =========================================================
   CONECTA FATEC — CSS OTIMIZADO
========================================================= */

/* =========================================================
   01. Tema e tokens
========================================================= */
:root,
html.theme-light,
body.theme-light {
  --app-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Inter, system-ui, sans-serif;
  --app-font-size: 1rem;

  --weight-heading: 680;
  --weight-title: 620;
  --weight-strong: 560;
  --weight-medium: 500;

  --primary-color: #2563eb;
  --primary-strong: #1d4ed8;
  --primary-soft: rgba(37, 99, 235, .14);
  --danger-color: #dc2626;
  --danger-soft: rgba(220, 38, 38, .10);
  --success-color: #16a34a;

  --bg-color: #eef4fb;
  --bg-accent: rgba(37, 99, 235, .12);
  --surface-color: rgba(255, 255, 255, .70);
  --surface-solid: #ffffff;
  --surface-muted: rgba(248, 250, 252, .78);
  --surface-hover: rgba(37, 99, 235, .07);
  --post-surface: rgba(255, 255, 255, .46);

  --border-color: rgba(100, 116, 139, .28);
  --border-strong: rgba(37, 99, 235, .38);
  --line-color: rgba(100, 116, 139, .20);

  --text-color: #0f172a;
  --text-soft: #475569;
  --text-muted: #64748b;

  --glass-blur: 1.25rem;
  --radius-sm: .875rem;
  --radius-md: 1.125rem;
  --radius-lg: 1.55rem;
  --radius-xl: 1.85rem;
  --radius-pill: 62.5rem;

  --sidebar-width: 18%;
  --content-width: 82%;
  --page-pad: clamp(1.05rem, 2vw, 2rem);
  --section-gap: clamp(.9rem, 1.5vw, 1.35rem);
  --card-gap: clamp(.85rem, 1.3vw, 1.15rem);
  --hairline: .0625rem;

  --avatar-sidebar: 50px;
  --avatar-post: 50px;
  --avatar-comment: 36px;
  --avatar-card: 86px;
  --avatar-side: 58px;
  --avatar-profile: 148px;
  --avatar-community-page: 148px;
  --avatar-about: 56px;

  --bs-body-bg: var(--bg-color);
  --bs-body-color: var(--text-color);
  --bs-border-color: var(--border-color);
  color-scheme: light;
}

html.theme-dark,
body.theme-dark {
  --primary-color: #60a5fa;
  --primary-strong: #93c5fd;
  --primary-soft: rgba(96, 165, 250, .16);
  --danger-color: #fb7185;
  --danger-soft: rgba(251, 113, 133, .12);
  --success-color: #4ade80;

  --bg-color: #070c18;
  --bg-accent: rgba(96, 165, 250, .12);
  --surface-color: rgba(17, 25, 42, .72);
  --surface-solid: #0f172a;
  --surface-muted: rgba(15, 23, 42, .72);
  --surface-hover: rgba(96, 165, 250, .09);
  --post-surface: rgba(15, 23, 42, .42);

  --border-color: rgba(148, 163, 184, .23);
  --border-strong: rgba(96, 165, 250, .38);
  --line-color: rgba(148, 163, 184, .18);

  --text-color: #f8fafc;
  --text-soft: #e2e8f0;
  --text-muted: #cbd5e1;

  --bs-body-bg: var(--bg-color);
  --bs-body-color: var(--text-color);
  --bs-border-color: var(--border-color);
  color-scheme: dark;
}

/* =========================================================
   02. Base, reset e tipografia
========================================================= */
* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }

body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--app-font-family);
  font-size: var(--app-font-size);
  color: var(--text-color);
  background:
    radial-gradient(circle at 14% -10%, var(--bg-accent), transparent 34rem),
    radial-gradient(circle at 94% 6%, rgba(14, 165, 233, .10), transparent 30rem),
    linear-gradient(180deg, var(--bg-color), var(--bg-color));
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

html.theme-dark body,
body.theme-dark {
  background:
    radial-gradient(circle at 14% -10%, rgba(37, 99, 235, .16), transparent 34rem),
    radial-gradient(circle at 94% 6%, rgba(14, 165, 233, .10), transparent 30rem),
    linear-gradient(180deg, #070c18, #0b1222 52%, #070c18);
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--primary-color); }

button,
input,
textarea,
select { font: inherit; }
button { cursor: pointer; }
button:disabled,
.btn:disabled { cursor: not-allowed; opacity: .62; }
img,
svg { max-width: 100%; }

:where(button, .btn, a, input, textarea, select):focus-visible {
  outline: .18rem solid var(--primary-soft);
  outline-offset: .18rem;
}

::placeholder {
  color: color-mix(in srgb, var(--text-muted) 78%, transparent) !important;
  opacity: 1;
}

h1,
h2,
h3,
h4,
h5,
h6,
.feed-header h1,
.community-page-info h1,
.profile-main-info h1,
.communities-hero-content > h1,
.doc-card h1,
.doc-card h2,
.about-project-card h2,
.about-resource-card h2 {
  margin-top: 0;
  color: var(--text-color);
  font-weight: var(--weight-heading);
  letter-spacing: -.038em;
  line-height: 1.08;
}

.feed-header h1,
.community-page-info h1,
.profile-main-info h1,
.communities-hero-content > h1 { font-size: clamp(1.65rem, 2.25vw, 2.25rem); }

.feed-control-text h2,
.communities-section-header h2,
.settings-card h2,
.side-card-header h2,
.profile-api-card h2,
.community-create-card h2,
.communities-summary-card h2,
.about-dev-section h3,
.community-side h2 {
  margin: 0;
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  font-weight: var(--weight-strong);
  letter-spacing: -.025em;
  line-height: 1.25;
}

p { margin-top: 0; }

.feed-header p,
.community-page-info p,
.profile-bio,
.profile-bio-text,
.post-text,
.comment-content,
.comment-text-line,
.communities-summary-card p,
.communities-summary-text p,
.community-create-box-text span,
.community-card p,
.friend-card-body p,
.settings-card p,
.about-project-card p,
.about-resource-card p,
.doc-card p,
.doc-card li {
  color: var(--text-muted);
  line-height: 1.6;
}

.feed-kicker,
.about-section-label,
.community-card-tag {
  display: inline-flex;
  width: fit-content;
  margin: 0 0 .45rem;
  color: var(--primary-color);
  font-size: .74rem;
  font-weight: var(--weight-strong);
  letter-spacing: .085em;
  line-height: 1.15;
  text-transform: uppercase;
}

.post-author,
.comment-author,
.friend-card-name,
.community-card h3,
.side-community-item strong,
.side-friend-item strong,
.member-item strong,
.logged-user strong,
.login-feature-item strong,
.community-create-box-text strong,
.register-rules-box > strong {
  color: var(--text-color);
  font-weight: var(--weight-strong);
  letter-spacing: -.016em;
}

.post-username,
.comment-username,
.nickname-text,
.nickname-badge,
.profile-nickname,
.comment-date,
.community-page-meta span,
.profile-stat-row span,
.profile-stats span,
.community-card-meta,
.side-community-item span,
.side-friend-item span,
.member-item span,
#sidebar-username {
  color: var(--text-muted) !important;
  font-weight: 500;
}

.text-primary-custom { color: var(--primary-color) !important; }
.text-danger { color: var(--danger-color) !important; }
.text-success { color: var(--success-color) !important; }
.text-muted,
html.theme-dark .text-muted,
body.theme-dark .text-muted { color: var(--text-muted) !important; }

/* =========================================================
   03. Superfícies, cards e utilitários
========================================================= */
.glass-surface,
:where(
  .login-container,
  .settings-card,
  .profile-card,
  .profile-section,
  .profile-api-card,
  .profile-hero-card,
  .side-card,
  .feed-create-card,
  .feed-control-card,
  .communities-summary-card,
  .community-create-box,
  .community-create-card,
  .community-card,
  .friend-card,
  .post-modal-content,
  .cookie-banner,
  .notification-home-btn,
  .mobile-offcanvas,
  .about-project-card,
  .about-resource-card,
  .doc-card
) {
  background: var(--surface-color);
  border: var(--hairline) solid var(--border-color);
  box-shadow: none !important;
  backdrop-filter: blur(var(--glass-blur)) saturate(1.18);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(1.18);
}

@supports not ((backdrop-filter: blur(1rem)) or (-webkit-backdrop-filter: blur(1rem))) {
  .glass-surface,
  :where(
    .login-container,
    .settings-card,
    .profile-card,
    .profile-section,
    .profile-api-card,
    .profile-hero-card,
    .side-card,
    .feed-create-card,
    .feed-control-card,
    .communities-summary-card,
    .community-create-box,
    .community-create-card,
    .community-card,
    .friend-card,
    .post-modal-content,
    .cookie-banner,
    .notification-home-btn,
    .mobile-offcanvas,
    .about-project-card,
    .about-resource-card,
    .doc-card,
    .sidebar
  ) { background: var(--surface-solid); }
}

.card,
.modal-content,
.offcanvas {
  background-color: var(--surface-color);
  color: var(--text-color);
  border-color: var(--border-color);
}

.border-top,
.border-bottom { border-color: var(--line-color) !important; }

.api-empty-state,
.comment-empty-state {
  width: 100%;
  padding: .95rem 1rem;
  color: var(--text-muted);
  border: var(--hairline) dashed var(--border-color);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface-solid) 34%, transparent);
}

/* =========================================================
   04. Formulários
========================================================= */
.form-control,
.form-select,
.custom-input,
.community-form-area input,
.community-form-area textarea,
.community-form-area select,
.settings-field select {
  width: 100%;
  min-height: 2.9rem;
  padding: .72rem .95rem;
  border: var(--hairline) solid var(--border-color) !important;
  border-radius: var(--radius-sm) !important;
  background: color-mix(in srgb, var(--surface-solid) 78%, transparent) !important;
  color: var(--text-color) !important;
  outline: 0;
  box-shadow: none !important;
  transition: background-color .18s ease, border-color .18s ease;
}

textarea,
.community-form-area textarea { resize: vertical; }

#editBio,
#editCommunityBio,
#communityBio {
  width: 100% !important;
  height: 150px !important;
  min-height: 150px !important;
  max-height: 150px !important;
  resize: none !important;
  overflow-y: auto;
}

:where(.form-control, .form-select, .custom-input, .community-form-area input, .community-form-area textarea, .settings-field select):focus {
  border-color: var(--border-strong) !important;
  background: var(--surface-solid) !important;
  box-shadow: 0 0 0 .18rem var(--primary-soft) !important;
}

.community-form-area,
.settings-field {
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

.community-form-area label,
.settings-field label {
  color: var(--text-color);
  font-size: .92rem;
  font-weight: var(--weight-strong);
}

.community-form-area input[type="file"] { padding: .65rem; cursor: pointer; }
html.theme-dark input[type="file"]::file-selector-button,
body.theme-dark input[type="file"]::file-selector-button { color: #0f172a; }
html.theme-dark .btn-close,
body.theme-dark .btn-close { filter: invert(1) grayscale(100%); }

/* =========================================================
   05. Botões
========================================================= */
.btn-primary,
.login-btn,
.new-post-btn,
.feed-hero-btn,
.feed-create-card-btn,
.modal-publish-btn,
.cookie-accept-btn,
.mobile-compose-fab,
.community-create-box-btn,
.community-card-btn,
.friend-card-btn,
.btn-outline-primary,
.edit-profile-btn,
.feed-tab.active,
.about-resource-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-height: 2.5rem;
  padding: .62rem 1rem;
  border: var(--hairline) solid var(--border-strong) !important;
  border-radius: var(--radius-pill) !important;
  background: linear-gradient(135deg, var(--primary-soft), color-mix(in srgb, var(--primary-soft) 66%, transparent)) !important;
  color: var(--primary-strong) !important;
  font-weight: var(--weight-strong);
  letter-spacing: -.012em;
  line-height: 1;
  box-shadow: none !important;
  filter: none !important;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
}

.btn-primary:hover,
.login-btn:hover,
.new-post-btn:hover,
.feed-hero-btn:hover,
.feed-create-card-btn:hover,
.modal-publish-btn:hover,
.cookie-accept-btn:hover,
.mobile-compose-fab:hover,
.community-create-box-btn:hover,
.community-card-btn:hover,
.friend-card-btn:hover,
.btn-outline-primary:hover,
.edit-profile-btn:hover,
.feed-tab.active:hover,
.about-resource-link:hover {
  color: var(--primary-strong) !important;
  border-color: var(--primary-color) !important;
  background: var(--primary-soft) !important;
  transform: translateY(-.06rem);
}

.logout-btn,
.settings-reset-btn,
.modal-cancel-btn,
.load-more-btn,
.btn-secondary,
.btn-outline-secondary,
.btn-light,
.feed-tab:not(.active) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-height: 2.5rem;
  padding: .62rem 1rem;
  border: var(--hairline) solid var(--border-color) !important;
  border-radius: var(--radius-pill) !important;
  background: color-mix(in srgb, var(--surface-solid) 38%, transparent) !important;
  color: var(--text-soft) !important;
  font-weight: var(--weight-strong);
  letter-spacing: -.012em;
  line-height: 1;
  box-shadow: none !important;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
}

.logout-btn:hover,
.settings-reset-btn:hover,
.modal-cancel-btn:hover,
.load-more-btn:hover,
.btn-secondary:hover,
.btn-outline-secondary:hover,
.btn-light:hover,
.feed-tab:not(.active):hover {
  background: var(--surface-hover) !important;
  color: var(--text-color) !important;
  border-color: color-mix(in srgb, var(--primary-color) 28%, var(--border-color)) !important;
  transform: translateY(-.06rem);
}

.btn-outline-danger,
.remove-friend-btn,
.settings-logout-btn,
.cancel-request-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-height: 2.5rem;
  padding: .62rem 1rem;
  border: var(--hairline) solid color-mix(in srgb, var(--danger-color) 38%, transparent) !important;
  border-radius: var(--radius-pill) !important;
  background: var(--danger-soft) !important;
  color: var(--danger-color) !important;
  font-weight: var(--weight-strong);
  box-shadow: none !important;
  white-space: nowrap;
}

.btn-outline-danger:hover,
.remove-friend-btn:hover,
.settings-logout-btn:hover,
.cancel-request-btn:hover,
.delete-action:hover {
  background: color-mix(in srgb, var(--danger-color) 15%, transparent) !important;
  color: var(--danger-color) !important;
  transform: translateY(-.06rem);
}

.disabled-action-btn,
.disabled-action-btn:hover {
  background: var(--surface-muted) !important;
  color: var(--text-muted) !important;
  cursor: default;
  transform: none;
}

/* =========================================================
   06. Logos, fotos e avatares
========================================================= */
.logo-light { display: block; }
.logo-dark { display: none; }
html.theme-light .logo-light,
body.theme-light .logo-light { display: block; }
html.theme-light .logo-dark,
body.theme-light .logo-dark { display: none; }
html.theme-dark .logo-light,
body.theme-dark .logo-light { display: none; }
html.theme-dark .logo-dark,
body.theme-dark .logo-dark { display: block; }

.sidebar-logo { display: flex; align-items: center; width: min(86%, 11.75rem); }
.sidebar-logo-img,
.logo-img,
.login-brand-logo { width: 100%; height: auto; object-fit: contain; }
.login-brand-logo { max-width: 18.75rem; }
.mobile-topbar-logo { width: 10.625rem; display: flex; align-items: center; }

.user-avatar,
.comment-avatar,
.profile-avatar,
.profile-main-avatar,
.community-card-avatar,
.community-page-avatar,
.side-community-avatar,
.side-friend-avatar,
.friend-card-avatar,
.about-dev-avatar,
#sidebar-avatar {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
  aspect-ratio: 1 / 1 !important;
  color: #fff;
  background: linear-gradient(135deg, #2563eb, #0ea5e9);
  font-weight: var(--weight-strong);
  letter-spacing: -.03em;
  line-height: 1;
  box-shadow: none !important;
}

.user-avatar,
.comment-avatar,
.profile-avatar,
.side-friend-avatar,
.friend-card-avatar,
.about-dev-avatar,
#sidebar-avatar { border-radius: var(--radius-pill); }

.profile-main-avatar,
.community-card-avatar,
.side-community-avatar,
.community-page-avatar { border-radius: var(--radius-md); }

.user-avatar { width: var(--avatar-post) !important; height: var(--avatar-post) !important; min-width: var(--avatar-post) !important; }
.comment-avatar,
.comment-avatar-small { width: var(--avatar-comment) !important; height: var(--avatar-comment) !important; min-width: var(--avatar-comment) !important; }
#sidebar-avatar,
.logged-user .user-avatar { width: var(--avatar-sidebar) !important; height: var(--avatar-sidebar) !important; min-width: var(--avatar-sidebar) !important; }
.community-card-avatar,
.friend-card-avatar { width: var(--avatar-card) !important; height: var(--avatar-card) !important; min-width: var(--avatar-card) !important; }
.side-community-avatar,
.side-friend-avatar { width: var(--avatar-side) !important; height: var(--avatar-side) !important; min-width: var(--avatar-side) !important; }
.profile-avatar,
.profile-main-avatar { width: var(--avatar-profile) !important; height: var(--avatar-profile) !important; min-width: var(--avatar-profile) !important; }
.community-page-avatar { width: var(--avatar-community-page) !important; height: var(--avatar-community-page) !important; min-width: var(--avatar-community-page) !important; }
.about-dev-avatar { width: var(--avatar-about) !important; height: var(--avatar-about) !important; min-width: var(--avatar-about) !important; }
.profile-main-avatar { cursor: pointer; transition: transform .18s ease; }
.profile-main-avatar:hover { transform: translateY(-.1rem) scale(1.01); }

#profile-avatar.profile-main-avatar,
.sidebar #sidebar-avatar { border: .125rem solid var(--primary-color); }
#public-avatar.profile-main-avatar { border: var(--hairline) solid var(--border-color); }

.avatar-link { display: inline-flex; flex: 0 0 auto !important; min-width: 0 !important; }

.user-avatar img,
.comment-avatar img,
.profile-avatar img,
.profile-main-avatar img,
.community-card-avatar img,
.community-page-avatar img,
.side-community-avatar img,
.side-friend-avatar img,
.friend-card-avatar img,
.about-dev-avatar img,
#sidebar-avatar img,
.has-image img,
.user-avatar.has-image img,
.comment-avatar.has-image img,
.community-card-avatar.has-image img,
.community-page-avatar.has-image img,
.friend-card-avatar.has-image img,
.side-community-avatar.has-image img,
.side-friend-avatar.has-image img,
.profile-avatar.has-image img,
.profile-main-avatar.has-image img,
.about-dev-avatar.has-image img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
}

.static-avatar,
.static-avatar-blue,
.static-avatar-green,
.static-avatar-purple,
.static-avatar-orange,
.static-avatar-red,
.static-avatar-indigo,
.static-avatar-teal,
.static-avatar-pink,
.static-avatar-gray,
.static-avatar-yellow,
.static-avatar-brown,
.user-avatar-alt { background: linear-gradient(135deg, #2563eb, #0ea5e9) !important; }

#profile-friends-container .side-community-avatar,
#public-friends-container .side-community-avatar,
.side-friend-avatar { border-radius: var(--radius-pill) !important; }
#profile-communities-container .side-community-avatar,
#public-communities-container .side-community-avatar,
#community-members-list .side-community-avatar,
.side-community-avatar { border-radius: var(--radius-sm) !important; }
.friend-card-avatar { border-radius: var(--radius-pill) !important; }
.community-card-avatar,
.community-page-avatar { border-radius: var(--radius-md) !important; }

/* =========================================================
   07. Login / Index
========================================================= */
html:has(.login-page),
body:has(.login-page) {
  width: 100%;
  height: 100%;
  min-height: 100%;
  overflow: hidden;
  background: #020617;
}

body:has(.login-page) {
  margin: 0;
}

.login-page {
  --primary-color: #2563eb;
  --primary-strong: #1d4ed8;
  --primary-soft: rgba(37, 99, 235, .13);

  --surface-color: rgba(255, 255, 255, .74);
  --surface-solid: rgba(255, 255, 255, .94);
  --surface-muted: rgba(248, 250, 252, .82);
  --surface-hover: rgba(37, 99, 235, .08);

  --border-color: rgba(148, 163, 184, .38);
  --border-strong: rgba(37, 99, 235, .42);
  --line-color: rgba(100, 116, 139, .22);

  --text-color: #0f172a;
  --text-soft: #334155;
  --text-muted: #64748b;

  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  padding: clamp(1rem, 4vw, 3rem);
  overflow: hidden;
  color: var(--text-color);
  background:
    linear-gradient(135deg, rgba(15, 23, 42, .48), rgba(15, 23, 42, .22)),
    url("../img/login-desktop.jpg") center / cover no-repeat;
}

.login-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .18), transparent 34rem),
    linear-gradient(180deg, rgba(15, 23, 42, .12), rgba(15, 23, 42, .36));
  pointer-events: none;
}

.login-shell {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  width: min(92%, 34rem);
  margin-inline: auto;
}

.login-container {
  width: 100%;
  max-width: 31rem;
  padding: clamp(1.35rem, 5vw, 2rem) !important;
  border: var(--hairline) solid rgba(255, 255, 255, .48) !important;
  border-radius: var(--radius-xl) !important;
  background: rgba(255, 255, 255, .72) !important;
  color: var(--text-color);
  box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, .22) !important;
  backdrop-filter: blur(1.35rem) saturate(1.2);
  -webkit-backdrop-filter: blur(1.35rem) saturate(1.2);
}

.login-card-brand {
  display: flex;
  justify-content: center;
  margin-bottom: 1.35rem;
}

.login-card-logo {
  display: block;
  width: min(78%, 17rem);
  height: auto;
  margin-inline: auto;
}

.login-page .form-label,
.login-page .small {
  color: var(--text-color) !important;
}

.login-page .small {
  color: var(--text-muted) !important;
}

.login-page .custom-input,
.login-page .form-control {
  border-color: rgba(148, 163, 184, .44) !important;
  background: rgba(255, 255, 255, .72) !important;
  color: var(--text-color) !important;
}

.login-page .custom-input:focus,
.login-page .form-control:focus {
  border-color: var(--border-strong) !important;
  background: rgba(255, 255, 255, .92) !important;
  box-shadow: 0 0 0 .18rem rgba(37, 99, 235, .12) !important;
}

.login-page .border-top {
  border-color: rgba(100, 116, 139, .22) !important;
}

.login-page .login-btn {
  background: rgba(37, 99, 235, .12) !important;
  color: var(--primary-strong) !important;
  border-color: rgba(37, 99, 235, .34) !important;
}

.login-page .login-btn:hover {
  background: rgba(37, 99, 235, .18) !important;
  border-color: rgba(37, 99, 235, .48) !important;
  color: var(--primary-strong) !important;
  transform: translateY(-.06rem);
}

/* Cadastro do index sempre em tema claro + liquid glass */
#registerModal {
  color-scheme: light;

  --primary-color: #2563eb;
  --primary-strong: #1d4ed8;
  --primary-soft: rgba(37, 99, 235, .14);

  --register-text: #0f172a;
  --register-soft: #334155;
  --register-muted: #64748b;
  --register-border: rgba(148, 163, 184, .34);
  --register-line: rgba(100, 116, 139, .18);
  --register-field: rgba(255, 255, 255, .9);
  --register-field-focus: rgba(255, 255, 255, .98);

  color: var(--register-text) !important;
}

#registerModal .modal-dialog {
  filter: drop-shadow(0 1.5rem 3rem rgba(15, 23, 42, .34));
}

#registerModal .modal-content,
#registerModal .post-modal-content {
  overflow: hidden;
  border: var(--hairline) solid rgba(255, 255, 255, .72) !important;
  border-radius: var(--radius-xl) !important;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .86)) !important;
  color: var(--register-text) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .82),
    0 1.5rem 4rem rgba(15, 23, 42, .30) !important;
  backdrop-filter: blur(1.15rem) saturate(1.12);
  -webkit-backdrop-filter: blur(1.15rem) saturate(1.12);
}

#registerModal .modal-header,
#registerModal .modal-body,
#registerModal .modal-footer,
#registerModal .post-modal-header,
#registerModal .post-modal-body,
#registerModal .post-modal-footer {
  background: transparent !important;
  color: var(--register-text) !important;
}

#registerModal .modal-header,
#registerModal .post-modal-header {
  border-bottom: var(--hairline) solid var(--register-line) !important;
}

#registerModal .modal-footer,
#registerModal .post-modal-footer {
  border-top: var(--hairline) solid var(--register-line) !important;
}

#registerModal h1,
#registerModal h2,
#registerModal h3,
#registerModal h4,
#registerModal h5,
#registerModal h6,
#registerModal label,
#registerModal strong,
#registerModal .modal-title,
#registerModal .register-email-preview {
  color: var(--register-text) !important;
}

#registerModal p,
#registerModal span,
#registerModal li,
#registerModal .small,
#registerModal .register-step-hint,
#registerModal .register-rules-check span {
  color: var(--register-muted) !important;
}

#registerModal .btn-close {
  filter: none !important;
  opacity: .72;
}

.register-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .5rem;
  margin-bottom: 1rem;
}

#registerModal .register-steps span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: .45rem .55rem;
  border: var(--hairline) solid rgba(148, 163, 184, .32) !important;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, .72) !important;
  color: var(--register-muted) !important;
  font-size: .78rem;
  font-weight: var(--weight-strong);
  line-height: 1;
  text-align: center;
}

#registerModal .register-steps span.active,
#registerModal .register-steps span.completed {
  border-color: rgba(37, 99, 235, .38) !important;
  background: rgba(37, 99, 235, .12) !important;
  color: var(--primary-strong) !important;
}

#registerModal .register-step-panel,
#registerModal .register-rules-box {
  border: var(--hairline) solid rgba(255, 255, 255, .68) !important;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .84), rgba(255, 255, 255, .70)) !important;
  color: var(--register-text) !important;
  backdrop-filter: blur(.75rem) saturate(1.08);
  -webkit-backdrop-filter: blur(.75rem) saturate(1.08);
}

#registerModal .register-step-panel {
  padding: 1rem;
}

#registerModal .register-step-panel[hidden] {
  display: none !important;
}

#registerModal .community-form-area {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--register-text) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#registerModal input,
#registerModal textarea,
#registerModal select,
#registerModal .form-control,
#registerModal .form-select,
#registerModal .custom-input {
  border: var(--hairline) solid var(--register-border) !important;
  background: var(--register-field) !important;
  color: var(--register-text) !important;
  box-shadow: none !important;
}

#registerModal input::placeholder,
#registerModal textarea::placeholder {
  color: #94a3b8 !important;
  opacity: 1;
}

#registerModal input:focus,
#registerModal textarea:focus,
#registerModal select:focus,
#registerModal .form-control:focus,
#registerModal .form-select:focus,
#registerModal .custom-input:focus {
  border-color: rgba(37, 99, 235, .44) !important;
  background: var(--register-field-focus) !important;
  color: var(--register-text) !important;
  box-shadow: 0 0 0 .18rem rgba(37, 99, 235, .12) !important;
}

#registerModal input:disabled,
#registerModal input[readonly],
#registerModal textarea:disabled,
#registerModal select:disabled,
#registerModal #regVerifiedEmail {
  background: rgba(241, 245, 249, .88) !important;
  color: var(--register-muted) !important;
  opacity: 1 !important;
  cursor: not-allowed;
}

.register-rules-box {
  padding: 1rem;
}

.register-rules-box > strong {
  display: block;
  margin-bottom: .55rem;
}

.register-rules-box ul {
  margin: 0 0 .9rem 1.05rem;
  padding: 0;
  color: var(--register-muted);
  font-size: .9rem;
  line-height: 1.55;
}

.register-rules-check {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  padding-top: .75rem;
  border-top: var(--hairline) solid var(--register-line) !important;
  color: var(--register-text);
  cursor: pointer;
}

.register-rules-check input[type="checkbox"] {
  width: 1.125rem !important;
  min-width: 1.125rem !important;
  height: 1.125rem !important;
  min-height: 1.125rem !important;
  padding: 0 !important;
  margin: .18rem 0 0 !important;
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  background: #ffffff !important;
  accent-color: var(--primary-color);
  box-shadow: none !important;
}

.register-rules-check span {
  flex: 1;
  font-size: .9rem;
  line-height: 1.42;
}

.register-rules-check a,
.cookie-banner a {
  color: var(--primary-color);
  font-weight: var(--weight-strong);
}

.register-rules-check a:hover,
.cookie-banner a:hover {
  text-decoration: underline;
}

.register-step-hint {
  margin: 0 0 1rem;
  color: var(--register-muted);
  font-size: .92rem;
  line-height: 1.5;
}

.register-email-preview {
  color: var(--register-text);
  font-weight: var(--weight-strong);
}

.register-inline-actions {
  align-items: center;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: .75rem;
}

.register-text-btn {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--primary-color);
  font-size: .9rem;
  font-weight: var(--weight-strong);
  line-height: 1.3;
}

.register-text-btn:hover {
  text-decoration: underline;
}

#registerModal .modal-cancel-btn {
  border-color: rgba(148, 163, 184, .38) !important;
  background: rgba(255, 255, 255, .76) !important;
  color: var(--register-soft) !important;
}

#registerModal .modal-publish-btn {
  border-color: rgba(37, 99, 235, .38) !important;
  background: rgba(37, 99, 235, .12) !important;
  color: var(--primary-strong) !important;
}

#registerModal .modal-cancel-btn:hover,
#registerModal .modal-publish-btn:hover {
  transform: translateY(-.04rem);
}

#registerModal .text-danger {
  color: #dc2626 !important;
}

#registerModal .text-success {
  color: #16a34a !important;
}


@media (max-width: 48rem) {
  .login-page {
    width: 100%;
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    padding: 1rem;
    overflow: hidden;
    background:
      linear-gradient(180deg, rgba(15, 23, 42, .30), rgba(15, 23, 42, .52)),
      url("../img/login-mobile.jpg") center / cover no-repeat;
  }

  .login-shell {
    width: 100%;
  }

  .login-container {
    max-width: 100%;
    padding: 1.15rem !important;
    border-radius: var(--radius-lg) !important;
  }

  .login-card-brand {
    margin-bottom: 1rem;
  }

  .login-card-logo {
    width: min(80%, 13rem);
  }

  .login-page .mb-3 {
    margin-bottom: .85rem !important;
  }

  .login-page .form-label {
    margin-bottom: .35rem;
    font-size: .82rem;
  }

  .login-page .custom-input,
  .login-page .form-control {
    min-height: 2.55rem;
    font-size: .86rem;
  }

  .login-page .login-btn {
    min-height: 2.45rem;
    padding-block: .45rem !important;
    font-size: .84rem;
  }

  .login-page .text-center.mt-4 {
    margin-top: 1rem !important;
    padding-top: .9rem !important;
  }

  .register-steps {
    gap: .4rem;
  }

  .register-steps span {
    min-height: 1.9rem;
    padding: .42rem .45rem;
    font-size: .72rem;
  }

  .register-name-row {
    flex-direction: column;
    gap: .75rem !important;
  }
}

.cookie-banner {
  position: fixed;
  inset: auto 2% 2%;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: min(96%, 56rem);
  margin: auto;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-lg);
}

.cookie-banner p { margin: .2rem 0 0; color: var(--text-muted); }
.cookie-accept-btn { white-space: nowrap; }

/* =========================================================
   08. Layout principal, sidebar e navegação mobile
========================================================= */
.feed-page { min-height: 100vh; }

.feed-layout {
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(0, var(--content-width));
  width: 100%;
  min-height: 100vh;
  margin: 0 auto;
}

.feed-content,
.communities-content,
.friends-content,
.community-page-content {
  min-width: 0;
  min-height: 100vh;
  border-inline: var(--hairline) solid var(--line-color);
  background: color-mix(in srgb, var(--surface-solid) 13%, transparent);
}

.sidebar {
  position: sticky;
  top: 0;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-height: 100vh;
  padding: 1.4rem 1rem;
  border-right: var(--hairline) solid var(--line-color);
  background: color-mix(in srgb, var(--surface-solid) 46%, transparent);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

.sidebar-nav,
.mobile-nav { display: flex; flex-direction: column; gap: .28rem; }

.sidebar-link {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 2.65rem;
  padding: .58rem .85rem .58rem 1rem;
  border-radius: var(--radius-sm);
  color: var(--text-muted);
  font-weight: var(--weight-strong);
  letter-spacing: -.012em;
  transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.sidebar-link::before {
  content: "";
  position: absolute;
  left: .38rem;
  top: 31%;
  bottom: 31%;
  width: .18rem;
  border-radius: var(--radius-pill);
  background: transparent;
}

.sidebar-link:hover { background: var(--surface-hover); color: var(--text-color); transform: translateX(.06rem); }
.sidebar-link.active { background: var(--primary-soft); color: var(--primary-strong); }
.sidebar-link.active::before { background: var(--primary-color); }

.new-post-btn { width: 100%; }
.sidebar-actions { display: flex; flex-direction: column; gap: .75rem; margin-top: auto; }

.logged-user {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
  padding: .45rem;
  border-radius: var(--radius-md);
  color: var(--text-color);
}
.logged-user:hover { background: var(--surface-hover); color: var(--text-color); }
.logged-user span,
#sidebar-username { display: block; color: var(--primary-color) !important; font-size: .84rem; }

.mobile-topbar,
.mobile-offcanvas,
.mobile-bottom-nav,
.mobile-compose-fab { display: none; }

.mobile-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 1rem;
  border-bottom: var(--hairline) solid var(--line-color);
  background: var(--surface-color);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

.mobile-menu-btn,
.theme-toggle-btn {
  width: 2.75rem;
  height: 2.75rem;
  border: var(--hairline) solid var(--border-color);
  border-radius: var(--radius-sm);
  background: var(--surface-color);
  color: var(--text-color);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 1.25rem;
}

.mobile-offcanvas { width: min(84vw, 20rem); color: var(--text-color); }
.mobile-offcanvas .offcanvas-header { padding: 1.125rem; border-bottom: var(--hairline) solid var(--line-color); }
.mobile-offcanvas .offcanvas-title { font-size: 1.15rem; font-weight: var(--weight-heading); }
.mobile-offcanvas .offcanvas-body { padding: 1.125rem; }
.mobile-new-post-btn,
.mobile-logged-user,
.mobile-theme-btn { margin-top: 1.125rem; }

.mobile-theme-btn {
  width: 100%;
  border: var(--hairline) solid var(--border-color);
  border-radius: var(--radius-pill);
  background: var(--surface-color);
  color: var(--text-color);
  font-weight: var(--weight-strong);
  padding: .75rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* =========================================================
   09. Cabeçalhos, heróis e controles
========================================================= */
.feed-header,
.feed-hero,
.communities-hero,
.community-page-hero {
  padding: var(--page-pad);
  border-bottom: var(--hairline) solid var(--line-color);
}

.feed-hero,
.feed-hero-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.feed-header h1,
.communities-hero-content > h1,
.community-page-info h1,
.profile-main-info h1 { margin: 0 0 .55rem !important; }
.feed-header p,
.communities-hero-content > p,
.community-page-info p { margin: 0; }

.notification-home-btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .65rem .95rem;
  border-radius: var(--radius-pill);
  color: var(--text-color);
  font-weight: var(--weight-strong);
}

.notification-home-btn strong {
  display: inline-grid;
  place-items: center;
  min-width: 1.45rem;
  min-height: 1.45rem;
  padding: 0 .35rem;
  border-radius: var(--radius-pill);
  background: var(--primary-soft);
  color: var(--primary-strong);
}

.feed-control-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: .95rem var(--page-pad);
  border-width: 0 0 var(--hairline);
  border-radius: 0;
}

.feed-control-text p,
.communities-section-header p { margin: .18rem 0 0; color: var(--text-muted); }

.feed-tabs { display: inline-flex; gap: .35rem; }
.feed-tab { border: 0; color: var(--text-muted); }
.feed-tab-content { padding: 0; }

/* =========================================================
   10. Feed, posts e comentários
========================================================= */
.feed-create-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  margin: 0;
  padding: 1rem var(--page-pad);
  border-width: 0 0 var(--hairline);
  border-radius: 0;
  cursor: pointer;
}
.feed-create-card:hover { background: var(--surface-hover); }
.feed-create-card-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.feed-create-card-text span { color: var(--text-muted); font-size: .93rem; }

.posts-list,
#posts-container,
#feed-posts-container,
#general-posts-container,
#friends-posts-container,
#profile-posts-container,
#public-posts-container,
#community-posts-container,
#community-posts-list {
  display: grid !important;
  gap: var(--card-gap) !important;
}

.feed-tab-content :is(.posts-list, #posts-container, #feed-posts-container, #general-posts-container, #friends-posts-container),
.feed-content > :is(.posts-list, #posts-container, #feed-posts-container, #general-posts-container, #friends-posts-container) {
  padding: 1rem 2% 2rem !important;
}

.profile-main :is(#profile-posts-container, #public-posts-container, .posts-list),
.community-main :is(#community-posts-container, #community-posts-list, .posts-list) { padding-top: .95rem !important; }

.post-card,
.profile-post-card,
.profile-post-item,
#posts-container > *,
#feed-posts-container > *,
#general-posts-container > *,
#friends-posts-container > *,
#profile-posts-container > *,
#public-posts-container > *,
#community-posts-container > *,
#community-posts-list > * {
  display: flex;
  align-items: flex-start;
  gap: var(--card-gap) !important;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: clamp(.95rem, 1.3vw, 1.15rem) !important;
  border: var(--hairline) solid var(--border-color) !important;
  border-radius: 1.25rem !important;
  background: var(--post-surface) !important;
  box-shadow: none !important;
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.post-card:hover,
.profile-post-card:hover,
.profile-post-item:hover,
#posts-container > *:hover,
#feed-posts-container > *:hover,
#general-posts-container > *:hover,
#friends-posts-container > *:hover,
#profile-posts-container > *:hover,
#public-posts-container > *:hover,
#community-posts-container > *:hover,
#community-posts-list > *:hover {
  border-color: color-mix(in srgb, var(--primary-color) 32%, var(--border-color)) !important;
  background: color-mix(in srgb, var(--surface-hover) 80%, transparent) !important;
  transform: translateY(-.04rem);
}

.post-card-highlight {
  outline: .125rem solid var(--primary-soft);
  outline-offset: -.125rem;
}

.post-body {
  display: flex;
  flex-direction: column;
  gap: .18rem;
  width: 100%;
  min-width: 0;
}

.post-header,
.comment-header {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .2rem .42rem;
  margin-bottom: .2rem;
}

.post-author:hover,
.comment-author:hover { color: var(--primary-color); }
.post-username::before,
.comment-username::before,
.nickname-badge::before { content: ""; }

.post-text,
.post-comment p,
.comment-content {
  color: var(--text-soft);
  line-height: 1.58;
  word-wrap: break-word;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.post-text { margin: .28rem 0 .58rem !important; }

.post-actions,
.comment-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .9rem !important;
  margin-top: .08rem;
}

.post-action-btn,
.comment-action {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  padding: 0;
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.2;
  transition: color .18s ease, transform .18s ease;
}

.post-action-btn:hover,
.comment-action:hover { color: var(--primary-color); transform: translateY(-.06rem); }
.post-action-btn[disabled],
.comment-action[disabled] { cursor: not-allowed; opacity: .55; transform: none; }
.post-action-btn svg { width: 1.125rem; height: 1.125rem; }
.comment-action svg { width: .875rem; height: .875rem; }
.post-action-btn svg,
.comment-action svg { fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

.delete-action { color: var(--danger-color) !important; }
.owner-action { color: var(--text-muted); }

.post-community-chip,
.profile-post-source {
  display: inline-flex;
  width: fit-content;
  margin-top: .15rem;
  color: var(--primary-color) !important;
  font-size: .84rem;
  font-weight: var(--weight-strong);
  line-height: 1.35;
}
.post-community-chip::before { content: "" !important; }
.post-community-chip:hover,
.profile-post-source:hover { color: var(--primary-strong) !important; text-decoration: underline; }

.comments-section {
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: var(--hairline) solid var(--line-color);
}
.comments-list { display: grid; gap: 0; }

.post-comment {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin-top: 0;
  padding: .78rem 0;
  border: 0;
  border-top: var(--hairline) solid var(--line-color);
  border-radius: 0;
  background: transparent;
}
.post-comment:first-child { border-top: 0; }
.comment-body { width: 100%; min-width: 0; }
.comment-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem; min-width: 0; }
.comment-text-line { display: block; margin: .2rem 0 .5rem; }
.comment-replies,
.comment-replies-one { margin-top: .65rem; padding-left: 1rem; border-left: .125rem solid var(--line-color); }
.comment-replies-one { padding-top: .35rem; padding-bottom: .25rem; }
.comment-reply-inline,
.comment-flat { display: flex; align-items: flex-start; gap: .65rem; }
.reply-next-btn { margin-top: .35rem; }
.reply-box,
.comment-input-row,
.comment-edit-inline { display: flex; align-items: center; gap: .5rem; }
.like-count,
.comment-like-count { font-variant-numeric: tabular-nums; }
.feed-footer,
.profile-posts-end,
.community-posts-end,
#posts-container > .feed-footer,
#feed-posts-container > .feed-footer,
#general-posts-container > .feed-footer,
#friends-posts-container > .feed-footer,
#profile-posts-container > .feed-footer,
#public-posts-container > .feed-footer,
#community-posts-container > .feed-footer,
#community-posts-list > .feed-footer {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: .75rem 0 0 !important;
  padding: 1.25rem 0 !important;
  border: 0 !important;
  border-top: var(--hairline) solid var(--line-color) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text-muted) !important;
  text-align: center !important;
  font-size: .92rem !important;
  font-weight: var(--weight-strong) !important;
  transform: none !important;
}

.feed-footer:hover,
.profile-posts-end:hover,
.community-posts-end:hover,
#posts-container > .feed-footer:hover,
#feed-posts-container > .feed-footer:hover,
#general-posts-container > .feed-footer:hover,
#friends-posts-container > .feed-footer:hover,
#profile-posts-container > .feed-footer:hover,
#public-posts-container > .feed-footer:hover,
#community-posts-container > .feed-footer:hover,
#community-posts-list > .feed-footer:hover {
  border-color: var(--line-color) !important;
  background: transparent !important;
  transform: none !important;
}

.notification-home-btn-label {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}

.notification-home-btn svg {
  width: 1.05rem;
  height: 1.05rem;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* =========================================================
   11. Modais e visualização de foto
========================================================= */
.post-modal-content {
  overflow: hidden;
  border-radius: var(--radius-xl);
  color: var(--text-color);
}

.post-modal-header,
.post-modal-footer {
  border-color: var(--line-color) !important;
  padding: 1rem 1.2rem;
}
.post-modal-header h2 { margin: 0; letter-spacing: -.025em; }
.post-modal-body { padding: 1.2rem; }
.create-post-modal-area { display: flex; gap: .9rem; }
.create-post-modal-area textarea {
  width: 100%;
  min-height: 9.375rem;
  border: 0;
  outline: 0;
  resize: none;
  background: transparent;
  color: var(--text-color);
  font-size: 1.05rem;
  line-height: 1.55;
}
.post-modal-warning { margin: 1rem 0 0; color: var(--text-muted); font-size: .86rem; }
.photo-viewer-dialog { max-width: min(33.75rem, 92vw); }
.photo-viewer-content { overflow: hidden; border-radius: var(--radius-xl); background: var(--surface-color); }
.photo-viewer-img { max-width: 100%; max-height: 70vh; object-fit: contain; border-radius: var(--radius-lg); }

/* =========================================================
   12. Perfil próprio e público
========================================================= */
.profile-layout,
.community-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 72%) minmax(17rem, 28%);
  gap: 2%;
  padding: var(--page-pad);
  align-items: start;
}

.profile-main,
.community-main { min-width: 0; }

.profile-card,
.profile-section,
.side-card,
.profile-api-card {
  overflow: hidden;
  border-radius: var(--radius-lg);
  color: var(--text-color);
}

.profile-hero-card {
  position: relative !important;
  padding: clamp(1.35rem, 3vw, 2.2rem) !important;
  border-radius: var(--radius-lg);
}

.profile-hero-layout {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas:
    "avatar info action"
    "bio bio bio";
  align-items: start;
  gap: 0 clamp(1rem, 2vw, 1.45rem);
  min-width: 0;
}

.profile-hero-layout > .profile-main-avatar,
.profile-hero-layout > .profile-avatar,
.profile-hero-layout > #profile-avatar,
.profile-hero-layout > #public-avatar { grid-area: avatar; }

.profile-main-info {
  grid-area: info;
  min-width: 0;
  padding-right: min(18%, 10rem);
}

.profile-main-info .feed-kicker { margin-bottom: .45rem !important; }
.profile-main-info h1 { margin-bottom: .2rem !important; }
.profile-nickname { margin: .15rem 0 .65rem !important; }
.profile-course-text,
.profile-course { margin: .25rem 0 !important; color: var(--text-soft); line-height: 1.5; }

.profile-stat-row,
.profile-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .85rem;
  margin: .55rem 0 .65rem !important;
  color: var(--text-muted);
}

.profile-stat-row strong,
.profile-stats strong { color: var(--text-color); font-weight: var(--weight-strong); }

.profile-bio,
.profile-bio-text,
.profile-main-info > .profile-bio,
.profile-main-info > .profile-bio-text {
  grid-area: bio;
  display: block;
  width: 100%;
  max-width: min(100%, 58rem);
  margin-top: clamp(.9rem, 1.45vw, 1.2rem) !important;
  color: var(--text-soft);
  line-height: 1.65;
}

.profile-hero-card .edit-profile-btn,
.profile-hero-layout .edit-profile-btn,
.profile-hero-card #edit-profile-btn,
.profile-hero-card #editProfileBtn,
.profile-hero-card button[id*="edit"],
.profile-hero-card a[id*="edit"] {
  grid-area: action;
  justify-self: end;
  align-self: start;
  width: fit-content !important;
  min-width: max-content !important;
  margin: 0 !important;
  z-index: 5;
}

.profile-side-stack,
.profile-side,
.community-side { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.profile-side-stack .profile-api-card,
.side-card { padding: 1.125rem; border-radius: var(--radius-lg); }
.side-card-header { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .65rem; }
.side-card-header span { color: var(--primary-color); font-weight: var(--weight-strong); }

.profile-friends-list { display: flex; flex-direction: column; gap: .65rem; }
.side-community-item,
.side-friend-item,
.member-item {
  display: flex;
  align-items: center;
  gap: .85rem;
  min-width: 0;
  padding: .82rem 0;
  border-bottom: var(--hairline) solid var(--line-color);
  color: var(--text-color);
}
.side-community-item:last-child,
.side-friend-item:last-child,
.member-item:last-child { border-bottom: 0; }
.side-community-item > div,
.side-friend-item > div,
.member-item > div { min-width: 0; }
.side-community-item strong,
.side-friend-item strong,
.member-item strong { display: block; line-height: 1.22; overflow-wrap: anywhere; }
.side-community-item span,
.side-friend-item span,
.member-item span { display: block; margin-top: .18rem; font-size: .84rem; line-height: 1.35; overflow-wrap: anywhere; }

.clickable-post { cursor: pointer; }
.post-summary-actions { pointer-events: none; }
.profile-post-item .post-body { display: flex; flex-direction: column; gap: .12rem; }
.profile-post-item .post-header { order: 1; }
.profile-post-item .post-text,
.profile-post-item [id^="post-text-content-"] { order: 2; margin-bottom: .1rem; }
.profile-post-item .profile-post-source,
.profile-post-item .post-community-chip { order: 3; }
.profile-post-item .post-actions { order: 4; }
.profile-post-item .post-summary-actions { display: none !important; }
.creator-crown { display: none !important; }
.community-creator-label { color: var(--text-muted); font-size: .84rem; font-weight: 500; }
.profile-posts-footer {
  display: grid;
  place-items: center;
  gap: .7rem;
  padding: 1rem 0 .25rem;
  color: var(--text-muted);
  font-size: .92rem;
}

#profile-posts-container > .profile-posts-footer,
#public-posts-container > .profile-posts-footer {
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: .5rem 0 0 !important;
  padding: 1.15rem 0 .25rem !important;
  border: 0 !important;
  border-top: var(--hairline) solid var(--line-color) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text-muted) !important;
  text-align: center !important;
  transform: none !important;
}

#profile-posts-container > .profile-posts-footer:hover,
#public-posts-container > .profile-posts-footer:hover {
  border-color: var(--line-color) !important;
  background: transparent !important;
  transform: none !important;
}

.profile-posts-footer .load-more-btn {
  min-width: 0 !important;
  min-height: auto !important;
  width: fit-content !important;
  margin: .35rem auto 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  font-size: .86rem;
  font-weight: var(--weight-strong);
  line-height: 1.2;
  box-shadow: none !important;
  transform: none !important;
}

.profile-posts-footer .load-more-btn:hover {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--primary-color) !important;
  text-decoration: none !important;
  transform: none !important;
}

/* =========================================================
   13. Comunidades, amizades e solicitações
========================================================= */
.communities-hero-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--section-gap);
  max-width: none;
}

.communities-hero-content > .feed-kicker,
.communities-hero-content > h1,
.communities-hero-content > p,
.communities-hero-content > .search-box-row,
.communities-hero-content > .friend-feedback-row { grid-column: 1 / -1; }
.communities-hero-content > .feed-kicker { margin-bottom: .35rem !important; }

.communities-layout,
.settings-layout,
.about-page-layout {
  display: grid;
  gap: var(--section-gap);
  padding: var(--page-pad);
}

.communities-summary-card,
.community-create-box,
.community-create-card,
.settings-card {
  padding: clamp(1rem, 1.75vw, 1.35rem) !important;
  border-radius: var(--radius-lg);
}

.communities-summary-card,
.community-create-box {
  min-height: 10.9rem;
  align-items: center;
}

.communities-summary-card {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
}

.communities-summary-card h2,
.community-create-box-text strong { margin: 0 0 .45rem; line-height: 1.25; }
.communities-summary-text { display: grid; gap: .45rem; margin-top: .35rem; }
.communities-summary-text p { margin: 0; }
.communities-summary-text strong { color: var(--text-color); font-weight: var(--weight-strong); }

.community-create-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  justify-content: stretch;
  gap: 1rem;
  cursor: default;
}
.community-create-box[data-bs-toggle],
.community-create-box.is-clickable,
.friend-add-card { cursor: pointer; }
.community-create-box:hover { background: var(--surface-hover); }
.community-create-box-text { display: flex; flex-direction: column; justify-content: center; gap: .25rem; min-width: 0; }
.community-create-box-btn { justify-self: end; min-width: 10rem; max-width: 13.75rem; }

.search-box-row,
.friend-search-row { grid-column: 1 / -1; margin-top: .25rem !important; }
.search-box-row .custom-input,
.search-box-row input,
.friend-search-row .custom-input,
.friend-search-row input { min-height: 3.05rem; border-radius: 1rem !important; }
.friend-feedback-row { display: grid; gap: .35rem; }
.friend-feedback-row p { margin: 0; }

.communities-section {
  padding-top: 1.125rem;
  border-top: var(--hairline) solid var(--line-color);
}

.communities-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .95rem;
}

.communities-grid,
.friends-grid,
.requests-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--section-gap);
}

.community-card,
.friend-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: flex-start;
  gap: var(--card-gap);
  min-height: 12.8rem;
  height: 100%;
  padding: 1.125rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.community-card:hover,
.friend-card:hover {
  background: var(--surface-hover);
  border-color: color-mix(in srgb, var(--primary-color) 32%, var(--border-color));
  transform: translateY(-.1rem);
}

.community-card-link,
.friend-card-link-card,
.friend-card-link,
[data-profile-href] { color: var(--text-color); text-decoration: none; cursor: pointer; }
.community-card-link:hover,
.friend-card-link-card:hover,
.friend-card-link:hover,
[data-profile-href]:hover { color: var(--text-color); }
.community-card-link:hover h3,
.friend-card-link-card:hover h3,
.friend-card-link-card:hover .friend-card-name,
.friend-card-link:hover .friend-card-name { color: var(--primary-color); }

.community-card-body,
.friend-card-body {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 100%;
}

.community-card h3,
.friend-card-name {
  display: block;
  margin: .2rem 0 .4rem;
  color: var(--text-color);
  font-size: 1.05rem;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.community-card-body p,
.friend-card-body p,
.friend-card-body .friend-card-course {
  min-height: 3em;
  max-height: 4.7em;
  margin-bottom: .65rem;
  overflow: hidden;
  line-height: 1.5;
}

.community-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
  margin: auto 0 0;
  color: var(--text-muted);
  font-size: .86rem;
}

.card-text-link,
.community-text-link,
.friend-text-link,
.friend-status-pill,
.community-card-body > .community-card-btn,
.community-card-body > .friend-status-pill,
.community-card-body > .community-text-link,
.friend-card-body > .friend-text-link {
  display: inline-flex;
  width: fit-content;
  margin-top: auto !important;
  color: var(--primary-color);
  font-size: .9rem;
  font-weight: var(--weight-strong);
  text-decoration: none;
}
.card-text-link:hover,
.community-text-link:hover,
.friend-text-link:hover { color: var(--primary-strong); text-decoration: underline; }

.community-card .community-card-btn.card-hidden-action,
.friend-card .friend-card-btn.card-hidden-action { display: none !important; }
.explore-friends-card .friend-card-btn,
.friend-card.is-explore .friend-card-btn,
.friend-card[data-card-type="explore"] .friend-card-btn {
  display: none !important;
}
.friend-card-body span { display: block; margin-bottom: .45rem; color: var(--text-muted); font-size: .86rem; }
.friend-card-body .nickname-text { margin-bottom: .45rem; }
.friend-card-body .friend-card-course { color: var(--text-muted); font-size: .9rem; }

.friend-request-card,
.request-card { min-height: 11rem; align-items: flex-start; }
.friend-request-form { display: grid; grid-template-columns: 1fr; gap: .65rem; width: 100%; min-width: 0; }
.friend-request-form .community-create-box-btn { width: 100% !important; min-height: 2.5rem; }
.requests-header-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.requests-mini-section { border-top-style: dashed; }
.request-actions { display: flex; flex-wrap: wrap; gap: .55rem; width: 100%; margin-top: auto; }
.request-actions .friend-card-btn,
.request-actions .cancel-request-btn { min-height: 2.375rem; padding: .5rem .9rem; }
.load-more-wrap,
.communities-grid > .api-empty-state,
.friends-grid > .api-empty-state,
.requests-grid > .api-empty-state { grid-column: 1 / -1; }
.load-more-wrap { text-align: center; }
.load-more-btn.compact { width: fit-content; margin-top: .5rem; padding: .45rem .9rem; }

/* =========================================================
   14. Página de comunidade
========================================================= */
.back-link { display: inline-block; margin-bottom: 1.125rem; color: var(--text-muted); font-size: .9rem; font-weight: var(--weight-strong); }
.back-link:hover { color: var(--primary-color); }

.community-page-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: clamp(1rem, 2vw, 1.45rem);
}

.community-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .625rem;
  margin-top: .55rem;
}
.community-page-meta span { color: var(--text-muted); font-size: .9rem; }

.community-main {
  display: grid;
  gap: var(--card-gap);
}

.community-main > .profile-api-card {
  border-width: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.community-main > .profile-api-card > .d-flex {
  padding: 0 0 .875rem;
  border-bottom: var(--hairline) solid var(--line-color);
}

.community-create-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  width: 100%;
  margin: 0 !important;
  padding: 1rem var(--page-pad) !important;
  border-width: 0 0 var(--hairline) !important;
  border-style: solid !important;
  border-color: var(--line-color) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  cursor: pointer;
}

.community-create-card:hover {
  background: var(--surface-hover) !important;
}

.community-create-card > .d-flex {
  width: 100%;
  align-items: center !important;
  gap: .8rem !important;
}

.community-create-card .user-avatar,
.community-create-card #post-input-avatar {
  display: none !important;
}

.community-create-card h2,
.community-create-card-title {
  margin: 0 0 .15rem !important;
  color: var(--text-color);
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  font-weight: var(--weight-strong);
  letter-spacing: -.025em;
  line-height: 1.25;
}

.community-create-card-subtitle {
  display: block;
  margin: 0;
  color: var(--text-muted);
  font-size: .93rem;
  line-height: 1.45;
}

.community-post-trigger {
  width: 100%;
  min-height: auto;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  text-align: left;
  box-shadow: none !important;
}

.community-post-trigger:hover,
.community-post-trigger:focus {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--text-color) !important;
}

.community-create-card .feed-create-card-btn,
.community-create-card .community-create-box-btn {
  justify-self: end;
}
.community-modal-textarea { min-height: 8.5rem; border: var(--hairline) solid var(--border-color) !important; border-radius: var(--radius-sm) !important; background: var(--surface-muted) !important; }

.community-posts-section {
  display: grid;
  gap: var(--card-gap);
  margin-top: var(--card-gap) !important;
}
.community-posts-section > h2,
.community-posts-section > h3,
.community-posts-title,
.community-section-title,
#community-posts-title {
  margin: 0;
  padding-bottom: .75rem;
  border-bottom: var(--hairline) solid var(--line-color);
  color: var(--text-color);
  font-size: clamp(1.02rem, 1.25vw, 1.16rem);
  font-weight: var(--weight-strong);
  letter-spacing: -.025em;
}

.community-feed-control {
  margin: 0 !important;
  padding: 0 0 .75rem !important;
  border-width: 0 0 var(--hairline) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.community-feed-control .feed-control-text h2 { margin: 0 !important; }

.community-side { min-width: 0; padding-top: .35rem; }
.community-side h2,
.community-side .side-card-header h2 { margin: 0 0 .65rem !important; }
#community-members-container,
#community-members-list,
.community-side-list { display: grid !important; gap: 0 !important; }

.community-side .member-item,
#community-members-container .member-item,
#community-members-list .member-item {
  gap: .82rem !important;
  padding: .82rem 0 !important;
  border-bottom: var(--hairline) solid var(--line-color) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.community-side .member-item:last-child,
#community-members-container .member-item:last-child,
#community-members-list .member-item:last-child { border-bottom: 0 !important; }
.member-item.member-creator { padding-inline: 0 !important; border-radius: 0 !important; background: transparent !important; }
.community-side .member-item:hover,
#community-members-container .member-item:hover,
#community-members-list .member-item:hover { background: color-mix(in srgb, var(--surface-hover) 70%, transparent) !important; }
.community-side .side-community-avatar,
.community-side .side-friend-avatar,
#community-members-container .side-community-avatar,
#community-members-container .side-friend-avatar,
#community-members-list .side-community-avatar,
#community-members-list .side-friend-avatar {
  width: 3.55rem !important;
  height: 3.55rem !important;
  min-width: 3.55rem !important;
  border-radius: var(--radius-pill) !important;
}

/* =========================================================
   15. Configurações, notificações, sobre e documentos
========================================================= */
.settings-layout { grid-template-columns: 1fr; }
.settings-card { color: var(--text-color); }
.settings-card p { margin-bottom: 1rem; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--section-gap); }
.settings-preview { margin-top: 1.125rem; padding: 1rem; border: var(--hairline) dashed var(--border-color); border-radius: var(--radius-md); background: var(--surface-muted); color: var(--text-muted); }
.settings-action-row { display: flex; flex-wrap: wrap; gap: .75rem; }
.empty-notification-card { min-height: 13.75rem; display: flex; flex-direction: column; justify-content: center; text-align: center; }

.about-project-card,
.about-resource-card { border-radius: var(--radius-xl); color: var(--text-color); }
.about-project-card { padding: clamp(1.25rem, 2.5vw, 2rem); }
.about-project-card h2 { max-width: 47.5rem; font-size: clamp(1.45rem, 2vw, 2rem); }
.about-project-card p,
.about-resource-card p { max-width: 61.25rem; margin: 0 0 .85rem; }
.about-dev-section { margin-top: 1.35rem; padding-top: 1.2rem; border-top: var(--hairline) solid var(--line-color); }
.about-dev-section h3 { margin: 0 0 .75rem; }
.about-dev-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  overflow: hidden;
  border: var(--hairline) solid var(--line-color);
  border-radius: var(--radius-lg);
  background: color-mix(in srgb, var(--surface-solid) 28%, transparent);
}
.about-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--section-gap); overflow: hidden; border: 0; border-radius: var(--radius-lg); background: transparent; }
.about-dev-item { display: flex; align-items: center; gap: .9rem; min-width: 0; min-height: 5.5rem; padding: 1rem; border-right: var(--hairline) solid var(--line-color); border-bottom: 0; color: var(--text-color); }
.about-dev-item:nth-child(4n),
.about-dev-item:last-child { border-right: 0; }
.about-dev-item:hover { background: var(--surface-hover); }
.about-dev-item strong,
.about-dev-item span,
.about-dev-item small { display: block; line-height: 1.35; }
.about-dev-item span,
.about-dev-item small { color: var(--text-muted); font-size: .86rem; }
.about-resource-card { display: flex; flex-direction: column; min-height: 100%; padding: 1.25rem; }
.about-resource-card p { flex: 1; }
.about-resource-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: auto; }
.about-resource-link.subtle { background: transparent !important; color: var(--text-muted) !important; border-color: var(--border-color) !important; }
.about-resource-link.subtle:hover { background: var(--surface-hover) !important; color: var(--primary-color) !important; }

.doc-page { min-height: 100vh; padding: 3rem 1rem; color: var(--text-color); }
.doc-shell { width: min(96%, 54rem); margin: 0 auto; }
.doc-card { width: 100%; padding: clamp(1.25rem, 3vw, 2.5rem); border-radius: var(--radius-xl); }
.doc-card h1 { margin-bottom: 1rem; }
.doc-card h2 { margin-top: 1.6rem; margin-bottom: .65rem; font-size: 1.15rem; }
.doc-card a,
.doc-back-link { color: var(--primary-color); font-weight: var(--weight-strong); }
.doc-back-link { display: inline-flex; margin-bottom: 1rem; }

/* =========================================================
   16. Classes preservadas pelo HTML/JS
========================================================= */
.profile-api-grid { display: grid; gap: 1rem; }
.profile-page-layout { align-items: start; }
.community-posts-section { margin-top: 0; }
.friend-community-card { min-height: 100%; }
.about-layout,
.settings-account-card { align-items: stretch; }

/* =========================================================
   17. Responsividade
========================================================= */
@media (max-width: 73.75rem) {
  .communities-grid,
  .friends-grid,
  .requests-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 62rem) {
  :root,
  html.theme-light,
  body.theme-light,
  html.theme-dark,
  body.theme-dark {
    --sidebar-width: 22%;
    --content-width: 78%;
    --avatar-profile: 128px;
    --avatar-community-page: 128px;
  }

  .feed-layout { grid-template-columns: var(--sidebar-width) minmax(0, var(--content-width)); }
  .desktop-sidebar { padding: 1.5rem .875rem; }
  .desktop-sidebar .sidebar-logo { width: 10.625rem; }

  .profile-layout,
  .community-page-layout { grid-template-columns: 1fr; gap: var(--section-gap) !important; }

  .community-side { padding-top: var(--section-gap); border-top: var(--hairline) solid var(--line-color); }

  .login-page .col-lg-6 { text-align: center !important; }
  .login-brand-logo { width: min(100%, 17rem) !important; max-width: 17rem !important; margin: 0 auto 1.4rem !important; }
  .login-page .display-5 { max-width: 100% !important; margin-inline: auto !important; text-align: center !important; font-size: clamp(1.9rem, 8vw, 2.45rem) !important; line-height: 1.05 !important; }
  .login-page .lead { max-width: 32rem !important; margin-inline: auto !important; text-align: center !important; font-size: 1rem !important; line-height: 1.55 !important; }
  .login-feature-list { grid-template-columns: 1fr; max-width: 32rem !important; margin-inline: auto !important; text-align: center !important; }
  .login-feature-item { border-right: 0; border-bottom: var(--hairline) solid var(--line-color); text-align: center !important; }
  .login-feature-item:last-child { border-bottom: 0; }

  .about-dev-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-dev-item { border-right: var(--hairline) solid var(--line-color); border-bottom: var(--hairline) solid var(--line-color); }
  .about-dev-item:nth-child(2n) { border-right: 0; }
  .about-dev-item:nth-last-child(-n + 2) { border-bottom: 0; }
}

@media (max-width: 48rem) {
  :root,
  html.theme-light,
  body.theme-light,
  html.theme-dark,
  body.theme-dark {
    --page-pad: 5%;
    --avatar-profile: 118px;
    --avatar-community-page: 92px;
    --avatar-card: 72px;
    --avatar-post: 44px;
    --avatar-sidebar: 44px;
  }

  body { padding-bottom: 4.5rem; }

  .feed-layout { display: block; }
  .desktop-sidebar { display: none; }
  .mobile-topbar { display: flex; }
  .mobile-offcanvas { display: block; }
  .feed-content,
  .communities-content,
  .friends-content,
  .community-page-content { min-height: auto; border-inline: 0; }

  .feed-hero,
  .feed-hero-actions { align-items: flex-start; flex-direction: column; }
  .notification-home-btn,
  .feed-hero-btn { width: 100%; justify-content: space-between; }

  .feed-create-card { grid-template-columns: 1fr; }
  .community-create-card { grid-template-columns: 1fr; }
  .feed-create-card-btn { width: 100%; }
  .feed-control-card { align-items: stretch; flex-direction: column; }
  .feed-tabs { width: 100%; }
  .feed-tab { flex: 1; }

  .feed-tab-content :is(.posts-list, #posts-container, #feed-posts-container, #general-posts-container, #friends-posts-container),
  .feed-content > :is(.posts-list, #posts-container, #feed-posts-container, #general-posts-container, #friends-posts-container) {
    padding: .9rem 5% 1.5rem !important;
  }

  .post-card,
  .profile-post-card,
  .profile-post-item,
  #posts-container > *,
  #feed-posts-container > *,
  #general-posts-container > *,
  #friends-posts-container > *,
  #profile-posts-container > *,
  #public-posts-container > *,
  #community-posts-container > *,
  #community-posts-list > * {
    padding: .9rem !important;
    border-radius: 1.05rem !important;
  }

  .comment-input-row,
  .reply-box,
  .comment-edit-inline,
  .comments-section .d-flex.gap-2 { align-items: stretch; flex-direction: column; }

  .profile-hero-card { padding: 1rem !important; }

  .profile-hero-layout {
    display: grid !important;
    grid-template-columns: 8rem minmax(0, 1fr) !important;
    grid-template-areas:
      "avatar kicker"
      "avatar name"
      "avatar nick"
      "avatar stats"
      "course course"
      "bio bio"
      "action action" !important;
    align-items: center !important;
    justify-items: start !important;
    column-gap: 1rem !important;
    row-gap: .22rem !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    text-align: left !important;
  }

  .profile-main-info {
    display: contents !important;
    padding-right: 0;
  }

  .profile-hero-layout > .profile-main-avatar,
  .profile-hero-layout > .profile-avatar,
  .profile-hero-layout > #profile-avatar,
  .profile-hero-layout > #public-avatar {
    grid-area: avatar !important;
    width: 8rem !important;
    height: 8rem !important;
    min-width: 8rem !important;
    align-self: center !important;
    justify-self: start !important;
  }

  .profile-main-info .feed-kicker {
    grid-area: kicker !important;
    margin: 0 !important;
    font-size: .7rem !important;
    line-height: 1.1 !important;
    text-align: left !important;
  }

  .profile-main-info h1 {
    grid-area: name !important;
    margin: 0 !important;
    font-size: 1.45rem !important;
    line-height: 1.05 !important;
    text-align: left !important;
  }

  #profile-nickname,
  #public-nickname,
  .profile-nickname,
  .nickname-badge {
    grid-area: nick !important;
    display: block !important;
    margin: 0 !important;
    font-size: .9rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
  }

  .profile-stat-row,
  .profile-stats {
    grid-area: stats !important;
    width: 100% !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    margin: .35rem 0 0 !important;
    gap: .45rem .9rem !important;
    text-align: left !important;
  }

  #profile-course,
  #public-course,
  .profile-course-text,
  .profile-course {
    grid-area: course !important;
    width: 100% !important;
    margin: .85rem 0 0 !important;
    text-align: left !important;
    font-size: .9rem !important;
    line-height: 1.45 !important;
  }

  #profile-bio,
  #public-bio,
  .profile-bio,
  .profile-bio-text {
    grid-area: bio !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: .35rem 0 .65rem !important;
    text-align: left !important;
    font-size: .9rem !important;
    line-height: 1.55 !important;
  }

  #openEditProfileBtn,
  #openEditPublicProfileBtn,
  .profile-hero-card .edit-profile-btn,
  .profile-hero-layout .edit-profile-btn,
  .profile-hero-card #edit-profile-btn,
  .profile-hero-card #editProfileBtn,
  .profile-hero-card button[id*="edit"],
  .profile-hero-card a[id*="edit"] {
    grid-area: action !important;
    justify-self: start !important;
    align-self: center !important;
    width: fit-content !important;
    min-width: 0 !important;
    margin: .25rem 0 0 !important;
  }

  .community-page-header { grid-template-columns: auto minmax(0, 1fr); }
  .community-page-header > .d-flex,
  .community-page-header .edit-profile-btn { grid-column: 1 / -1; width: 100%; }

  .communities-hero-content,
  .communities-grid,
  .friends-grid,
  .requests-grid,
  .settings-grid,
  .about-dev-list,
  .about-resource-grid { grid-template-columns: 1fr; }

  .communities-summary-card,
  .community-create-box,
  .community-create-card,
  .friend-request-card { align-items: flex-start; }

  .community-create-box,
  .friend-add-card { grid-template-columns: 1fr; }
  .community-create-box-btn,
  .friends-content .friend-add-card .community-create-box-btn { justify-self: start; width: fit-content !important; }
  .friend-request-form .community-create-box-btn { width: 100% !important; }

  .community-create-card > .d-flex { gap: .65rem !important; }
  .community-create-card .user-avatar,
  .community-create-card #post-input-avatar { width: 2.75rem !important; height: 2.75rem !important; min-width: 2.75rem !important; }

  .about-dev-item,
  .about-dev-item:nth-last-child(-n + 2) { border-right: 0; border-bottom: var(--hairline) solid var(--line-color); }
  .about-dev-item:last-child { border-bottom: 0; }

  .community-feed-control { align-items: stretch; flex-direction: column; }
  .community-feed-control .feed-tabs { width: 100%; }
  .community-feed-control .feed-tab { flex: 1; }

  #editBio,
  #editCommunityBio,
  #communityBio {
    height: 130px !important;
    min-height: 130px !important;
    max-height: 130px !important;
  }

  .cookie-banner { flex-direction: column; align-items: stretch; }

  .mobile-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1030;
    height: 4rem;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: center;
    border-top: var(--hairline) solid var(--line-color);
    background: var(--surface-color);
    backdrop-filter: blur(var(--glass-blur));
    -webkit-backdrop-filter: blur(var(--glass-blur));
  }

  .mobile-bottom-nav a {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .125rem;
    color: var(--text-muted);
    font-size: .68rem;
    font-weight: var(--weight-strong);
  }

  .mobile-bottom-nav svg {
    width: 1.4375rem;
    height: 1.4375rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .mobile-bottom-nav a.active,
  .mobile-bottom-nav a:hover { color: var(--primary-color); }

  .mobile-compose-fab {
    position: fixed;
    right: 1.125rem;
    bottom: 5.125rem;
    z-index: 1040;
    width: 3.375rem;
    height: 3.375rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

@media (max-width: 30rem) {
  :root,
  html.theme-light,
  body.theme-light,
  html.theme-dark,
  body.theme-dark {
    --avatar-post: 40px;
    --avatar-card: 64px;
    --avatar-side: 50px;
    --avatar-profile: 108px;
    --avatar-community-page: 72px;
  }

  .mobile-topbar { padding: .625rem .875rem; }
  .mobile-topbar-logo { width: 9.6875rem; }

  .profile-hero-layout {
    grid-template-columns: 6.8rem minmax(0, 1fr) !important;
    column-gap: .85rem !important;
  }

  .profile-hero-layout > .profile-main-avatar,
  .profile-hero-layout > .profile-avatar,
  .profile-hero-layout > #profile-avatar,
  .profile-hero-layout > #public-avatar {
    width: 6.8rem !important;
    height: 6.8rem !important;
    min-width: 6.8rem !important;
  }

  .profile-main-info h1 { font-size: 1.3rem !important; }

  #profile-nickname,
  #public-nickname,
  .profile-nickname,
  .nickname-badge { font-size: .84rem !important; }

  .profile-stat-row,
  .profile-stats { gap: .35rem .65rem !important; font-size: .84rem !important; }

  #profile-course,
  #public-course,
  .profile-course-text,
  .profile-course,
  #profile-bio,
  #public-bio,
  .profile-bio,
  .profile-bio-text { font-size: .86rem !important; }

  .post-card,
  .profile-post-card,
  .profile-post-item { gap: .68rem !important; }
  .post-text { font-size: .96rem; }
  .post-action-btn { font-size: .82rem; }

  .community-card,
  .friend-card { grid-template-columns: auto minmax(0, 1fr); gap: .75rem; padding: .875rem; min-height: auto; }
  .community-card-meta,
  .request-actions { margin-top: .65rem; }
  .request-actions { gap: .45rem; }
  .request-actions .friend-card-btn,
  .community-card-btn { min-width: 0; min-height: 2.25rem; padding: .48rem .8rem; }

  .community-post-trigger { min-height: 2.8rem; padding: .7rem .9rem !important; }
  .community-side .side-community-avatar,
  .community-side .side-friend-avatar,
  #community-members-container .side-community-avatar,
  #community-members-container .side-friend-avatar,
  #community-members-list .side-community-avatar,
  #community-members-list .side-friend-avatar { width: 3.1rem !important; height: 3.1rem !important; min-width: 3.1rem !important; }

  .login-container { padding: 1.35rem !important; border-radius: var(--radius-lg) !important; }
}

/* =========================================================
   18. Post Único 
========================================================= */
.single-post-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1rem var(--page-pad);
  position: sticky;
  top: 0;
  background: var(--surface-color);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  z-index: 10;
  border-bottom: var(--hairline) solid var(--line-color);
}

.back-btn {
  color: var(--text-color);
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  transition: background 0.2s;
  cursor: pointer;
}

.back-btn:hover {
  background: var(--surface-hover);
}

.single-post-view {
  padding: 1rem var(--page-pad);
  border-bottom: var(--hairline) solid var(--line-color);
}

.single-post-view .post-card {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
}

.reply-bar-container {
  position: fixed;
  bottom: 0;
  right: 0;
  width: var(--content-width); /* Respeita a largura ao lado da sidebar */
  background: var(--surface-color);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  border-top: var(--hairline) solid var(--line-color);
  padding: 0.75rem var(--page-pad);
  display: flex;
  align-items: center;
  gap: 1rem;
  z-index: 1040;
}

@media (max-width: 48rem) {
  .reply-bar-container {
    width: 100%;
    bottom: 4rem; /* Fica logo acima do menu mobile inferior */
  }
}

.reply-input-wrapper {
  flex: 1;
  display: flex;
  align-items: center;
}

.reply-input-wrapper input {
  width: 100%;
  background: transparent;
  border: none;
  color: var(--text-color);
  outline: none;
  font-size: 1rem;
}
/* =========================================================
   19. Comentários (Textos, Ícones e Cores)
========================================================= */
.tw-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 0.25rem;
  font-size: 0.95rem;
  line-height: 1.2;
}

.tw-author-name {
  font-weight: var(--weight-strong);
  color: var(--text-color);
  text-decoration: none;
  margin-right: 0.35rem;
}

.tw-author-name:hover {
  text-decoration: underline;
  color: var(--text-color);
}

.tw-username, .tw-date, .tw-dot, .tw-replying-to {
  color: var(--text-muted);
}

.tw-dot {
  margin: 0 0.25rem;
}

.tw-replying-to {
  font-size: 0.9rem;
  margin-bottom: 0.35rem;
}

.tw-replying-to a {
  color: var(--primary-color);
  text-decoration: none;
}

.tw-replying-to a:hover {
  text-decoration: underline;
}

.tw-text {
  color: var(--text-color);
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0 0 0.5rem;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.tw-actions {
  display: flex;
  justify-content: flex-start;
  gap: 3.5rem;
  margin-top: 0.5rem;
}

@media (max-width: 48rem) {
  .tw-actions {
    gap: 2rem;
  }
}

.tw-action-btn {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  background: transparent;
  border: none;
  color: var(--text-muted);
  font-size: 0.85rem;
  padding: 0;
  transition: color 0.2s;
  cursor: pointer;
}

.tw-icon-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  transition: background-color 0.2s, color 0.2s;
}

/* Efeitos Hover do Twitter */
.tw-action-btn:hover { color: var(--primary-color); }
.tw-action-btn.reply-btn:hover .tw-icon-circle { background: rgba(29, 155, 240, 0.1); color: rgb(29, 155, 240); }
.tw-action-btn.like-btn:hover .tw-icon-circle { background: rgba(249, 24, 128, 0.1); color: rgb(249, 24, 128); }
.tw-action-btn.edit-btn:hover .tw-icon-circle { background: rgba(0, 186, 124, 0.1); color: rgb(0, 186, 124); }
.tw-action-btn.delete-btn:hover .tw-icon-circle { background: rgba(244, 33, 46, 0.1); color: rgb(244, 33, 46); }

/* --- ESTILO DO BOTÃO DE CURTIR (TWITTER/X) --- */
:root {
  --tw-heart-color: rgb(224, 36, 94);
}

.like-btn, .comment-like-btn {
  display: inline-flex;
  align-items: center;
  color: var(--tw-light-gray);
  gap: 0.5rem;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color 0.1s;
}

.like-btn svg, .comment-like-btn svg {
  width: 1.15em;
  height: 1.15em;
}

.like-btn.liked, .comment-like-btn.liked, .tw-action-btn.like-btn.liked {
  color: var(--tw-heart-color) !important;
}

.like-btn.liked svg, .comment-like-btn.liked svg {
  fill: currentColor;
  stroke: none;
}

.like-btn:hover, .comment-like-btn:hover {
  color: var(--tw-heart-color);
}

.tw-reply-box {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

/* =========================================================
   20. Estilo de Thread (X/Twitter) c/ Linha Vertical
========================================================= */

/* Container da conversa com hover suave */
.tw-thread-container {
  display: flex;
  flex-direction: column;
  background: transparent;
  transition: background-color 0.2s;
  border-bottom: var(--hairline) solid var(--line-color);
}
.tw-thread-container:hover {
  background: var(--surface-hover);
}
.tw-thread-container:last-child {
  border-bottom: none;
}

/* Base do comentário: flexível e limpa */
.tw-comment-wrapper {
  display: flex;
  align-items: stretch;
  padding: 0; 
  background: transparent !important;
  border-bottom: none !important;
}

/* Coluna do Avatar e da Linha */
.tw-avatar-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 1rem;
  margin-left: var(--page-pad);
  margin-right: 0.85rem;
  width: 40px;
  flex-shrink: 0;
}

.tw-avatar-col .comment-avatar {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
}

/* Garante que o avatar fique na frente da linha */
.tw-avatar-link {
  z-index: 2;
}

/* A Linha Mágica do X */
.tw-thread-line {
  width: 2px;
  background-color: var(--line-color);
  flex-grow: 1; /* Cresce para preencher todo o comentário */
  margin-top: 0.25rem;
  margin-bottom: -1rem; /* Puxa a linha para dentro do padding do próximo comentário */
  z-index: 1;
}

/* Coluna do Texto do Comentário */
.tw-content-col {
  flex: 1;
  min-width: 0;
  padding-top: 1rem;
  padding-bottom: 0.5rem;
  padding-right: var(--page-pad);
}

/* Ajustes específicos para o preview apertadinho do Feed */
.inline-comments-wrapper .tw-thread-container:hover {
  background: transparent;
}
.inline-comments-wrapper .tw-avatar-col {
  padding-top: 0.65rem;
  width: 30px;
  margin-left: 0; /* Remove a margem extra no preview */
}
.inline-comments-wrapper .tw-avatar-col .comment-avatar {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
}
.inline-comments-wrapper .tw-content-col {
  padding-top: 0.65rem;
  padding-bottom: 0.2rem;
  padding-right: 0; /* Remove a margem extra no preview */
}
.inline-comments-wrapper .tw-thread-line {
  margin-bottom: -0.65rem;
}
/* =========================================================
   21. Utilitários de animação
========================================================= */
@keyframes spin-refresh {
  100% { transform: rotate(360deg); }
}

.spin-animation {
  animation: spin-refresh 1s linear infinite;
}


/* =========================================================
   22. Ajustes de posts, comentários e respostas
========================================================= */
.post-card-clickable {
  cursor: pointer;
}

.post-card-clickable :is(a, button, textarea, input) {
  cursor: auto;
}

.post-card .post-author,
.post-card .avatar-link,
.post-card .post-community-chip,
.post-card .post-full-link,
.post-card .post-action-btn {
  cursor: pointer;
}

.post-full-link {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: auto;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  font-size: .86rem;
  font-weight: var(--weight-strong);
  line-height: 1.2;
  text-align: left;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: color .15s ease;
}

.post-full-link:hover {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--primary-color) !important;
  text-decoration: none !important;
  transform: none !important;
}

.single-post-header {
  justify-content: space-between;
}

.single-post-title-row {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  min-width: 0;
}

.single-post-view .post-card {
  cursor: default;
}

.single-post-view .post-card:hover {
  border-color: transparent !important;
  background: transparent !important;
  transform: none !important;
}

.reply-bar-container {
  display: none !important;
}

.post-comments-empty {
  margin: 0;
  padding: 2.5rem var(--page-pad);
  border-top: var(--hairline) solid var(--line-color);
  color: var(--text-muted);
  text-align: center;
}

.post-comments-more {
  display: flex;
  justify-content: center;
  padding: 1rem var(--page-pad) 1.5rem;
  border-top: var(--hairline) solid var(--line-color);
}

#post-comments-list {
  border-top: var(--hairline) solid var(--line-color);
}

.tw-thread-container {
  display: flex;
  flex-direction: column;
  border-bottom: var(--hairline) solid var(--line-color);
  background: transparent !important;
  transition: background-color .18s ease;
}

.tw-thread-container:hover {
  background: transparent !important;
}

.tw-thread-container:last-child {
  border-bottom: 0;
}

.tw-comment-wrapper {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0 !important;
  background: transparent !important;
}

.tw-avatar-col {
  display: flex;
  flex: 0 0 2.75rem;
  flex-direction: column;
  align-items: center;
  width: 2.75rem;
  margin: 0 .85rem 0 var(--page-pad);
  padding-top: 1rem;
}

.tw-avatar-col .comment-avatar {
  width: 2.5rem !important;
  height: 2.5rem !important;
  min-width: 2.5rem !important;
}

.tw-avatar-link {
  position: relative;
  z-index: 2;
  display: inline-flex;
  color: inherit;
}

.tw-thread-line {
  width: .125rem;
  flex: 1 1 auto;
  margin-top: .35rem;
  background: var(--line-color);
}

.tw-content-col {
  flex: 1 1 auto;
  min-width: 0;
  padding: .95rem var(--page-pad) .8rem 0;
}

.tw-header {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: .22rem .36rem;
  margin-bottom: .2rem;
  line-height: 1.28;
}

.tw-author-name {
  color: var(--text-color) !important;
  font-size: .96rem;
  font-weight: var(--weight-strong);
  text-decoration: none !important;
}

.tw-author-name:hover,
.tw-username:hover,
.tw-reply-target:hover {
  color: var(--primary-color) !important;
  text-decoration: underline !important;
}

.tw-username,
.tw-date,
.tw-reply-arrow,
.tw-reply-target {
  color: var(--text-muted) !important;
  font-size: .9rem;
  font-weight: 500;
  text-decoration: none !important;
}

.tw-reply-arrow {
  margin-inline: .1rem;
}

.tw-reply-target {
  font-weight: var(--weight-strong);
}

.tw-text {
  margin: .2rem 0 .55rem;
  color: var(--text-soft);
  font-size: .98rem;
  line-height: 1.55;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.thread-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .9rem !important;
  margin-top: .1rem;
}

.thread-actions .post-action-btn,
.thread-text-action {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  min-height: 1.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  font-size: .88rem;
  font-weight: var(--weight-strong);
  line-height: 1.2;
  text-decoration: none;
  transition: color .18s ease, transform .18s ease;
}

.thread-actions .post-action-btn:hover,
.thread-text-action:hover {
  color: var(--primary-color);
  transform: translateY(-.04rem);
}

.thread-actions .post-action-btn svg {
  width: 1.05rem;
  height: 1.05rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.thread-actions .post-action-btn.liked svg,
.thread-actions .post-action-btn.text-primary-custom svg {
  fill: currentColor;
  stroke: none;
}

.thread-text-action.delete-action {
  color: var(--danger-color) !important;
}

.thread-text-action.delete-action:hover {
  color: #dc2626 !important;
}

.comment-edit-inline {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.tk-replies-actions {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 0 var(--page-pad) .95rem calc(var(--page-pad) + 3.6rem);
  margin: 0;
}

.tk-replies-line {
  display: inline-flex;
  width: 1.55rem;
  height: var(--hairline);
  background: var(--line-color);
}

.tk-replies-btn {
  border: 0;
  background: transparent;
  color: var(--text-muted);
  padding: 0;
  font-size: .86rem;
  font-weight: var(--weight-strong);
}

.tk-replies-btn:hover {
  color: var(--primary-color);
  text-decoration: underline;
}

#postInteractionModal .post-modal-content {
  background: var(--surface-color);
  border: var(--hairline) solid var(--border-color);
  box-shadow: 0 1.5rem 3.5rem var(--shadow-color);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

#postInteractionModal textarea {
  width: 100%;
  min-height: 9.375rem;
  border: 0;
  outline: 0;
  resize: none;
  background: transparent;
  color: var(--text-color);
  font-size: 1.05rem;
  line-height: 1.55;
}

#postInteractionModal textarea::placeholder {
  color: var(--text-muted);
}

@media (max-width: 48rem) {
  .single-post-title-row {
    gap: .75rem;
  }

  .tw-avatar-col {
    flex-basis: 2.45rem;
    width: 2.45rem;
    margin-left: var(--page-pad);
    margin-right: .7rem;
  }

  .tw-avatar-col .comment-avatar {
    width: 2.2rem !important;
    height: 2.2rem !important;
    min-width: 2.2rem !important;
  }

  .tw-content-col {
    padding-top: .85rem;
    padding-bottom: .7rem;
  }

  .tw-author-name {
    font-size: .92rem;
  }

  .tw-username,
  .tw-date,
  .tw-reply-arrow,
  .tw-reply-target,
  .thread-actions .post-action-btn,
  .thread-text-action {
    font-size: .82rem;
  }

  .tw-text {
    font-size: .94rem;
  }

  .thread-actions {
    gap: .7rem !important;
  }

  .comment-edit-inline {
    align-items: stretch;
    flex-direction: column;
  }

  .tk-replies-actions {
    padding-left: calc(var(--page-pad) + 3.1rem);
  }

  #postInteractionModal .modal-dialog {
    margin: .75rem;
  }
}

/* =========================================================
   23. Preview inline de comentários no card do post
========================================================= */
.post-card :is(a, a:hover, a:focus),
.tw-thread-container :is(a, a:hover, a:focus),
.inline-comments-wrapper :is(a, a:hover, a:focus) {
  text-decoration: none !important;
}

.tw-author-name:hover,
.tw-username:hover,
.tw-reply-target:hover {
  text-decoration: none !important;
}

.inline-comments-placeholder {
  display: none;
}

.inline-comments-placeholder.is-open {
  display: block;
}

.inline-comments-wrapper {
  margin-top: .75rem;
  padding: .55rem 0 0 .65rem;
  border-top: var(--hairline) solid var(--line-color);
}

.inline-comments-list {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.inline-comments-wrapper .tw-thread-container {
  border-bottom: var(--hairline) solid var(--line-color);
}

.inline-comments-wrapper .tw-thread-container:last-child {
  border-bottom: 0;
}

.inline-comments-wrapper .tw-avatar-col {
  flex-basis: 2.25rem;
  width: 2.25rem;
  margin-left: .25rem;
  margin-right: .7rem;
  padding-top: .75rem;
}

.inline-comments-wrapper .tw-avatar-col .comment-avatar {
  width: 1.9rem !important;
  height: 1.9rem !important;
  min-width: 1.9rem !important;
}

.inline-comments-wrapper .tw-content-col {
  padding: .72rem .35rem .55rem 0;
}

.inline-comments-wrapper .tw-thread-line {
  margin-top: .3rem;
}

.inline-comments-empty,
.inline-comments-loading {
  margin: 0;
  padding: .85rem 0 .75rem 2.95rem;
  color: var(--text-muted);
  font-size: .9rem;
  line-height: 1.45;
}

.inline-post-full-link {
  margin-top: .65rem;
}

.inline-post-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .75rem;
  width: 100%;
  padding: .55rem 0 .85rem;
  margin: 0;
  text-align: center;
}

.inline-post-actions .tk-replies-line {
  width: 1.55rem;
  height: var(--hairline);
  background: var(--line-color);
}

.inline-post-actions .inline-post-full-link,
.inline-post-actions .inline-close-btn {
  margin: 0;
}

.load-more-btn.compact {
  min-width: 0 !important;
  min-height: auto !important;
  width: fit-content !important;
  margin: .35rem auto 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  font-size: .86rem;
  font-weight: var(--weight-strong);
  line-height: 1.2;
  box-shadow: none !important;
  transform: none !important;
}

.load-more-btn.compact:hover {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--primary-color) !important;
  text-decoration: none !important;
  transform: none !important;
}

@media (max-width: 48rem) {
  .inline-comments-wrapper {
    padding-left: .35rem;
  }

  .inline-comments-wrapper .tw-avatar-col {
    flex-basis: 2rem;
    width: 2rem;
    margin-right: .58rem;
  }

  .inline-comments-empty,
  .inline-comments-loading {
    padding-left: 2.55rem;
  }
}


/* =========================================================
   24. Ajustes finais V1 — responsividade, headers e cache visual
========================================================= */
.date-short {
  display: none;
}

.post-header-main {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: .24rem;
  max-width: 100%;
  min-width: 0;
  vertical-align: top;
}

.post-header-main .post-author,
.post-header-main .post-username,
.post-header-main .post-date-link,
.post-header-main .post-edited-label,
.tw-header .tw-author-name,
.tw-header .tw-username,
.tw-header .tw-reply-target,
.tw-header .tw-date {
  min-width: 0;
}

.post-header-main .post-author,
.tw-header .tw-author-name {
  flex: 0 1 auto;
  max-width: 20ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.post-header-main .post-username,
.tw-header .tw-username,
.tw-header .tw-reply-target {
  flex: 1 1 auto;
  max-width: 18ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.post-header-main .post-date-link,
.post-header-main .post-edited-label,
.tw-header .tw-date,
.tw-header .tw-reply-arrow {
  flex: 0 0 auto;
  white-space: nowrap;
}

.inline-comments-wrapper .tk-replies-actions {
  display: none !important;
}

.inline-post-actions {
  justify-content: center !important;
  gap: .85rem !important;
  padding-inline: 0 !important;
}

.inline-post-actions .inline-post-full-link,
.inline-post-actions .inline-close-btn {
  flex: 0 0 auto;
}

#profile-posts-container > .profile-posts-footer,
#public-posts-container > .profile-posts-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: auto !important;
  margin: .25rem 0 0 !important;
  padding: .25rem 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
}

#profile-posts-container > .profile-posts-footer:hover,
#public-posts-container > .profile-posts-footer:hover {
  border: 0 !important;
  background: transparent !important;
  transform: none !important;
}

#profile-posts-container > .profile-posts-footer .load-more-btn,
#public-posts-container > .profile-posts-footer .load-more-btn {
  min-width: 0 !important;
  min-height: auto !important;
  width: fit-content !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  box-shadow: none !important;
}

#profile-posts-container > .profile-posts-footer .load-more-btn:hover,
#public-posts-container > .profile-posts-footer .load-more-btn:hover {
  color: var(--primary-color) !important;
  text-decoration: none !important;
}

@media (max-width: 48rem) {
  .post-card,
  .profile-post-card,
  .profile-post-item,
  #posts-container > *,
  #feed-posts-container > *,
  #general-posts-container > *,
  #friends-posts-container > *,
  #profile-posts-container > *,
  #public-posts-container > *,
  #community-posts-container > *,
  #community-posts-list > * {
    gap: .65rem !important;
    padding: .78rem !important;
  }

  .post-card .avatar-link,
  .profile-post-item .avatar-link {
    flex: 0 0 auto;
  }

  .post-card .user-avatar,
  .profile-post-item .user-avatar {
    width: 2.35rem !important;
    height: 2.35rem !important;
    min-width: 2.35rem !important;
  }

  .post-body {
    min-width: 0 !important;
  }

  .post-header,
  .comment-header {
    min-width: 0;
    max-width: 100%;
  }

  .post-header-main {
    width: 100%;
    gap: .18rem;
  }

  .post-header-main .post-author {
    max-width: min(20ch, 42vw);
  }

  .post-header-main .post-username {
    max-width: min(18ch, 22vw);
  }

  .date-full {
    display: none !important;
  }

  .date-short {
    display: inline !important;
  }

  .tw-header {
    flex-wrap: nowrap !important;
    max-width: 100%;
    min-width: 0;
    gap: .16rem .26rem;
  }

  .tw-header .tw-author-name {
    max-width: min(20ch, 38vw);
  }

  .tw-header .tw-username,
  .tw-header .tw-reply-target {
    max-width: min(18ch, 24vw);
  }

  .inline-post-actions {
    gap: .7rem !important;
    padding: .5rem 0 .7rem !important;
  }
}
