/* Estilos da nova aplicação (por cima do tema Porto) */
.v2-topo { background: #274285; padding: .5rem 0; font-size: .9rem; }
.v2-topo a { text-decoration: none; }
.v2-menu { border-top: 1px solid #eee; border-bottom: 3px solid #274285; background: #f8f9fa; }
.v2-menu .nav-link { color: #274285; font-weight: 600; text-transform: uppercase; font-size: .85rem; }
.v2-lista-pessoas { max-height: 420px; overflow-y: auto; border: 1px solid #dee2e6; border-radius: .25rem; padding: .5rem 1rem; }
.v2-lista-pessoas .seccao { font-weight: 700; margin-top: .5rem; text-transform: capitalize; }
.v2-historico li { border-left: 3px solid #274285; padding-left: .75rem; margin-bottom: .75rem; list-style: none; }
.v2-contagens .badge { font-size: .85rem; }
.table td, .table th { vertical-align: middle; }

/* Site público (Fase 6) */
.v2-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.v2-carrossel { display: flex; gap: .5rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
.v2-carrossel a { flex: 0 0 auto; scroll-snap-align: start; }
.v2-carrossel img { height: 200px; width: auto; border-radius: .25rem; }
.v2-cartao-centro img, .v2-albergue img { height: 190px; object-fit: cover; }
.v2-cartao-centro:hover { box-shadow: 0 .25rem 1rem rgba(39, 66, 133, .2); }
.v2-menu .dropdown-menu { max-height: 70vh; overflow-y: auto; }

/* Backoffice */
.v2-gestao { display: flex; min-height: 70vh; }
.v2-gestao-nav { width: 240px; flex: 0 0 240px; background: #f4f6fb; border-right: 1px solid #e3e7f0; padding: 1rem 0; }
.v2-gestao-nav a { display: block; padding: .4rem 1.25rem; color: #274285; text-decoration: none; font-size: .92rem; }
.v2-gestao-nav a.ativo, .v2-gestao-nav a:hover { background: #274285; color: #fff; }
.v2-gestao-nav .titulo { padding: .8rem 1.25rem .2rem; font-size: .75rem; text-transform: uppercase; color: #6c757d; letter-spacing: .05em; }
.v2-gestao-main { flex: 1; min-width: 0; padding: 1.5rem; }
@media (max-width: 991px) { .v2-gestao { display: block; } .v2-gestao-nav { width: auto; } }
.v2-barra { display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem; font-size: .9rem; }
.v2-barra .rotulo { flex: 0 0 34%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-barra .barra { flex: 1; background: #eef1f8; border-radius: 3px; height: 1.2rem; position: relative; }
.v2-barra .barra span { display: block; height: 100%; background: #274285; border-radius: 3px; }
.v2-barra .valor { flex: 0 0 4rem; text-align: right; font-weight: 600; }
.v2-colunas { display: flex; align-items: flex-end; gap: 2px; height: 220px; border-bottom: 1px solid #ccc; padding-top: 1.2rem; }
.v2-colunas div { flex: 1; background: #274285; position: relative; min-width: 3px; }
.v2-colunas div span { position: absolute; top: -1.1rem; left: 50%; transform: translateX(-50%); font-size: .65rem; white-space: nowrap; }
.v2-colunas-rotulos { display: flex; gap: 2px; font-size: .65rem; color: #666; }
.v2-colunas-rotulos div { flex: 1; text-align: center; overflow: hidden; white-space: nowrap; }
.v2-kpi { border-left: 4px solid #274285; }
.v2-kpi .valor { font-size: 1.6rem; font-weight: 700; color: #274285; }
.v2-mapa td.cel { text-align: center; font-weight: 600; min-width: 3.2rem; }
.v2-img-gestao { position: relative; }
.v2-img-gestao img { width: 100%; height: 140px; object-fit: cover; border-radius: .25rem; }
.v2-publicacao { border: 1px solid #e3e7f0; border-radius: .35rem; margin-bottom: 1rem; }
.v2-publicacao.escondida { opacity: .6; background: repeating-linear-gradient(45deg, #fafafa, #fafafa 10px, #f2f2f2 10px, #f2f2f2 20px); }
.v2-pagina-nivel-1 { padding-left: 1.2rem !important; }
.v2-pagina-nivel-2 { padding-left: 2.4rem !important; }
.v2-pagina-nivel-3, .v2-pagina-nivel-4 { padding-left: 3.6rem !important; }
