:root{
  --bg:#eef1f6;
  --card:#ffffff;
  --line:#e6eaf2;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --accent:#10b981;
  --neon:#c7ff1a;
  --hover-shadow:0 4px 10px rgba(15,23,42,.10);
}
*{box-sizing:border-box}
body{
  background:var(--bg)!important;
  color:var(--text)!important;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Arial,sans-serif!important;
}
header{
  background:transparent!important;
  color:var(--text)!important;
  border:none!important;
  padding:12px 12px 4px!important;
}
header > div, .header-content{
  max-width:430px!important;
  margin:0 auto!important;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:8px 10px;
}
main{max-width:430px!important;padding:12px!important}
.section,.summary-card,.chart-section,.card{
  background:var(--card)!important;
  border:1px solid var(--line)!important;
  border-radius:16px!important;
  box-shadow:none!important;
}
.summary-card .label,.section-title,.muted,.obra-address,.obra-meta{color:var(--muted)!important}
.bottom-nav{
  background:#1e3a5f!important;
  box-shadow:0 8px 32px rgba(30,58,95,.35)!important;
}
.nav-item.active{background:rgba(255,255,255,.18)!important}
.obra-card,.lancamento-item,.list-item,.category-card{
  background:#fff!important;
  border:1px solid var(--line)!important;
}
button,.btn,.filter-btn,.open-btn,.btn-login{
  border-radius:10px!important;
}
@media (min-width:768px){
  main, header > div, .header-content{max-width:1200px!important}
}


/* Unified hover system */
a,button,.btn,.open-btn,.filter-btn,.icon-btn,.nav-item,.obra-card,.card,.summary-card,.list-item,.category-card{
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease;
}
@media (hover:hover){
  a:hover,button:hover,.btn:hover,.open-btn:hover,.filter-btn:hover,.icon-btn:hover,.nav-item:hover,.obra-card:hover,.card:hover,.summary-card:hover,.list-item:hover,.category-card:hover{
    transform:translateY(-1px);
    box-shadow:var(--hover-shadow)!important;
    filter:saturate(1.02);
  }
}
a:active,button:active,.btn:active,.open-btn:active,.filter-btn:active,.icon-btn:active{transform:translateY(0)}

/* Neon active pattern for filter/toggle buttons */
.filter-btn.active,.open-btn.active,.btn.active,
button[data-active="true"],.is-active{
  background:var(--neon)!important;
  border-color:#b8ff29!important;
  color:#0b1220!important;
}
