:root{
  --hero-overlay-light-from: rgba(255,255,255,.70);
  --hero-overlay-light-to:   rgba(255,255,255,.80);
  --hero-overlay-dark-from:  rgba(15,23,42,.78);
  --hero-overlay-dark-to:    rgba(15,23,42,.85);
  --card-border-light:#d4dde5;
  --card-border-dark:#3a4a5a;
  --card-type-border-w:1.25px;
}

html,body{font-family:'Inter',sans-serif;}
/* Cor original light: #f8fafc */
body{background:#374151;color:#1e293b;min-height:100vh;overflow-x:hidden;}
.hero-bg-layer{
  position:fixed;inset:0;z-index:-1;
  /* Original: linear-gradient(var(--hero-overlay-light-from),var(--hero-overlay-light-to)), linear-gradient(135deg,#f1f5f9,#e2e8f0); */
  background:
    linear-gradient(rgba(55,65,81,.85),rgba(31,41,55,.90)),
    linear-gradient(135deg,#1f2937,#111827);
  opacity:.30;filter:brightness(1.02) saturate(1.05);pointer-events:none;
  transition:background-image .6s ease, opacity .4s;
}
.hero-bg-layer.bg-loaded{opacity:.38;}
@media (prefers-color-scheme: dark){
  body{background:#0f172a;color:#e2e8f0;}
  .hero-bg-layer{
    background:
      linear-gradient(var(--hero-overlay-dark-from),var(--hero-overlay-dark-to)),
      linear-gradient(135deg,#1e293b,#0f172a);
    opacity:.75;
  }
  .hero-bg-layer.bg-loaded{opacity:.82;}
}

.brand-heading{
  font-size:clamp(2.6rem,5.8vw,4rem);font-weight:800;line-height:1;
  background:linear-gradient(120deg,#16a34a,#22c55e,#34d399,#16a34a);
  background-size:170% 170%;-webkit-background-clip:text;color:transparent;
  animation:brandShift 8s ease-in-out infinite;letter-spacing:-1px;
  text-shadow: 0px 1px 0px #cce3d8, 0px 2px 0px #a4c9b3, 0px 3px 0px #7ba08e, 4px 4px 8px rgba(0,0,0,0.1);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  cursor: pointer;
  perspective: 800px;
}
.brand-heading:hover {transform: rotateX(10deg) rotateY(-5deg) scale(1.05);}
@media (prefers-color-scheme: dark) {
  .brand-heading {
    text-shadow: 0px 1px 0px #0c3b24, 0px 2px 0px #082918, 0px 3px 0px #04170d, 4px 4px 8px rgba(0,0,0,0.3);
  }
}
@keyframes brandShift{
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}

.event-reminder-banner {
  background: linear-gradient(135deg, #1e3a8a, #3b82f6);
  color: white;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  animation: fadeInDown 0.5s ease-out;
}
.event-reminder-banner p { font-size: 0.8rem; }
.event-reminder-banner .actions { display: flex; gap: 0.5rem; }
.event-reminder-banner button {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s;
}
.event-reminder-banner button:hover { background: rgba(255, 255, 255, 0.2); }
@keyframes fadeInDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

.accordion-item{background:rgba(255,255,255,.93);border:1px solid #e2e8f0;border-radius:1.15rem;position:relative;overflow:visible;}
@media (prefers-color-scheme: dark){.accordion-item{background:rgba(30,41,59,.82);border-color:#334155;}}

.accordion-header{
  display:flex;flex-direction:column;
  background:linear-gradient(90deg,rgba(34,197,94,.08),transparent);
  border:none;padding:0;border-radius:1.15rem 1.15rem 0 0;
  font-size:1.05rem;font-weight:600;color:#134e33;cursor:pointer;
  overflow:visible;position:relative;z-index:10;
}
.accordion-header:has(.filter-group.open),.accordion-header.menu-open{z-index:9999;}
.accordion-header.active{background:linear-gradient(90deg,rgba(34,197,94,.15),transparent);border-radius:1.15rem 1.15rem 0 0;}

.accordion-header-top{
  display:flex;justify-content:space-between;align-items:center;
  padding:1rem 1.35rem;
  cursor:pointer;width:100%;
  background:transparent;border:none;outline:none;text-align:left;
  appearance:none;-webkit-appearance:none;
  font:inherit;color:inherit;
}
.accordion-header-top:focus-visible{
  outline:2px solid rgba(34,197,94,.7);
  outline-offset:4px;
  border-radius:1rem;
}

.accordion-content{max-height:0;overflow:hidden;transition:max-height .48s cubic-bezier(.65,.05,.36,1);will-change:max-height;position:relative;z-index:1;}
.accordion-content-inner{padding:1.35rem 1.35rem 1.25rem;display:flex;flex-direction:column;gap:1.1rem;min-height:var(--campaign-section-min-height,min(48vh,480px));}


:root{
  --campaign-grid-min-height:min(48vh,520px);
  --campaign-section-min-height:min(max(22rem,50vh),40rem);
  --filter-row-gradient:linear-gradient(to left,rgba(34,197,94,.12) 0%,rgba(34,197,94,.06) 42%,rgba(34,197,94,.025) 72%,rgba(255,255,255,0) 100%);
  --filter-row-border-top:rgba(34,197,94,.1);
  --filter-row-border-bottom:rgba(255,255,255,.3);
}

@media (prefers-color-scheme: dark){
  :root{
    --filter-row-gradient:linear-gradient(to left,rgba(34,197,94,.22) 0%,rgba(34,197,94,.12) 48%,rgba(15,23,42,.5) 80%,rgba(15,23,42,0) 100%);
    --filter-row-border-top:rgba(34,197,94,.2);
    --filter-row-border-bottom:rgba(15,23,42,.6);
  }
}

#active-campaigns-list,#upcoming-campaigns-list,#recent-campaigns-list{
  display:grid;
  gap:1.15rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));
  align-items:start;
  grid-auto-rows:var(--campaign-grid-row-size,16px);
  grid-auto-flow:dense;
  justify-content:stretch;
  min-height:var(--campaign-grid-min-height);
}

:is(#active-campaigns-list,#upcoming-campaigns-list,#recent-campaigns-list).campaign-grid--single{
  grid-template-columns:minmax(0,clamp(320px,60vw,420px));
  justify-content:center;
}

.campaign-card{
  position:relative;
  background:linear-gradient(145deg,#ffffff,#f1f5f9);
  border:var(--card-type-border-w) solid var(--type-color,var(--card-border-light));
  border-radius:1rem;
  overflow:hidden;
  display:flex;flex-direction:column;
  grid-row-end:span var(--row-span,1);
  transition:box-shadow .18s,transform .18s,border-color .25s;
}
.campaign-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px -10px rgba(16,185,129,.30);}
.campaign-card:focus-visible{outline:2px solid var(--type-color);outline-offset:2px;}
@media (prefers-color-scheme: dark){
  .campaign-card{background:linear-gradient(140deg,#1e293b,#0f172a);border-color:var(--type-color,var(--card-border-dark));}
  .campaign-card:hover{box-shadow:0 8px 24px -8px rgba(16,185,129,.40);}
}

/* Card de EVENTO - destaque azul */
.campaign-card.campaign-card--event {
  box-shadow: inset 0 0 0 2px #3b82f6, 0 4px 12px -4px rgba(59, 130, 246, 0.3);
}
.campaign-card.campaign-card--event:hover {
  box-shadow: inset 0 0 0 2px #2563eb, 0 8px 24px -8px rgba(59, 130, 246, 0.4);
}
.campaign-card.campaign-card--event .type-accent {
  background: linear-gradient(180deg, #3b82f6, #1d4ed8);
  width: 4px;
}

/* Card de DOAÇÃO - destaque verde */
.campaign-card.campaign-card--donation {
  box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.2), 0 4px 12px -4px rgba(34, 197, 94, 0.15);
}
.campaign-card.campaign-card--donation:hover {
  box-shadow: inset 0 0 0 2px #22c55e, 0 8px 24px -8px rgba(34, 197, 94, 0.35);
}

.campaign-encerrada{filter:none !important;}
.ended-badge{
  position:absolute;top:6px;left:6px;z-index:6;
  background:linear-gradient(90deg,#1e293b,#0f172a);
  color:#fff;font-size:.56rem;font-weight:700;
  letter-spacing:.5px;padding:.35rem .55rem;
  border-radius:.55rem;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.35);
  text-transform:uppercase;
}
@media (prefers-color-scheme: dark){
  .ended-badge{background:linear-gradient(90deg,#475569,#1e293b);}
}

.campaign-card .type-accent{position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:1rem 0 0 1rem;background:var(--type-color,#9ca3af);}

.media-wrapper{position:relative;width:100%;aspect-ratio:16/9;background:#0f172a;overflow:hidden;cursor:pointer;}
@supports not (aspect-ratio:16/9){.media-wrapper{height:10.5rem;}}
.media-container{position:absolute;inset:0;}
.media-item{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s;filter:brightness(.96);}
.media-item.active{z-index:1;}
.media-item.loaded{opacity:1;}
.media-skeleton{position:absolute;inset:0;background:#e2e8f0;}
@media (prefers-color-scheme: dark){.media-skeleton{background:#1e293b;}}

.collapsed-overlay{
  position:absolute;left:0;right:0;bottom:0;padding:.55rem .6rem .6rem;
  display:flex;flex-direction:column;gap:.45rem;
  background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(255,255,255,.85) 45%,rgba(255,255,255,.97) 100%);
  z-index:3;pointer-events:none;
}
.collapsed-overlay .title-mini{
  font-size:.8rem;font-weight:800;line-height:1.15;color:#0a2819;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.collapsed-overlay .top-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;}
.collapsed-overlay .entity-chip-mini{display:inline-flex;align-items:center;gap:4px;}
.collapsed-overlay .type-mini{font-size:.60rem;font-weight:700;border-radius:999px;padding:.25rem .6rem;white-space:nowrap;display:inline-flex;align-items:center;gap:.2rem;}
.collapsed-overlay .type-mini--event{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd;}
.collapsed-overlay .meta-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding-right:2.5rem;}
.collapsed-overlay .urgent-mini{font-size:.60rem;font-weight:800;color:#fff;background:#dc2626;border-radius:.4rem;padding:.15rem .45rem;}
.collapsed-overlay .countdown-badge{font-size:.60rem;padding:.18rem .5rem;border-radius:.55rem;background:var(--_bg);color:var(--_fg);border:1px solid var(--_bd);font-weight:700;}

.campaign-card.is-collapsible.collapsed .collapsed-overlay{display:flex;}
.campaign-card.is-collapsible.expanded .collapsed-overlay{display:none;}
.campaign-card.is-collapsible.collapsed .card-body{display:none;}
.campaign-card.is-collapsible.expanded .card-body{display:flex;}
/* Mostrar botão share mini apenas quando card colapsado */
.campaign-card.is-collapsible.collapsed .card-share-btn-mini{display:flex;}
.campaign-card.is-collapsible.expanded .card-share-btn-mini{display:none;}

.card-body{
  position:relative;z-index:2;padding:1rem 1rem 1rem 1.1rem;
  margin-left:3px;
  display:flex;flex-direction:column;gap:.65rem;flex-grow:1;
  background:linear-gradient(#ffffff,#f8fafc);
}
@media (prefers-color-scheme: dark){.card-body{background:linear-gradient(#1e293b,#0f172a);} }
.card-body>.top-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.7rem;}
.card-title{font-weight:700;font-size:1rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

.progress-group{display:grid;gap:.5rem;}
.progress-row{display:flex;align-items:center;gap:.5rem;}
.progress-icon{width:1.25rem;height:1.25rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;}
.progress-icon--scheduled{background:linear-gradient(135deg,#0ea5e9,#0284c7);}
.progress-icon--delivered{background:linear-gradient(135deg,#22c55e,#16a34a);}
.progress-icon--confirmed{background:linear-gradient(135deg,#8b5cf6,#6d28d9);}
.progress-icon--present{background:linear-gradient(135deg,#f59e0b,#d97706);}
.progress-info{flex:1;min-width:0;}
.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;}
.progress-label-text{font-size:.65rem;font-weight:600;color:#475569;display:flex;align-items:center;gap:.25rem;}
.progress-label-count{font-size:.7rem;font-weight:700;color:#1e293b;font-variant-numeric:tabular-nums;}
.progress-bar{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;position:relative;}
.progress-bar::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 4px,rgba(255,255,255,.15) 4px,rgba(255,255,255,.15) 8px);z-index:1;pointer-events:none;}
.progress-bar>span{display:block;height:100%;border-radius:999px;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;}
.progress-bar>span::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.25) 0%,transparent 60%);border-radius:999px;}
.progress-bar>span.is-near-goal{animation:goalPulse 1.5s ease-out infinite;}
.progress-bar>span.is-complete{animation:goalComplete .8s ease-out forwards;}
@keyframes goalPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5);}70%{box-shadow:0 0 0 8px rgba(34,197,94,0);}100%{box-shadow:0 0 0 0 rgba(34,197,94,0);}}
@keyframes goalComplete{0%{filter:brightness(1);}50%{filter:brightness(1.3);}100%{filter:brightness(1);}}
.progress-milestone{display:flex;align-items:center;gap:.35rem;margin-top:.35rem;padding:.35rem .5rem;border-radius:.5rem;font-size:.6rem;font-weight:600;}
.progress-milestone--success{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:1px solid #86efac;}
.progress-milestone--warning{background:linear-gradient(135deg,#fef9c3,#fef08a);color:#854d0e;border:1px solid #fde047;}
.progress-milestone svg{width:.85rem;height:.85rem;}

/* Campaign Type Badges */
.campaign-type-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:.5rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.campaign-type-badge--event{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd;}
.campaign-type-badge--event svg{color:#2563eb;}
.campaign-type-badge--donation{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:1px solid #86efac;}
.campaign-type-badge--donation svg{color:#22c55e;}

.donor-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .45rem;}
.donor-avatar-container{position:relative;}
.donor-avatar{width:36px;height:36px;border-radius:999px;object-fit:cover;transition:transform .2s;}
.donor-avatar:hover{transform:scale(1.06);}
.star-badge{position:absolute;bottom:-2px;right:-4px;background:#f59e0b;color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-size:10px;}

.like-button{cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#64748b;transition:color .2s;}
.like-button:hover,.like-button.liked{color:#ef4444;}

/* Stats chips no footer do card */
.stats-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .55rem;border-radius:.5rem;font-size:.6rem;font-weight:500;transition:transform .15s,box-shadow .15s;}
.stats-chip:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.1);}
.stats-chip span{opacity:.85;}
.stats-chip strong{font-weight:700;font-size:.65rem;}
.stats-chip--scheduled{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0369a1;border:1px solid #7dd3fc;}
.stats-chip--delivered{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:1px solid #86efac;}
.stats-chip--confirmed{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#5b21b6;border:1px solid #c4b5fd;}
.stats-chip--present{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1px solid #fcd34d;}

.card-details-btn{
  margin-top:.6rem;display:inline-flex;align-items:center;gap:.4rem;
  background:#2563eb;color:#fff;font-weight:600;font-size:.72rem;
  padding:.55rem .9rem;border-radius:.65rem;border:none;cursor:pointer;
  box-shadow:0 2px 4px -1px rgba(0,0,0,.18);
  transition:background .2s,transform .2s;
}
.card-details-btn:hover{background:#1d4ed8;}
.card-details-btn:active{transform:scale(.95);}

/* Botão de compartilhar no card */
.card-share-btn{
  margin-top:.6rem;display:inline-flex;align-items:center;justify-content:center;
  background:#f3f4f6;color:#4b5563;font-weight:600;
  width:2.5rem;height:2.5rem;border-radius:.65rem;border:none;cursor:pointer;
  box-shadow:0 2px 4px -1px rgba(0,0,0,.1);
  transition:background .2s,transform .2s,color .2s;
  flex-shrink:0;
}
.card-share-btn:hover{background:#e5e7eb;color:#1f2937;}
.card-share-btn:active{transform:scale(.95);}

/* Botão de compartilhar mini (no card colapsado) */
.card-share-btn-mini{
  position:absolute;
  bottom:0.5rem;
  right:0.5rem;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,0.95);color:#4b5563;
  width:2rem;height:2rem;border-radius:50%;border:none;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
  transition:background .2s,transform .2s,color .2s;
  z-index:5;
  pointer-events:auto; /* Permitir cliques mesmo com parent pointer-events:none */
}
.card-share-btn-mini:hover{background:#fff;color:#2563eb;transform:scale(1.1);}
.card-share-btn-mini:active{transform:scale(.95);}

/* ===== FILTER ROW - Linha de filtros flutuante ===== */
.filter-row{
  display:flex;justify-content:center;align-items:center;
  padding:0 1rem;
  background:var(--filter-row-gradient);
  border-radius:0;
  border-top:1px solid var(--filter-row-border-top);
  border-bottom:1px solid var(--filter-row-border-bottom);
  overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  min-height:0;max-height:0;opacity:0;padding-top:0;padding-bottom:0;
  transition:all .25s ease;
  position:relative;z-index:50;
  backdrop-filter:saturate(1.05);
}
.filter-row:has(.filter-group.open),.filter-row.menu-open{z-index:10000;overflow:visible;}
.filter-row::-webkit-scrollbar{display:none;}
/* Só mostra filtros quando a aba está expandida (.active no header pai) */
.accordion-header.active .filter-row.visible{min-height:48px;max-height:56px;opacity:1;padding-top:.5rem;padding-bottom:.6rem;}
.filter-row:empty{display:none;}

.filter-bar{
  display:inline-flex;align-items:center;gap:.5rem;
  flex-wrap:nowrap;white-space:nowrap;
}

.filter-group{position:relative;display:inline-flex;flex-shrink:0;z-index:200;}
.filter-group.open{z-index:9999;}

.filter-trigger{
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.4rem .65rem;border-radius:999px;
  font-size:.7rem;font-weight:600;color:#1f2937;
  background:#fff;border:1px solid #d1d5db;
  cursor:pointer;transition:all .15s ease;white-space:nowrap;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}
.filter-trigger:hover{background:#f3f4f6;border-color:#9ca3af;transform:translateY(-1px);}
.filter-trigger:active{transform:translateY(0);}
.filter-trigger.has-filter{
  background:linear-gradient(135deg,#dcfce7,#bbf7d0);
  border-color:#86efac;color:#166534;
  box-shadow:0 2px 6px rgba(34,197,94,.2);
}
.filter-trigger.has-filter:hover{background:linear-gradient(135deg,#bbf7d0,#86efac);border-color:#4ade80;}
.filter-trigger-label{max-width:80px;overflow:hidden;text-overflow:ellipsis;}
.filter-trigger svg.chevron{transition:transform .2s ease;}
.filter-group.open .filter-trigger svg.chevron{transform:rotate(180deg);}

.filter-dropdown-menu{
  display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);
  background:#fff;border:1px solid #e2e8f0;
  border-radius:.75rem;box-shadow:0 16px 40px -8px rgba(0,0,0,.25);
  padding:.4rem;min-width:180px;max-width:260px;z-index:9999;
}
.filter-group.open .filter-dropdown-menu{display:block;animation:filterFadeIn .18s ease;}
@keyframes filterFadeIn{from{opacity:0;transform:translateX(-50%) translateY(-6px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}

.filter-dropdown-item{
  width:100%;text-align:left;font-size:.72rem;font-weight:500;
  padding:.55rem .7rem;border-radius:.5rem;color:#374151;
  cursor:pointer;display:flex;align-items:center;gap:.4rem;
  transition:background .12s ease;
}
.filter-dropdown-item:hover{background:#f3f4f6;}
.filter-dropdown-item.active{background:#dcfce7;color:#166534;font-weight:600;}
.filter-dropdown-item svg{flex-shrink:0;}

.filter-separator{
  height:1px;background:#e5e7eb;margin:.35rem .5rem;
}
.filter-section-label{
  font-size:.6rem;font-weight:700;color:#9ca3af;
  text-transform:uppercase;letter-spacing:.5px;
  padding:.4rem .7rem .2rem;
}

.filter-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;
  background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;
  font-size:.6rem;font-weight:700;border-radius:999px;
  margin-left:.35rem;box-shadow:0 2px 4px rgba(22,163,74,.3);
}

/* Dark mode para filtros */
@media (prefers-color-scheme: dark){
  .filter-trigger{background:#1e293b;border-color:#475569;color:#e2e8f0;box-shadow:0 1px 3px rgba(0,0,0,.2);}
  .filter-trigger:hover{background:#334155;border-color:#64748b;}
  .filter-trigger.has-filter{background:linear-gradient(135deg,#14532d,#166534);border-color:#22c55e;color:#86efac;}
  .filter-dropdown-menu{background:#1e293b;border-color:#334155;box-shadow:0 12px 32px -8px rgba(0,0,0,.4);}
  .filter-dropdown-item{color:#e2e8f0;}
  .filter-dropdown-item:hover{background:#334155;}
  .filter-dropdown-item.active{background:#14532d;color:#86efac;}
  .filter-separator{background:#334155;}
  .filter-section-label{color:#64748b;}
}

.social-bar{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:center;align-items:center;margin-top:.6rem;}
.social-icon-btn{
  width:36px;height:36px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid #e2e8f0;background:#fff;color:#334155;
  transition:transform .15s, background .15s;
}
.social-icon-btn:hover{transform:translateY(-2px);background:#f1f5f9;}
.social-icon-btn svg{width:18px;height:18px;display:block;flex:0 0 18px;}
@media (prefers-color-scheme: dark){
  .social-icon-btn{background:#1e293b;border-color:#334155;color:#e2e8f0;}
  .social-icon-btn:hover{background:#0f172a;}
}

.entity-chip,
.entity-chip-mini{
  display:inline-flex;align-items:center;gap:4px;max-width:100%;
  font-weight:600;line-height:1.1;white-space:nowrap;
}
.entity-chip-mini{font-size:.66rem;}
.entity-chip{
  font-size:.70rem;padding:2px 6px 2px 4px;border-radius:7px;position:relative;
  background:linear-gradient(90deg,color-mix(in srgb,var(--type-color,#16a34a) 18%,#ffffff) 0%,rgba(255,255,255,0) 80%);
  box-shadow:0 0 0 1px rgba(255,255,255,.35),inset 0 0 0 1px color-mix(in srgb,var(--type-color,#16a34a) 35%, transparent);
}
@media (prefers-color-scheme: dark){
  .entity-chip{
    background:linear-gradient(90deg,color-mix(in srgb,var(--type-color,#16a34a) 35%,#1e293b) 0%,rgba(30,41,59,0) 85%);
    box-shadow:0 0 0 1px rgba(255,255,255,.10),inset 0 0 0 1px color-mix(in srgb,var(--type-color,#16a34a) 40%, transparent);
  }
}
.entity-logo,
.entity-logo-mini,
.entity-initial,
.entity-initial-mini{
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;flex-shrink:0;font-weight:600;
  font-size:.65rem;letter-spacing:.5px;
  background:#fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.12);
  color:#334155;
}
.entity-logo,.entity-initial{width:22px;height:22px;}
.entity-logo-mini,.entity-initial-mini{width:18px;height:18px;font-size:.58rem;box-shadow:0 0 0 1px rgba(0,0,0,.10);}
.entity-logo img,
.entity-logo-mini img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.entity-name,.entity-name-mini{display:inline-block;max-width:130px;overflow:hidden;text-overflow:ellipsis;}
@media (min-width:640px){
  .entity-name{max-width:160px;}
  .entity-name-mini{max-width:110px;}
}

.page-loading-overlay{
  position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  background:rgba(248,250,252,.85);backdrop-filter:blur(8px);transition:opacity .3s ease,visibility .3s ease;
}
.page-loading-overlay.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.dark .page-loading-overlay{background:rgba(15,23,42,.85);}
.page-loading-overlay__inner{
  background:rgba(255,255,255,.95);border-radius:1.25rem;padding:1.5rem 2rem;text-align:center;
  box-shadow:0 25px 60px -30px rgba(15,23,42,.5);display:flex;flex-direction:column;gap:.75rem;min-width:min(90vw,320px);
}
.dark .page-loading-overlay__inner{background:rgba(30,41,59,.92);color:#e2e8f0;}
.page-loading-overlay__inner .loader{margin:0 auto;}
.page-loading-overlay__inner .overlay-copy{font-size:.9rem;font-weight:600;color:#1e293b;}
.dark .page-loading-overlay__inner .overlay-copy{color:#e2e8f0;}

footer{font-size:.7rem;margin-top:3rem;}
.toast-container{position:fixed;bottom:calc(1rem + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:120;display:flex;flex-direction:column;gap:.6rem;width:min(92%,420px);}
.toast{background:#1e293b;color:#fff;padding:.7rem .95rem;border-radius:.85rem;font-size:.8rem;font-weight:500;box-shadow:0 8px 24px -8px rgba(0,0,0,.35);animation:toastIn .3s ease;}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,8px);}to{opacity:1;transform:translate(-50%,0);}}
