/* =========================================================
   PORTUGAL PARANORMAL — folha de estilos partilhada
   Carregada uma vez no <head> de todas as páginas.
   Antes, cada página tinha o seu próprio <style> no fim do
   ficheiro — se um erro de PHP acontecesse a meio da página,
   esse <style> nunca chegava a ser enviado ao browser e o
   site parecia "sem design nenhum". Agora o CSS chega sempre
   primeiro, antes de qualquer erro poder impedir o resto.
   ========================================================= */

:root{
  --bg:#FAFAFA; --surface:#FFFFFF; --border:#EFEFEF;
  --text:#1F2937; --text-muted:#6B7280; --text-faint:#9CA3AF;
  --orange:#FF6A00; --orange-tint:#FFF1E6;
  --purple:#6D28D9; --purple-tint:#F3EEFF;
  --navy:#1E3A8A;  --navy-tint:#EAF0FC;
  --radius-lg:20px; --radius-md:14px; --radius-sm:8px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:'Inter',-apple-system,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img,svg{ display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
.mono{ font-family:'IBM Plex Mono', monospace; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }

/* ---------- HEADER / FOOTER ---------- */
header{ position:sticky; top:0; z-index:50; background:rgba(250,250,250,0.85); backdrop-filter:blur(10px);
  border-bottom:3px solid; border-image:linear-gradient(90deg, var(--orange), var(--purple), var(--navy)) 1; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:32px; height:72px; }
.logo{ display:flex; align-items:center; gap:10px; font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem; white-space:nowrap; flex-shrink:0; }
.logo-mark{ width:28px; height:28px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.logo-mark img{ width:100%; height:100%; object-fit:contain; display:block; }
nav.primary-nav{ display:flex; gap:22px; font-size:0.9rem; font-weight:500; color:var(--text-muted); flex:1; overflow-x:auto; min-width:0; }
nav.primary-nav a{ white-space:nowrap; }
nav.primary-nav a:hover, nav.primary-nav a.active{ color:var(--text); }
.header-actions{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.icon-btn{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--text-muted); }
.icon-btn:hover{ background:var(--border); color:var(--text); }
.header-avatar-link{ display:none; }

footer{ border-top:3px solid; border-image:linear-gradient(90deg, var(--navy), var(--purple), var(--orange)) 1; padding:40px 0 28px; margin-top:20px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; margin-bottom:28px; }
.footer-brand p{ color:var(--text-muted); font-size:0.85rem; line-height:1.6; max-width:260px; margin:14px 0 0; }
.footer-col h5{ font-size:0.75rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--text-faint); margin:0 0 12px; }
.footer-col a{ display:block; font-size:0.85rem; color:var(--text-muted); margin-bottom:9px; }
.footer-col a:hover{ color:var(--text); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:20px; border-top:1px solid var(--border); font-size:0.75rem; color:var(--text-faint); flex-wrap:wrap; gap:12px; }
.footer-mini{ display:none; justify-content:center; gap:24px; padding:16px 0 4px; font-size:0.85rem; font-weight:700; }
.footer-mini a:nth-child(1){ color:var(--navy); }
.footer-mini a:nth-child(2){ color:var(--purple); }
.footer-mini a:nth-child(3){ color:var(--orange); }

/* ---------- BOTÕES / PEÇAS PARTILHADAS ---------- */
.btn{ padding:9px 18px; border-radius:100px; font-size:0.9rem; font-weight:600; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.btn-ghost{ color:var(--text); } .btn-ghost:hover{ background:var(--border); }
.btn-solid{ background:var(--orange); color:#fff; box-shadow:0 1px 2px rgba(255,106,0,0.25); }
.btn-solid:hover{ background:#e65f00; }

.back-link{ display:inline-block; font-size:0.85rem; color:var(--text-muted); font-weight:600; margin-bottom:18px; }
.back-link:hover{ color:var(--text); }

section{ padding:48px 0; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; gap:20px; flex-wrap:wrap; }
.section-head h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.6rem; margin:0 0 6px; }
.section-head p{ color:var(--text-muted); font-size:0.9rem; margin:0; }
.section-link{ font-size:0.85rem; font-weight:600; color:var(--navy); white-space:nowrap; display:flex; align-items:center; gap:4px; }
.section-head > div:first-child{ border-left:3px solid var(--border); padding-left:16px; }
.section-more{ display:flex; justify-content:center; margin-top:24px; }

.empty-state{ background:var(--surface); border:1.5px dashed var(--border); border-radius:var(--radius-lg); padding:36px 24px; text-align:center; }
.empty-state p{ color:var(--text-muted); font-size:0.9rem; margin:0 0 16px; }

.avatar{ width:26px; height:26px; border-radius:50%; background:var(--navy-tint); display:flex; align-items:center; justify-content:center;
  font-size:0.68rem; font-weight:700; color:var(--navy); overflow:hidden; flex-shrink:0; }
.avatar-img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }
.avatar-big{ width:64px; height:64px; font-size:1.3rem; }
.avatar-mid{ width:56px; height:56px; font-size:1.1rem; }

.pill{ font-size:0.68rem; font-weight:700; letter-spacing:0.03em; padding:4px 10px; border-radius:100px; text-transform:uppercase; }
.pill-orange{ background:var(--orange-tint); color:#B84A00; }
.pill-purple{ background:var(--purple-tint); color:var(--purple); }
.pill-navy{ background:var(--navy-tint); color:var(--navy); }

.case-author{ display:flex; align-items:center; gap:8px; font-size:0.8rem; font-weight:600; color:var(--text); }

/* ---------- HERO (homepage) ---------- */
.hero{ padding:28px 24px 48px; text-align:center;
  background: radial-gradient(ellipse 700px 400px at 20% 0%, rgba(255,106,0,0.08), transparent 60%),
              radial-gradient(ellipse 700px 400px at 80% 20%, rgba(109,40,217,0.07), transparent 60%);
  border-radius:0 0 32px 32px;
  width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.eyebrow{ display:inline-flex; align-items:center; gap:8px; background:var(--purple-tint); color:var(--purple); font-size:0.8rem; font-weight:600; padding:6px 14px; border-radius:100px; margin-bottom:20px; }
.eyebrow .dot{ width:6px; height:6px; border-radius:50%; background:var(--purple); }
h1{ font-family:'Fraunces', serif; font-weight:600; font-size:clamp(2rem, 5vw, 3.2rem); line-height:1.12; letter-spacing:-0.01em; margin:0 auto 18px; max-width:760px; }
h1 em{ font-style:italic; background:linear-gradient(100deg, var(--orange), var(--purple)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-sub{ color:var(--text-muted); font-size:1.02rem; max-width:540px; margin:0 auto 30px; line-height:1.6; }
.search-bar{ max-width:600px; margin:0 auto 34px; background:var(--surface); border:1.5px solid rgba(255,106,0,0.25); border-radius:100px; display:flex; align-items:center; padding:6px 6px 6px 22px; box-shadow:0 2px 10px rgba(31,41,55,0.05); }
.search-bar input{ border:none; outline:none; background:none; flex:1; min-width:0; font-size:0.95rem; font-family:inherit; color:var(--text); padding:10px 0; }
.search-bar button{ background:var(--text); color:#fff; padding:11px 22px; border-radius:100px; font-size:0.875rem; font-weight:600; flex-shrink:0; }
.stats-row{ display:flex; justify-content:center; gap:0; flex-wrap:wrap; }
.stat{ padding:0 26px; border-right:1px solid var(--border); }
.stat:last-child{ border-right:none; }
.stat-num{ font-family:'Fraunces', serif; font-weight:600; font-size:1.5rem; }
.stat-label{ font-size:0.75rem; color:var(--text-faint); margin-top:2px; }

.online-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border); border-radius:100px; padding:8px 16px; font-size:0.82rem; font-weight:600; color:var(--text); margin-bottom:24px; }
.online-badge:hover{ border-color:var(--purple); }
.online-dot{ width:8px; height:8px; border-radius:50%; background:#22C55E; box-shadow:0 0 0 rgba(34,197,94,0.5); animation:online-pulse 2s infinite; }
@keyframes online-pulse{
  0%   { box-shadow:0 0 0 0 rgba(34,197,94,0.5); }
  70%  { box-shadow:0 0 0 6px rgba(34,197,94,0); }
  100% { box-shadow:0 0 0 0 rgba(34,197,94,0); }
}

/* ---------- CATEGORIAS ---------- */
.cat-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
.cat-card{ background:var(--surface); border:1.5px solid var(--border); border-top:4px solid var(--border); border-radius:var(--radius-md); padding:20px; transition:transform .15s ease, box-shadow .15s ease; display:block; }
.cat-card:hover{ transform:translateY(-3px); box-shadow:0 8px 20px rgba(31,41,55,0.06); }
.cat-icon{ width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.cat-card h3{ font-size:0.95rem; font-weight:700; margin:0 0 4px; color:var(--text); }
.cat-card p{ font-size:0.8rem; color:var(--text-muted); margin:0 0 10px; line-height:1.5; }
.cat-count{ font-size:0.72rem; color:var(--text-faint); font-weight:600; }

.cat-header{ background:var(--surface); border:1.5px solid var(--border); border-top:4px solid; border-radius:var(--radius-lg);
  padding:28px; margin:32px 0 20px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.cat-header h1{ font-family:'Fraunces', serif; font-weight:600; font-size:1.6rem; margin:0 0 6px; }
.cat-header p{ color:var(--text-muted); font-size:0.9rem; margin:0; max-width:480px; }

.distrito-filter{ margin-bottom:8px; }
.distrito-filter label{ font-size:0.82rem; font-weight:600; color:var(--text); display:flex; flex-direction:column; gap:6px; max-width:260px; }
.distrito-filter select{ font-family:inherit; font-size:0.88rem; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface); }
.map-note{ display:flex; align-items:center; gap:8px; color:var(--text-muted); font-size:0.85rem; background:var(--navy-tint); padding:12px 16px; border-radius:var(--radius-sm); margin:12px 0 24px; }

.pagination{ display:flex; gap:8px; justify-content:center; margin-top:28px; }
.pagination a{ width:36px; height:36px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border); border-radius:var(--radius-sm); font-size:0.85rem; font-weight:600; }
.pagination a.active{ background:var(--orange); color:#fff; border-color:var(--orange); }

/* ---------- FICHAS DE CASO (relatos) ---------- */
.case-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.case-card{ background:var(--surface); border:1.5px solid var(--border); border-left:4px solid var(--border); border-radius:var(--radius-lg); padding:22px; display:flex; flex-direction:column; gap:12px; }
.case-top{ display:flex; justify-content:space-between; align-items:center; }
.case-id{ font-size:0.72rem; color:var(--text-faint); }
.case-card h3{ font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem; margin:0; line-height:1.3; color:var(--text); }
.case-loc{ font-size:0.8rem; color:var(--text-muted); display:flex; align-items:center; gap:6px; }
.case-snippet{ font-size:0.86rem; color:var(--text-muted); line-height:1.6; margin:0; }
.case-foot{ display:flex; justify-content:space-between; align-items:center; padding-top:12px; border-top:1px solid var(--border); }
.case-meta{ display:flex; gap:14px; color:var(--text-faint); font-size:0.76rem; }
.case-meta span{ display:flex; align-items:center; gap:4px; }

/* ---------- SONHOS (widget da homepage) ---------- */
.sonhos-box{ background:var(--surface); border:1.5px solid rgba(109,40,217,0.22); border-radius:var(--radius-lg); padding:36px; display:flex; align-items:center; gap:36px; }
.cat-cta{ padding:8px 0 48px; }
.cat-cta-inner{ background:linear-gradient(120deg, var(--orange), var(--purple)); border-radius:var(--radius-lg); padding:44px 24px; text-align:center; color:#fff; }
.cat-cta-inner h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.5rem; margin:0 0 10px; color:#fff; }
.cat-cta-inner p{ font-size:0.95rem; opacity:0.92; max-width:480px; margin:0 auto 22px; line-height:1.6; }
.cat-cta-btn{ background:#fff; color:var(--purple); font-weight:700; padding:13px 28px; }
.cat-cta-btn:hover{ background:#fff; opacity:0.92; }
.sonhos-left{ flex:1; text-align:center; }
.sonhos-left h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.5rem; margin:0 0 8px; }
.sonhos-left p{ color:var(--text-muted); font-size:0.9rem; line-height:1.6; margin:0 auto 18px; max-width:420px; }
.sonhos-input-row{ display:flex; flex-direction:column; align-items:center; gap:12px; max-width:440px; margin:0 auto; }
.sonhos-input-row input{ width:100%; border:1px solid var(--border); border-radius:100px; padding:12px 18px; font-family:inherit; font-size:0.9rem; outline:none; }
.sonhos-input-row input:focus{ border-color:var(--purple); }
.sonhos-input-row button{ background:var(--purple); color:#fff; padding:12px 22px; border-radius:100px; font-weight:600; font-size:0.875rem; flex-shrink:0; }
.sonhos-right{ width:210px; flex-shrink:0; background:var(--purple-tint); border-radius:var(--radius-md); padding:20px; text-align:center; }
.sonhos-right .big-icon{ width:48px; height:48px; margin:0 auto 12px; background:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.sonhos-right strong{ font-size:0.82rem; display:block; margin-bottom:4px; }
.sonhos-right span{ font-size:0.74rem; color:var(--purple); font-weight:600; }

/* ---------- PÁGINA DE RELATO ---------- */
.post-detail{ padding:32px 0 60px; max-width:760px; margin:0 auto; }
.post-card{ background:var(--surface); border:1.5px solid var(--border); border-left:4px solid var(--border); border-radius:var(--radius-lg); padding:28px; }
.post-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.post-card h1{ font-family:'Fraunces', serif; font-weight:600; font-size:1.7rem; margin:0 0 14px; line-height:1.25; }
.post-meta{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; font-size:0.82rem; color:var(--text-faint); margin-bottom:20px; padding-bottom:18px; border-bottom:1px solid var(--border); }
.post-loc{ display:flex; align-items:center; gap:5px; }
.post-body{ font-size:0.98rem; line-height:1.75; color:var(--text); white-space:pre-line; }
.post-actions{ margin-top:24px; padding-top:20px; border-top:1px solid var(--border); }
.vote-btn{ padding:10px 18px; }

.replies-section{ margin-top:36px; }
.replies-section h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.25rem; margin:0 0 18px; }
.no-replies{ color:var(--text-muted); font-size:0.88rem; margin-bottom:20px; }
.reply-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:12px; }
.reply-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:0.78rem; color:var(--text-faint); }
.reply-card p{ margin:0; font-size:0.9rem; line-height:1.6; color:var(--text); }
.reply-form{ margin-top:20px; display:flex; flex-direction:column; gap:12px; }
.reply-form textarea{ font-family:inherit; font-size:0.9rem; padding:12px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); outline:none; resize:vertical; }
.reply-form textarea:focus{ border-color:var(--purple); }
.reply-form button{ align-self:flex-end; padding:10px 22px; }
.login-prompt{ font-size:0.88rem; color:var(--text-muted); margin-top:16px; }
.login-prompt a{ color:var(--purple); font-weight:600; }

/* ---------- PERFIL ---------- */
.profile-section{ padding:24px 0 60px; }
.profile-head{ display:flex; align-items:center; gap:18px; margin-bottom:20px; }
.profile-head h1{ font-family:'Fraunces', serif; font-weight:600; font-size:1.5rem; margin:0; }
.profile-since{ color:var(--text-muted); font-size:0.85rem; margin:2px 0 0; }

.profile-msg{ background:var(--navy-tint); color:var(--navy); font-size:0.82rem; padding:9px 12px; border-radius:var(--radius-sm); margin-bottom:16px; }
.profile-error{ background:var(--orange-tint); color:#B84A00; font-size:0.82rem; padding:9px 12px; border-radius:var(--radius-sm); margin-bottom:16px; display:flex; flex-direction:column; gap:4px; }

.profile-stats{ display:flex; gap:0; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); padding:20px 0; margin-bottom:32px; }
.profile-stats .stat{ flex:1; text-align:center; border-right:1px solid var(--border); }
.profile-stats .stat:last-child{ border-right:none; }
.profile-stats .stat-num{ font-size:1.4rem; font-weight:700; }
.profile-stats .stat-label{ font-size:0.7rem; color:var(--text-faint); margin-top:2px; }

.profile-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }
.profile-col h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.15rem; margin:0 0 16px; }

.my-post-card{ display:block; background:var(--surface); border:1.5px solid var(--border); border-left:4px solid var(--border); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:12px; }
.my-post-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.my-post-card h3{ font-family:'Fraunces', serif; font-weight:600; font-size:0.98rem; margin:0 0 8px; color:var(--text); }
.my-post-meta{ display:flex; gap:12px; font-size:0.74rem; color:var(--text-faint); flex-wrap:wrap; }

.password-card{ background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); padding:24px; }
.password-card form{ display:flex; flex-direction:column; gap:14px; }
.password-card label{ font-size:0.8rem; font-weight:600; color:var(--text); display:flex; flex-direction:column; gap:6px; }
.password-card input[type="password"],
.password-card input[type="file"]{ font-family:inherit; font-size:0.85rem; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); outline:none; }
.password-card input:focus{ border-color:var(--purple); }

.avatar-preview-row{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.avatar-hint{ font-size:0.76rem; color:var(--text-faint); line-height:1.4; }

/* ---------- ADMIN ---------- */
.admin-section{ padding:32px 0 60px; }
.admin-section h1{ font-family:'Fraunces', serif; font-weight:600; font-size:1.6rem; margin:0 0 20px; }
.admin-msg{ background:var(--navy-tint); color:var(--navy); font-size:0.85rem; padding:10px 14px; border-radius:var(--radius-sm); margin-bottom:20px; }
.admin-block{ background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius-lg); padding:24px; margin-bottom:20px; }
.admin-block h2{ font-family:'Fraunces', serif; font-weight:600; font-size:1.1rem; margin:0 0 16px; }
.admin-empty{ color:var(--text-muted); font-size:0.88rem; }
.admin-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.admin-row:last-child{ border-bottom:none; }
.admin-case{ font-size:0.72rem; color:var(--text-faint); flex-shrink:0; width:90px; }
.admin-title{ flex:1; font-size:0.88rem; font-weight:600; min-width:180px; }
.admin-cat{ font-weight:400; color:var(--text-faint); }
.admin-row select{ font-family:inherit; font-size:0.85rem; padding:8px 10px; border:1px solid var(--border); border-radius:var(--radius-sm); }

/* ---------- MAPA ---------- */
.map-page{ padding:32px 0 16px; }
.map-hint{ font-size:0.82rem; color:var(--text-faint); margin:0 0 14px; }
#pp-map{ height:560px; border-radius:var(--radius-lg); border:1.5px solid var(--border); overflow:hidden; }
.pp-popup{ font-family:'Inter', sans-serif; min-width:180px; }
.pp-popup .case-id{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.7rem; color:var(--text-faint); margin-bottom:4px; }
.pp-popup h4{ margin:0 0 4px; font-family:'Fraunces', serif; font-size:0.95rem; color:var(--text); }
.pp-popup .pp-loc{ display:block; font-size:0.8rem; color:var(--text-muted); margin-bottom:6px; }
.pp-popup a{ color:var(--purple); font-weight:600; font-size:0.82rem; }

/* ---------- MENU-GRELHA (mobile) ---------- */
.menu-toggle{ display:none; width:38px; height:38px; border-radius:50%; align-items:center; justify-content:center; flex-shrink:0; }
.menu-toggle:hover{ background:var(--border); }
.menu-toggle-grid{ display:grid; grid-template-columns:repeat(3, 4px); grid-template-rows:repeat(3, 4px); gap:3px; }
.menu-toggle-grid i{ width:4px; height:4px; border-radius:1px; background:var(--text); display:block; font-style:normal; }

.menu-panel{ display:none; position:fixed; top:73px; left:0; right:0; bottom:0; background:var(--bg); z-index:49; overflow-y:auto; padding:20px 0 40px; }
.menu-panel.open{ display:block; }
.gm-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.gm-item{ display:flex; flex-direction:column; align-items:center; gap:8px; background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius-md); padding:18px 6px; text-align:center; font-size:0.76rem; font-weight:600; color:var(--text); }
.gm-auth{ display:flex; flex-direction:column; gap:14px; max-width:320px; margin:20px auto 0; }
.gm-auth-btn{ justify-content:center; padding:14px; font-size:1rem; }
.gm-ic{ width:42px; height:42px; border-radius:12px; display:flex; align-items:center; justify-content:center; }
.gm-ic svg{ width:20px; height:20px; }

/* ---------- BARRA FIXA MOBILE ---------- */
.mobile-tabbar{ display:none; }
@media (max-width: 900px){
  .mobile-tabbar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--surface); border-top:1px solid var(--border);
    padding:8px 4px calc(8px + env(safe-area-inset-bottom));
  }
  .tab-item{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; font-size:0.66rem; font-weight:600; color:var(--text-faint); }
  .tab-item svg{ width:23px; height:23px; }
  .tab-inicio{ color:var(--orange); }
  .tab-pesquisa{ color:var(--navy); }
  .tab-favoritos{ color:#DC2626; }
  .tab-perfil{ color:var(--text-faint); }
  .tab-plus{ position:relative; top:-14px; }
  .tab-plus-circle{ width:44px; height:44px; border-radius:50%; background:linear-gradient(135deg, var(--orange), var(--purple)); display:flex; align-items:center; justify-content:center; box-shadow:0 3px 10px rgba(255,106,0,0.35); }
  .tab-plus-circle svg{ width:22px; height:22px; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px){
  nav.primary-nav{ display:none; }
  .search-btn{ display:none; }
  .header-auth-link{ display:none; }
  .header-username-link{ display:none; }
  .header-logout-link{ display:none; }
  .header-avatar-link{ display:flex; align-items:center; }
  .menu-toggle{ display:flex; }
  footer{ padding:10px 0 14px; margin-top:0; border-top:none; }
  .footer-grid{ display:none; }
  .footer-bottom{ display:none; }
  .footer-mini{ display:flex; }
  .cat-grid{ grid-template-columns:repeat(2, 1fr); }
  .case-grid{ grid-template-columns:1fr; }
  .sonhos-box{ flex-direction:column; }
  .sonhos-right{ width:100%; }
  body{ padding-bottom:76px; }
  .header-actions .btn-ghost{ border:1.5px solid var(--border); }
  .search-bar{ display:none; }
  .cat-desc{ display:none; }
  .case-snippet{ display:none; }
  body.auth-page{ display:flex; flex-direction:column; min-height:100dvh; padding-bottom:0; }
  body.auth-page header{ flex-shrink:0; }
  body.auth-page .mobile-tabbar{ display:none; }
  body.auth-page main.wrap{ flex:1; display:flex; }
  body.auth-page footer{ flex-shrink:0; }
}
@media (max-width: 480px){
  .logo-text{
    font-size:1.05rem;
    background:linear-gradient(100deg, var(--orange), var(--purple), var(--navy));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .header-inner{ gap:8px; }
  .btn{ padding:7px 10px; font-size:0.78rem; }
  .header-actions .btn{ padding:8px 14px; font-size:0.8rem; border-radius:100px; }
  .header-actions{ gap:8px; }
}
@media (max-width: 800px){
  .profile-grid{ grid-template-columns:1fr; }
}
