/*
APP PASTORAL DO DÍZIMO — CSS CONSOLIDADO DE PRÉ-PUBLICAÇÃO

Estrutura:
01. Base e tema
02. Desktop / sidebar
03. Cards e componentes
04. Dashboard Admin
05. Dizimistas
06. Lançamentos
07. Relatórios
08. Comunidades / usuários
09. Escala
10. Mobile / Safe Area
11. Perfil Servo
12. Ajustes atuais

Manutenção: altere a regra existente do componente em vez de criar um novo
bloco de versão no final do arquivo. O histórico pertence ao CHANGELOG.md.
*/

/* ==================== 01. BASE, TEMA E ESTRUTURA ==================== */

:root {
  font-family: Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  color: #281d1e;
  --red: #e51620;
  --red-strong: #c80e18;
  --deep: #8f0b12;
  --muted: #796b6d;
  --line: rgba(196,58,65,.18);
  --glass: rgba(255,255,255,.48);
  --glass-strong: rgba(255,255,255,.64);
  --glass-border: rgba(255,255,255,.72);
  --shadow: 0 16px 42px rgba(101,20,25,.10);
}

/* Desktop com pouca altura: mantém todos os menus acessíveis sem corte. */
@media (min-width:951px) and (max-height:760px) {
  .side {
    padding: 10px 14px !important;
    overflow-y: auto;
  }

  .side .brand img:first-child {
    width: 100px !important;
    max-height: 70px !important;
  }

  .side .brand img:last-child {
    width: 105px !important;
    max-height: 80px !important;
    margin-top: 2px !important;
  }

  .side .nav {
    gap: 2px !important;
    margin-top: 6px !important;
  }

  .side .nav button {
    padding: 6px 10px !important;
    min-height: 34px;
    line-height: 1.2;
  }

  .side .version {
    padding-top: 5px;
  }
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background: #fff7f7;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  background: #fff7f7;
  position: relative;
  background-image: linear-gradient(135deg,rgba(255,255,255,.76),rgba(255,238,239,.62)),url("../assets/paroquia-fundo-estilizado.png");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,247,247,.58)),radial-gradient(circle at 88% 7%,rgba(229,22,32,.10),transparent 30%);
  backdrop-filter: saturate(.78) blur(1.5px);
}

button,input,select {
  font: inherit;
}

.app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 250px 1fr;
}

.side {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 22px 18px;
  border-right: 1px solid var(--glass-border);
  background: rgba(255,255,255,.38);
  -webkit-backdrop-filter: blur(26px) saturate(145%);
  backdrop-filter: blur(26px) saturate(145%);
  box-shadow: 8px 0 32px rgba(90,20,25,.05);
  display: flex;
  flex-direction: column;
}

.brand {
  text-align: center;
}

.brand img:first-child {
  width: 135px;
  max-height: 110px;
  object-fit: contain;
}

.brand img:last-child {
  width: 145px;
  max-height: 130px;
  object-fit: contain;
  margin-top: 8px;
  mix-blend-mode: multiply;
  opacity: .84;
}

.nav {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}

.nav button {
  border: 1px solid transparent;
  background: transparent;
  padding: 13px 15px;
  text-align: left;
  border-radius: 15px;
  cursor: pointer;
  color: #3d3031;
}

.nav button.active,.nav button:hover {
  background: rgba(229,22,32,.09);
  border-color: rgba(229,22,32,.11);
  color: var(--red);
  font-weight: 750;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}

.version {
  margin-top: auto;
  font-size: 12px;
  color: var(--muted);
  text-align: center;
}

@media (min-width:951px) and (max-height:760px) {
  .side {
    padding: 12px 14px;
    overflow-y: auto;
  }

  .brand img:first-child {
    width: 110px;
    max-height: 82px;
  }

  .brand img:last-child {
    width: 118px;
    max-height: 92px;
    margin-top: 3px;
  }

  .nav {
    gap: 3px;
    margin-top: 8px;
  }

  .nav button {
    padding: 8px 12px;
  }

  .version {
    padding-top: 8px;
  }
}

.main {
  padding: 28px;
  max-width: 1500px;
  width: 100%;
  margin: auto;
}

.top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.top h1 {
  font-size: 27px;
  margin: 0;
}

.top p {
  margin: 5px 0 0;
  color: var(--muted);
}

.pill,.card,.action,.field input,.field select {
  background: var(--glass);
  border: 1px solid var(--glass-border);
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  backdrop-filter: blur(22px) saturate(140%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72),var(--shadow);
}

.pill {
  padding: 10px 14px;
  border-radius: 15px;
}

.grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 15px;
}

.card {
  border-radius: 24px;
  padding: 20px;
}

.metric {
  background: linear-gradient(145deg,rgba(255,255,255,.60),rgba(255,246,246,.34));
}

.metric b {
  font-size: 25px;
  color: var(--red);
  display: block;
  margin-top: 8px;
}

.metric span {
  color: var(--muted);
  font-size: 13px;
}

.section {
  margin-top: 18px;
}

.section h2 {
  font-size: 18px;
  margin: 0 0 16px;
}

.actions {
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 12px;
}

.action {
  border-radius: 20px;
  padding: 22px 12px;
  text-align: center;
  font-weight: 700;
  cursor: pointer;
  color: #2f2223;
}

.action:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.66);
}

.action strong {
  display: grid;
  place-items: center;
  margin: 0 auto 10px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(145deg,#f1262f,var(--red-strong));
  color: white;
  font-size: 28px;
  box-shadow: 0 10px 24px rgba(229,22,32,.22),inset 0 1px 0 rgba(255,255,255,.35);
}

.content-grid {
  display: grid;
  grid-template-columns: minmax(0,2fr) minmax(280px,.8fr);
  gap: 18px;
}

.table {
  width: 100%;
  border-collapse: collapse;
}

.table th,.table td {
  text-align: left;
  padding: 12px 8px;
  border-bottom: 1px solid rgba(159,80,84,.14);
  font-size: 14px;
}

.tag {
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(221,247,224,.72);
  border: 1px solid rgba(255,255,255,.65);
  color: #157a28;
  font-size: 12px;
}

.alert {
  padding: 12px 0;
  border-bottom: 1px solid rgba(159,80,84,.14);
}

.alert:last-child {
  border: 0;
}

.btn {
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 15px;
  padding: 12px 16px;
  background: linear-gradient(145deg,#f11f29,var(--red-strong));
  color: white;
  font-weight: 750;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(229,22,32,.18),inset 0 1px 0 rgba(255,255,255,.28);
}

.btn.secondary {
  background: rgba(255,255,255,.40);
  color: var(--red);
  border: 1px solid rgba(229,22,32,.38);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.form {
  display: grid;
  gap: 14px;
}

.field label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 6px;
}

.field input,.field select {
  width: 100%;
  border-radius: 14px;
  padding: 13px;
  outline: none;
  color: #281d1e;
}

.field input::placeholder {
  color: #a79899;
}

.field input:focus,.field select:focus {
  border-color: rgba(229,22,32,.50);
  box-shadow: 0 0 0 3px rgba(229,22,32,.09),inset 0 1px 0 rgba(255,255,255,.8);
}

.two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.empty {
  color: var(--muted);
  text-align: center;
  padding: 28px;
}

.status {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
  background: #20a13a;
  box-shadow: 0 0 0 4px rgba(32,161,58,.08);
}

.status.no {
  background: #d82a2a;
  box-shadow: 0 0 0 4px rgba(216,42,42,.08);
}

.mobilebar {
  display: none;
}

@media (max-width:950px) {
  .app {
    display: block;
  }

  .side {
    display: none;
  }

  .main {
    padding: 18px 14px 104px;
  }

  .top {
    align-items: flex-start;
  }

  .top h1 {
    font-size: 22px;
  }

  .pill {
    font-size: 12px;
  }

  .grid {
    grid-template-columns: 1fr 1fr;
  }

  .actions {
    grid-template-columns: 1fr 1fr;
  }

  .content-grid {
    grid-template-columns: 1fr;
  }

  .table-wrap {
    overflow: auto;
  }

  .card {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.82),0 12px 30px rgba(98,22,28,.08);
  }

  .mobilebar {
    display: grid;
    position: fixed;
    left: 0;
    right: 0;
    background: rgba(255,255,255,.62);
    border-top: 1px solid rgba(255,255,255,.82);
    -webkit-backdrop-filter: blur(28px) saturate(155%);
    backdrop-filter: blur(28px) saturate(155%);
    box-shadow: 0 -10px 30px rgba(88,22,28,.07);
    z-index: 10;
  }

  .mobilebar button {
    border: 0;
    background: none;
    color: #655;
  }

  .mobilebar button.active {
    color: var(--red);
    font-weight: 800;
  }
}

@media (max-width:520px) {
  body::after {
    content: "";
    position: fixed;
    right: -62px;
    top: 20%;
    width: 270px;
    height: 390px;
    z-index: -1;
    opacity: .055;
    background: url("../assets/paroquia-sao-sebastiao.png") center/contain no-repeat;
    filter: grayscale(1);
  }

  .grid {
    grid-template-columns: 1fr 1fr;
  }

  .metric {
    padding: 16px;
  }

  .metric b {
    font-size: 20px;
  }

  .actions {
    grid-template-columns: 1fr 1fr;
  }

  .two {
    grid-template-columns: 1fr;
  }

  .card {
    border-radius: 20px;
  }

  .top .pill {
    display: none;
  }
}

@media (min-width:951px) {
  .app {
    min-height: 100vh;
  }

  .side {
    margin: 0;
  }

  .brand img:first-child {
    max-height: 105px;
  }

  .brand img:last-child {
    margin-top: 12px;
    opacity: .88;
  }

  .nav button {
    color: #271f20;
  }

  .nav button.active,.nav button:hover {
    color: var(--red);
    box-shadow: inset 3px 0 0 var(--red),inset 0 1px 0 rgba(255,255,255,.75);
  }

  .version {
    color: rgba(255,255,255,.95);
    text-shadow: 0 1px 4px rgba(60,20,20,.35);
    line-height: 1.5;
  }

  .main {
    max-width: none;
    margin: 0;
  }

  .top {
    margin-bottom: 20px;
  }

  .top h1 {
    color: #171313;
  }

  .top p {
    color: #3f3435;
  }

  .pill {
    background: rgba(255,255,255,.28);
    color: #2b2324;
  }

  .card {
    border-radius: 19px;
    padding: 18px;
  }

  .metric b {
    font-size: 26px;
  }

  .metric span {
    color: #3f3435;
  }

  .section {
    margin-top: 18px;
  }

  .section h2 {
    font-size: 20px;
  }

  .actions {
    grid-template-columns: repeat(5,minmax(110px,1fr));
    gap: 14px;
  }

  .action {
    border-radius: 17px;
    color: #211a1b;
  }

  .content-grid {
    gap: 18px;
  }

  .table th,.table td {
    border-bottom-color: rgba(255,255,255,.42);
  }
}

@media (min-width:951px) {
  .grid,.quick-card,.dashboard-lower {
    max-width: 1260px;
    margin-left: auto;
    margin-right: auto;
  }

  .quick-card {
    margin-left: 0;
    margin-right: auto;
  }

  .dashboard-lower {
    align-items: start;
  }

  .tag {
    background: rgba(227,249,229,.54);
  }
}

@media (min-width:951px) {
  .grid {
    max-width: none;
  }

  .quick-card {
    max-width: none;
  }

  .dashboard-lower {
    max-width: none;
  }
}

@media (min-width:951px) {
  html,body {
    min-height: 100%;
  }

  .app {
    grid-template-columns: 230px minmax(0,1fr);
    gap: 28px;
    padding: 14px 20px 14px 14px;
  }

  .side {
    top: 14px;
    height: calc(100vh - 28px);
    padding: 24px 16px 18px;
    border-radius: 26px;
    border: 1px solid rgba(255,255,255,.52);
  }

  .brand img:first-child {
    width: 124px;
  }

  .brand img:last-child {
    width: 128px;
    max-height: 116px;
  }

  .main {
    padding: 22px 0 26px;
    position: relative;
  }

  .top {
    margin: 0 0 28px;
  }

  .top h1 {
    font-size: 29px;
  }

  .pill,.card,.action,.field input,.field select {
    border: 1px solid rgba(255,255,255,.50);
  }

  .grid {
    width: 70%;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    margin: 0;
  }

  .metric {
    min-height: 126px;
    padding: 18px;
  }

  .quick-card {
    width: 57%;
    margin: 28px 0 0;
    padding: 17px;
  }

  .quick-card .actions {
    grid-template-columns: repeat(4,minmax(105px,1fr));
    gap: 11px;
  }

  .quick-card .action:nth-child(5) {
    grid-column: auto;
  }

  .action {
    min-height: 106px;
    padding: 13px 8px;
    font-size: 13px;
  }

  .action strong {
    width: 42px;
    height: 42px;
    font-size: 23px;
    margin-bottom: 8px;
  }

  .dashboard-lower {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(520px,58%) 290px;
    gap: 0;
    margin: 20px 0 0;
    position: relative;
  }

  .recent-card {
    min-height: 250px;
    margin: 0;
  }

  .dashboard-lower aside {
    position: fixed;
    right: 28px;
    top: 300px;
    width: 270px;
    display: grid;
    gap: 14px;
  }

  .dashboard-lower aside .card {
    margin: 0;
    padding: 17px;
  }

  .dashboard-lower aside .card h2 {
    font-size: 18px;
  }

  .table th,.table td {
    padding: 10px 8px;
  }
}

@media (min-width:951px) {
  .recent-card,.dashboard-lower aside .card {
    background: rgba(255,255,255,.046);
  }
}

@media (min-width:951px) {
  .side {
    box-shadow: inset 0 1px 0 rgba(255,255,255,.28),0 8px 20px rgba(73,37,40,.018);
  }

  .pill,.card,.action,.field input,.field select {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.30),0 6px 18px rgba(73,37,40,.018);
  }

  .quick-card .action {
    background: rgba(255,255,255,.028);
  }

  .nav button.active,.nav button:hover {
    border-color: rgba(255,255,255,.30);
  }
}

@media (min-width:951px) {
  .side,.pill,.card,.metric,.quick-card,.quick-card .action,.action,.recent-card,.dashboard-lower aside .card {
    background: transparent !important;
    background-image: none !important;
    filter: none !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.22),0 5px 16px rgba(73,37,40,.012) !important;
  }

  .card,.pill,.action {
    border-color: rgba(255,255,255,.38) !important;
  }
}

@media (min-width:951px) {
  body::before,body::after {
    content: none !important;
    display: none !important;
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

@media (min-width:951px) {
  body {
    background-image: url("../assets/paroquia-fundo-desktop-novo.jpeg") !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-attachment: fixed !important;
  }

  body::before {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

@media (min-width:951px) {
  html,body {
    background: #ead7d4 !important;
    background-image: none !important;
  }

  body::before {
    content: none !important;
    display: none !important;
  }

  body::after {
    content: "" !important;
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    opacity: 1 !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-color: #ead7d4 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #app {
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
  }
}

@media (min-width:951px) {
  .side {
    background-image: none !important;
  }

  .pill,.card {
    background: rgba(255,255,255,.17) !important;
    background-image: none !important;
  }

  .quick-card .action,.action {
    background: rgba(255,255,255,.20) !important;
  }

  .recent-card {
    background: rgba(255,255,255,.17) !important;
  }

  .side,.pill,.card,.metric,.quick-card,.quick-card .action,.action,.recent-card,.dashboard-lower aside .card {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

.dashboard-stats {
  grid-template-columns: repeat(2,minmax(0,1fr));
  max-width: 620px;
  margin-bottom: 22px;
}

@media (max-width:950px) {
  .dashboard-stats {
    grid-template-columns: 1fr 1fr;
    max-width: none;
    margin-bottom: 18px;
  }

  .dashboard-lower {
    margin-top: 0;
  }

  .mobilebar {
    grid-template-columns: repeat(5,1fr);
  }
}

.launch-card {
  max-width: 720px;
}

.person-search {
  position: relative;
}

.suggestions {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 20;
  margin-top: 7px;
  padding: 7px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 18px;
  background: rgba(255,248,248,.96);
  box-shadow: 0 16px 36px rgba(66,25,28,.16);
}

.suggestions button {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: left;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 11px 13px;
  color: #281d1e;
  cursor: pointer;
}

.suggestions button+button {
  border-top: 1px solid rgba(159,80,84,.12);
}

.suggestions button:hover {
  background: rgba(229,22,32,.07);
}

.suggestions span {
  font-size: 13px;
  color: var(--muted);
}

.suggestions .suggestion-new span {
  color: var(--red);
  font-weight: 800;
}

@media (max-width:950px) {
  .launch-card {
    margin-left: auto;
    margin-right: auto;
  }

  .person-search input[type="search"] {
    min-height: 52px;
  }
}

@media (max-width:520px) {
  .launch-card {
    margin-top: 52px;
  }
}

.dashboard-mobile-flow {
  display: grid;
  gap: 0;
  margin-top: 18px;
}

@media (min-width:951px) {
  .dashboard-mobile-flow {
    gap: 14px;
  }

  .dashboard-mobile-flow .recent-card {
    margin-top: 0;
  }

  .dashboard-mobile-flow .reminders-card {
    margin-top: 0;
  }

  .dashboard-mobile-flow .schedule-card {
    grid-area: schedule;
    margin-top: 0;
  }
}

@media (max-width:950px) {
  .dashboard-stats {
    gap: 12px;
  }

  .dashboard-stats .metric {
    min-height: 126px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .dashboard-mobile-flow {
    gap: 14px;
  }

  .dashboard-mobile-flow .section {
    margin-top: 0;
  }

  .reminders-card {
    order: 1;
  }

  .schedule-card {
    order: 2;
  }

  .recent-card {
    order: 3;
    min-height: auto;
  }

  .dashboard-mobile-flow .card {
    padding: 18px;
  }

  .dashboard-mobile-flow .section h2 {
    margin-bottom: 12px;
  }
}

.metric-link {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.metric-link:active {
  transform: scale(.985);
}

/* ==================== 05. DIZIMISTAS ==================== */

.people-list-head,.person-row {
  display: grid;
  grid-template-columns: 70px minmax(180px,1.5fr) minmax(150px,1fr) minmax(130px,1fr);
  gap: 14px;
  align-items: center;
}

.people-list-head {
  padding: 12px 8px;
  font-weight: 800;
  border-bottom: 1px solid rgba(159,80,84,.16);
}

.person-row {
  width: 100%;
  padding: 15px 8px;
  border: 0;
  border-bottom: 1px solid rgba(159,80,84,.14);
  background: transparent;
  text-align: left;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.person-row:hover {
  background: rgba(255,255,255,.16);
}

.person-row .status {
  display: inline-block;
}

.person-data {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
  margin: 18px 0 24px;
}

.person-data>div {
  padding: 14px;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 16px;
  background: rgba(255,255,255,.18);
}

.person-data span,.payment-row span {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}

.back-link {
  border: 0;
  background: transparent;
  color: var(--red);
  font-weight: 800;
  padding: 0 0 8px;
  cursor: pointer;
}

.payment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(159,80,84,.14);
}

@media (max-width:520px) {
  .people-card {
    padding: 16px 14px;
  }

  .people-list-head,.person-row {
    grid-template-columns: 24px minmax(0,1.25fr) minmax(92px,.9fr) minmax(72px,.8fr);
    gap: 7px;
  }

  .people-list-head {
    font-size: 11px;
    padding: 10px 2px;
  }

  .person-row {
    padding: 13px 2px;
    font-size: 11px;
    line-height: 1.15;
  }

  .person-row b {
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .person-row>span:nth-child(3),.person-row>span:nth-child(4) {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .person-data {
    grid-template-columns: 1fr 1fr;
  }

  .person-detail {
    padding: 18px;
  }
}

@media (max-width:950px) {
  body::before {
    position: fixed !important;
    inset: -2px !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background: url("../assets/paroquia-fundo-estilizado.png") center center/cover no-repeat !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  .app {
    min-height: 100dvh;
  }

  .mobilebar {
    bottom: 0 !important;
    margin: 0 !important;
  }

  body:has(.people-card) .main {
    min-height: calc(100dvh - 72px);
  }

  body:has(.people-card) .top {
    margin-bottom: 28px;
  }

  body:has(.people-card) .people-card {
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width:950px) {
  html,body,#app,.app {
    background-color: #e8c9c5 !important;
  }

  .top {
    margin-bottom: 28px;
  }

  .community-form-card {
    max-width: 680px;
    margin: clamp(18px,6vh,64px) auto 0;
  }

  .community-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .btn-secondary {
    background: rgba(255,255,255,.48) !important;
    color: #5d4b4b !important;
    box-shadow: none !important;
  }
}

@media (min-width:951px) {
  .pill,.card,.metric,.action {
    background: rgba(255,255,255,.30) !important;
    border-color: rgba(255,255,255,.68) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72),0 12px 32px rgba(70,32,37,.08) !important;
  }

  .top {
    max-width: none !important;
    width: 100% !important;
    position: relative;
  }

  .top .pill {
    position: fixed;
    top: 26px;
    right: 32px;
    z-index: 5;
  }

  .dashboard-mobile-flow {
    column-gap: 28px !important;
  }

  .dashboard-mobile-flow .reminders-card,.dashboard-mobile-flow .schedule-card {
    width: 300px;
    justify-self: end;
    background: rgba(255,255,255,.30) !important;
  }

  .dashboard-mobile-flow .recent-card {
    background: rgba(255,255,255,.28) !important;
  }
}

@media (min-width:951px) {
  .side {
    background: rgba(255,255,255,.34) !important;
    border-color: rgba(255,255,255,.68) !important;
  }

  .pill,.card,.action,.field input,.field select {
    background: rgba(255,255,255,.38) !important;
    border-color: rgba(255,255,255,.70) !important;
  }

  .dashboard-mobile-flow .card,.recent-card,.reminders-card,.schedule-card {
    background: rgba(255,255,255,.40) !important;
  }

  .nav button.active,.nav button:hover {
    background: rgba(255,255,255,.52) !important;
  }
}

@media (min-width:951px) {
  .dashboard-mobile-flow {
    grid-template-columns: minmax(520px,1fr) 320px !important;
    grid-template-areas: "recent reminders" "recent week" "recent birthdays" !important;
    align-items: start;
  }

  .dashboard-mobile-flow .reminders-card,.dashboard-mobile-flow .week-card,.dashboard-mobile-flow .birthdays-card {
    justify-self: end;
  }

  .dashboard-mobile-flow .recent-card {
    grid-area: recent;
  }

  .dashboard-mobile-flow .reminders-card {
    grid-area: reminders;
  }

  .dashboard-mobile-flow .week-card {
    grid-area: week;
  }

  .dashboard-mobile-flow .birthdays-card {
    grid-area: birthdays;
  }
}

.week-list,.birthday-list {
  display: grid;
  gap: 0;
}

.week-row,.birthday-row {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px 4px;
  border-bottom: 1px solid rgba(90,55,55,.12);
}

.week-row:last-child,.birthday-row:last-child {
  border-bottom: 0;
}

.week-row.today {
  background: rgba(255,255,255,.28);
  border-radius: 14px;
  padding-left: 10px;
  padding-right: 10px;
}

.week-row span,.birthday-row span {
  color: var(--muted);
}

.week-row b,.birthday-row b {
  font-weight: 700;
}

@media (max-width:950px) {
  .dashboard-mobile-flow .week-card,.dashboard-mobile-flow .birthdays-card {
    width: auto;
  }

  .week-row,.birthday-row {
    grid-template-columns: 88px 1fr;
  }
}

@media (min-width:951px) {
  .dashboard-mobile-flow {
    display: block !important;
    width: auto !important;
    margin-top: 18px !important;
  }

  .dashboard-mobile-flow .recent-card {
    width: 100% !important;
    margin: 0 !important;
  }

  .dashboard-mobile-flow .reminders-card,.dashboard-mobile-flow .week-card,.dashboard-mobile-flow .birthdays-card {
    position: fixed !important;
    right: 32px !important;
    width: 320px !important;
    z-index: 4;
    margin: 0 !important;
    padding: 14px 18px !important;
  }

  .dashboard-mobile-flow .reminders-card {
    top: 92px !important;
  }

  .dashboard-mobile-flow .week-card {
    top: 278px !important;
  }

  .dashboard-mobile-flow .birthdays-card {
    top: 584px !important;
  }

  .dashboard-mobile-flow .reminders-card h2,.dashboard-mobile-flow .week-card h2,.dashboard-mobile-flow .birthdays-card h2 {
    margin: 0 0 9px !important;
    font-size: 18px !important;
  }

  .dashboard-mobile-flow .reminders-card .alert {
    padding: 8px 2px !important;
  }

  .dashboard-mobile-flow .week-row {
    padding: 6px 4px !important;
  }

  .dashboard-mobile-flow .week-row.today {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .dashboard-mobile-flow .birthday-row {
    padding: 6px 4px !important;
  }
}

@media (min-width:951px) {
  .nav {
    margin-top: 28px !important;
    gap: 18px !important;
  }

  .nav button {
    padding: 16px 16px !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
    border-radius: 14px !important;
  }
}

@media (min-width:951px) {
  .dashboard-stats {
    max-width: none !important;
    width: calc(100% - 348px) !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 18px !important;
    margin-left: 0 !important;
    margin-right: 348px !important;
  }

  .dashboard-stats .metric {
    min-height: 142px !important;
    padding: 22px 26px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .dashboard-stats .metric span {
    font-size: 17px !important;
    line-height: 1.3;
  }

  .dashboard-stats .metric b {
    font-size: 34px !important;
    margin: 7px 0 2px !important;
  }

  .dashboard-mobile-flow {
    padding-right: 348px !important;
  }

  .dashboard-mobile-flow .recent-card {
    font-size: 16px !important;
  }

  .dashboard-mobile-flow .recent-card h2 {
    font-size: 22px !important;
  }

  .dashboard-mobile-flow .recent-card th {
    font-size: 16px !important;
  }

  .dashboard-mobile-flow .recent-card td {
    font-size: 16px !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .dashboard-mobile-flow .reminders-card,.dashboard-mobile-flow .week-card {
    font-size: 16px !important;
  }

  .dashboard-mobile-flow .reminders-card h2,.dashboard-mobile-flow .week-card h2 {
    font-size: 21px !important;
  }

  .dashboard-mobile-flow .reminders-card .alert {
    font-size: 16px !important;
  }

  .dashboard-mobile-flow .week-row {
    grid-template-columns: 98px 1fr !important;
    font-size: 16px !important;
  }

  .dashboard-mobile-flow .birthdays-card {
    display: none !important;
  }
}

@media (min-width:951px) {
  .reports-page > .grid {
    width: min(920px,82%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .reports-page > .grid .metric {
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .reports-page > .section {
    width: min(520px,48%) !important;
    margin: 18px auto 0 !important;
    padding: 18px 24px !important;
  }

  .reports-page > .section h2 {
    text-align: center !important;
    margin-bottom: 10px !important;
  }

  .reports-page > .section .alert {
    text-align: center !important;
    padding: 10px 0 !important;
  }
}

@media (min-width:951px) {
  .main:has(> .section) > .grid {
    width: min(940px,82%) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .main:has(> .section) > .grid .metric {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .main:has(> .section) > .section {
    margin: 18px auto 0 !important;
  }

  .main:has(> .section) > .section h2 {
    text-align: center !important;
    margin-bottom: 10px !important;
  }

  .main:has(> .section) > .section .alert {
    text-align: center !important;
  }
}

/* ==================== 08. COMUNIDADES E USUÁRIOS ==================== */

.community-list {
  margin: 8px 0 16px;
}

.community-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(80,45,45,.12);
}

.community-row>span {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.community-edit,.community-delete {
  border: 0;
  background: rgba(255,255,255,.42);
  padding: 8px 11px;
  border-radius: 10px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.community-edit {
  color: #7b433d;
}

.community-delete {
  color: #c62828;
}

@media (max-width:600px) {
  .community-row {
    align-items: flex-start;
  }

  .community-row>span {
    gap: 4px;
  }

  .community-edit,.community-delete {
    padding: 7px 8px;
    font-size: 13px;
  }
}

.user-list {
  margin: 8px 0 16px;
}

.user-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(80,45,45,.12);
}

.user-row>div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.user-row>div span {
  font-size: 14px;
  opacity: .72;
}

.user-form-card {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.role-field {
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255,255,255,.22);
}

.role-field legend {
  font-weight: 800;
  padding: 0 6px;
}

.role-field label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 8px 22px 8px 0;
  font-weight: 700;
}

.role-field small {
  display: block;
  margin-top: 8px;
  opacity: .72;
  line-height: 1.4;
}

@media (min-width:951px) {
  .content-grid {
    grid-template-columns: 1fr 1fr !important;
    align-items: start !important;
  }

  .content-grid>.card {
    width: 100% !important;
    min-height: 390px !important;
    padding: 30px !important;
  }

  .communities-config-card h2,.users-config-card h2 {
    font-size: 25px !important;
  }

  .communities-config-card .community-row {
    font-size: 18px !important;
    padding: 17px 0 !important;
  }

  .communities-config-card .community-edit,.communities-config-card .community-delete {
    font-size: 15px !important;
    padding: 9px 13px !important;
  }

  .users-config-card .user-row {
    font-size: 18px !important;
    padding: 17px 0 !important;
  }
}

.people-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.people-new {
  min-width: 118px;
  text-transform: uppercase;
}

@media (min-width:951px) {
  .nav .nav-new-launch {
    font-weight: 800;
    color: var(--red);
  }

  .people-card {
    min-height: 300px !important;
    padding: 28px 30px !important;
  }

  .people-card .field label {
    font-size: 16px !important;
  }

  .people-card .field input {
    font-size: 17px !important;
    padding: 15px 16px !important;
  }

  .people-list-head,.person-row {
    font-size: 17px !important;
  }

  .people-list-head {
    padding-top: 15px !important;
    padding-bottom: 13px !important;
  }

  .person-row {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .people-new {
    font-size: 16px !important;
    padding: 12px 20px !important;
  }

  .main:has(> .section) > .section {
    width: min(940px,82%) !important;
    max-width: none !important;
    padding: 24px 32px !important;
  }

  .main:has(> .section) > .section h2 {
    font-size: 24px !important;
  }

  .main:has(> .section) > .section .alert {
    font-size: 18px !important;
    padding: 13px 0 !important;
  }
}

@media (max-width:950px) {
  .people-toolbar {
    justify-content: stretch;
  }

  .people-new {
    width: 100%;
  }
}

.form-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.btn.btn-cancel {
  background: linear-gradient(145deg,#ef3b43,#c91620) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.42) !important;
}

.btn.btn-save {
  background: linear-gradient(145deg,#31a85b,#16833e) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.42) !important;
  box-shadow: 0 10px 24px rgba(22,131,62,.20),inset 0 1px 0 rgba(255,255,255,.28) !important;
}

@media (max-width:700px) {
  .form-actions {
    gap: 16px;
  }

  .form-actions .btn {
    flex: 1;
    min-width: 135px;
  }
}

@media (min-width:951px) {
  .main > .card,.main > .section,.main > .grid,.main > .content-grid,.main > .dashboard-mobile-flow {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .main > .card:not(.metric),.main > .section {
    width: min(100%, 1040px);
  }

  .content-grid {
    width: min(100%, 1180px) !important;
  }

  .main > .grid {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

@media (min-width:951px) {
  .main > .card,.main > section.card,.main > .grid,.main > .content-grid,.main > .dashboard-stats,.main > .dashboard-mobile-flow,.main > .section {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .launch-card,.people-card,.person-detail,.user-form-card,.community-form-card {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .content-grid {
    max-width: 1180px !important;
  }

  .main > .grid {
    max-width: 1180px;
  }
}

.card {
  text-align: center;
}

.card .table th,.card .table td {
  text-align: center;
}

.card .field label,.card .field input,.card .field select {
  text-align: center;
}

.card .form-actions,.card .community-actions,.card .people-toolbar {
  justify-content: center;
}

.card .empty,.card h2,.card p {
  text-align: center;
}

@media (min-width:951px) {
  .main > .dashboard-stats {
    margin-left: 0 !important;
    margin-right: 348px !important;
  }
}

/* ==================== 07. RELATÓRIOS ==================== */

.report-filters {
  max-width: 920px;
  margin: 0 auto 18px;
  padding: 18px 24px;
}

.report-filters h2 {
  margin: 0 0 14px;
}

.report-filter-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 16px;
  align-items: end;
}

.report-filter-grid .field {
  margin: 0;
}

.reports-metrics {
  max-width: 920px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.reports-communities {
  max-width: 920px !important;
  width: 100% !important;
  margin: 18px auto 0 !important;
}

@media (max-width:700px) {
  .report-filter-grid {
    grid-template-columns: 1fr;
  }

  .report-filters,.reports-communities {
    width: 100% !important;
  }

  .reports-metrics {
    width: 100% !important;
  }
}

.report-filter-grid .report-filter-field {
  width: 100%;
  min-width: 0;
}

.report-filter-grid .report-filter-field select,.report-filter-grid .report-filter-field input {
  width: 100%;
  height: 52px;
  text-align: center;
  text-align-last: center;
}

.launch-card .field label {
  font-size: 16px !important;
  line-height: 1.25;
}

.launch-card #forma {
  text-align: center !important;
  text-align-last: center !important;
}

.launch-card #forma option {
  text-align: center;
}

@media (min-width:951px) {
  .pill,.card,.action,.field input,.field select {
    background: rgba(255,255,255,.32);
  }

  .side {
    background: rgba(255,255,255,.29);
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    transform: translateZ(0);
    backface-visibility: hidden;
    contain: paint;
  }
}

@media (min-width:951px) {
  .side,.side .brand,.side .brand img,.side .nav,.side .version {
    transform: translateZ(0);
    backface-visibility: hidden;
  }
}

.report-filter-grid .report-filter-field select {
  border-radius: 14px !important;
}

.launch-row {
  cursor: pointer;
}

.launch-row:hover {
  background: rgba(255,255,255,.18);
}

#person .field label {
  text-align: center !important;
  width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#person #com {
  text-align: center !important;
  text-align-last: center !important;
}

#person #com option {
  text-align: center;
}

.people-list-head > span,.person-row > span,.person-row > b {
  text-align: center !important;
  justify-self: stretch;
}

.people-list-head > span:first-child,.person-row > span:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==================== 09. ESCALA ==================== */

.scale-card {
  max-width: 920px;
  margin: 0 auto;
  padding: 22px;
}

.scale-head {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  max-width: 520px;
  margin: 0 auto 20px;
}

.scale-head .field {
  margin: 0;
}

.scale-head select {
  text-align: center;
  text-align-last: center;
  border-radius: 14px;
}

.scale-list-head,.scale-day-row {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr .55fr;
  gap: 12px;
  align-items: center;
  text-align: center;
}

.scale-list-head {
  font-weight: 700;
  padding: 8px 14px;
}

.scale-day-row {
  width: 100%;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.12);
  padding: 12px 14px;
  cursor: pointer;
  color: inherit;
}

.scale-day-row:hover {
  background: rgba(255,255,255,.24);
}

.scale-day-row>span:first-child {
  display: flex;
  flex-direction: column;
}

.scale-day-row small {
  font-weight: 400;
  margin-top: 3px;
}

.scale-day-row strong {
  color: #c91525;
}

.scale-day-row.filled strong {
  color: #137a3b;
}

.scale-form-card {
  max-width: 620px;
  margin: 0 auto;
}

.scale-form-card select,.scale-form-card input {
  text-align: center;
  text-align-last: center;
}

@media (max-width:700px) {
  .scale-head {
    grid-template-columns: 1fr 1fr;
  }

  .scale-list-head {
    display: none;
  }

  .scale-day-row {
    grid-template-columns: 1fr 1fr;
    padding: 12px;
  }

  .scale-day-row strong {
    grid-column: 1/-1;
  }

  .scale-card {
    padding: 14px;
  }
}

.scale-servo-field {
  position: relative;
}

.scale-servo-field #scaleServoSearch {
  text-align: center !important;
}

.scale-servo-suggestions {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 30;
  margin-top: 6px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 14px 34px rgba(70,32,37,.16);
}

.scale-servo-suggestions.open {
  display: grid;
}

.scale-servo-option {
  border: 0;
  background: transparent;
  border-radius: 10px;
  padding: 10px 12px;
  cursor: pointer;
  text-align: left;
  color: inherit;
}

.scale-servo-option:hover {
  background: rgba(229,22,32,.08);
}

.scale-servo-option b,.scale-servo-option span {
  display: block;
}

.scale-servo-option span {
  font-size: 12px;
  color: var(--muted);
  margin-top: 2px;
}

.scale-servo-empty {
  padding: 10px;
  text-align: center;
  color: var(--muted);
}

.app-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(35,20,27,.34);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  animation: modalFade .16s ease-out;
}

.app-modal-overlay.closing {
  opacity: 0;
  transition: opacity .14s ease;
}

.app-modal {
  width: min(460px,calc(100vw - 32px));
  padding: 26px 24px 22px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 24px 70px rgba(48,24,34,.24);
  text-align: center;
  color: var(--ink);
  backdrop-filter: blur(22px);
  -webkit-backdrop-filter: blur(22px);
  animation: modalPop .18s ease-out;
}

.app-modal-icon {
  font-size: 34px;
  line-height: 1;
  margin-bottom: 10px;
}

.app-modal h3 {
  margin: 0 0 9px;
  font-size: 22px;
}

.app-modal p {
  margin: 0 auto 22px;
  max-width: 360px;
  font-size: 16px;
  line-height: 1.45;
}

.app-modal-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.app-modal-actions .btn {
  min-width: 130px;
}

.app-modal-success .app-modal-icon {
  filter: saturate(.9);
}

@keyframes modalFade{from{opacity:0}to{opacity:1}}

@keyframes modalPop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

@media (max-width:600px) {
  .app-modal {
    padding: 22px 18px 18px;
    border-radius: 20px;
  }

  .app-modal-actions {
    gap: 10px;
  }

  .app-modal-actions .btn {
    flex: 1;
    min-width: 120px;
  }
}

.person-detail-head {
  position: relative;
  min-height: 48px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin-bottom: 10px;
  padding-top: 2px;
}

.person-detail-head .back-link {
  position: absolute;
  left: 0;
  top: 0;
  padding: 8px 10px;
  text-align: left;
}

.person-detail-head .person-name {
  margin: 4px 150px 0;
  font-size: clamp(20px,2vw,28px);
  line-height: 1.2;
  text-align: center;
  word-break: break-word;
}

@media (max-width:700px) {
  .person-detail-head {
    padding-top: 44px;
  }

  .person-detail-head .back-link {
    left: 0;
    top: 0;
  }

  .person-detail-head .person-name {
    margin: 0;
    font-size: 20px;
  }
}

@media (min-width:951px) {
  body::after {
    background-image: linear-gradient(rgba(248,244,244,.18),rgba(248,244,244,.18)),
        url("../assets/paroquia-fundo-horizontal-v013.jpeg") !important;
    filter: brightness(.86) saturate(.78) !important;
    -webkit-filter: brightness(.86) saturate(.78) !important;
  }

  .card {
    background: rgba(255,255,255,.52) !important;
  }

  .metric {
    background: rgba(255,255,255,.53) !important;
  }

  .quick-card {
    background: rgba(255,255,255,.49) !important;
  }

  .action {
    background: rgba(255,255,255,.38) !important;
  }

  .dashboard-lower aside .card {
    background: rgba(255,255,255,.50) !important;
  }

  .pill,.card,.field input,.field select {
    -webkit-backdrop-filter: blur(9px) saturate(108%) !important;
    backdrop-filter: blur(9px) saturate(108%) !important;
  }
}

.report-actions {
  display: flex;
  justify-content: center;
  margin-top: 16px;
}

.report-actions .btn {
  min-width: 180px;
}

.reminder-action {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.reminder-action:hover {
  font-weight: 700;
}

.reminder-list-modal {
  width: min(650px,calc(100vw - 32px));
  max-height: min(78vh,720px);
  overflow: hidden;
}

.reminder-list-content {
  display: grid;
  gap: 8px;
  max-height: 52vh;
  overflow: auto;
  margin: 14px 0 20px;
  text-align: left;
}

.reminder-person {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 10px;
  border-bottom: 1px solid rgba(159,80,84,.14);
}

.reminder-person>div {
  display: grid;
  gap: 4px;
}

.reminder-person span {
  font-size: 13px;
  color: var(--muted);
}

.birthday-message-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 12px;
  border-radius: 14px;
  background: #1f9d55;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

.birthday-no-phone {
  white-space: nowrap;
}

@media (max-width:600px) {
  .reminder-person {
    align-items: flex-start;
    flex-direction: column;
  }

  .birthday-message-btn {
    width: 100%;
  }
}

.birthday-today {
  background: rgba(31,157,85,.10);
  border-radius: 16px;
  box-shadow: inset 3px 0 0 rgba(31,157,85,.75);
}

.nav button {
  display: flex;
  align-items: center;
  gap: 9px;
}

.nav-icon {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}

.report-filters-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  font-size: 20px;
  font-weight: 800;
  list-style: none;
  user-select: none;
}

.report-filters-summary::-webkit-details-marker {
  display: none;
}

.report-filters[open] .report-filters-summary {
  margin-bottom: 16px;
}

.filter-chevron {
  display: inline-block;
  font-size: 22px;
  line-height: 1;
  transition: transform .18s ease;
}

.report-filters[open] .filter-chevron {
  transform: rotate(180deg);
}

@media (max-width:950px) {
  .card {
    background: rgba(255,255,255,.64) !important;
  }

  .mobilebar .launch-center {
    color: #fff !important;
    font-weight: 850 !important;
    background: linear-gradient(145deg,#ef3038,#c91620) !important;
    box-shadow: 0 8px 20px rgba(201,22,32,.24),inset 0 1px 0 rgba(255,255,255,.28) !important;
  }

  .report-filters {
    padding: 15px 18px !important;
    margin-bottom: 14px !important;
  }

  .report-filters:not([open]) {
    min-height: 58px;
    display: block;
  }

  .report-filters:not([open]) .report-filters-summary {
    min-height: 26px;
  }
}

.scale-summary {
  display: none;
}

.scale-content {
  display: block;
}

@media (max-width:950px) {
  body::before {
    content: none !important;
    display: none !important;
  }

  body::after {
    opacity: 1 !important;
  }

  .scale-collapsible {
    padding: 0 !important;
    overflow: hidden;
  }

  .scale-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    list-style: none;
    cursor: pointer;
    padding: 18px 20px;
    font-size: 20px;
    font-weight: 800;
    user-select: none;
  }

  .scale-summary::-webkit-details-marker {
    display: none;
  }

  .scale-chevron {
    font-size: 23px;
    line-height: 1;
    transition: transform .18s ease;
  }

  .scale-collapsible[open] .scale-chevron {
    transform: rotate(180deg);
  }

  .scale-content {
    padding: 0 14px 14px;
  }

  .scale-collapsible:not([open]) .scale-content {
    display: none;
  }
}

@media (max-width:950px) {
  .dashboard-stats {
    display: none !important;
  }

  .dashboard-mobile-flow {
    margin-top: 0 !important;
  }

  .dashboard-mobile-flow .reminders-card {
    order: 1;
  }
}

@media (max-width:950px) {
  body {
    background: transparent !important;
  }

  body::after {
    inset: 0 !important;
  }
}

/* ==================== 10. MOBILE, ÍCONES E SAFE AREA ==================== */

@media (max-width:950px) {
  .mobilebar {
    min-height: 64px !important;
    padding: 6px 5px calc(6px + env(safe-area-inset-bottom)) !important;
    align-items: center !important;
  }

  .mobilebar button {
    min-width: 0 !important;
    min-height: 50px !important;
    padding: 4px 2px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    border-radius: 15px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
  }

  .mobile-nav-icon {
    width: 21px !important;
    height: 21px !important;
    min-width: 21px !important;
    min-height: 21px !important;
    max-width: 21px !important;
    max-height: 21px !important;
    display: grid !important;
    place-items: center !important;
    color: currentColor !important;
    flex: 0 0 21px !important;
  }

  .mobile-nav-icon svg {
    display: block !important;
    width: 21px !important;
    height: 21px !important;
    max-width: 21px !important;
    max-height: 21px !important;
    overflow: visible !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
  }

  .mobile-nav-label {
    display: block !important;
    white-space: nowrap !important;
  }

  .mobilebar .launch-center {
    min-height: 54px !important;
    margin: -5px 4px 0 !important;
    padding: 5px 3px !important;
    border-radius: 18px !important;
    font-size: 11.5px !important;
    gap: 2px !important;
  }

  .mobilebar .launch-center .mobile-nav-icon,.mobilebar .launch-center .mobile-nav-icon svg {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
  }

  .main {
    padding-bottom: calc(108px + env(safe-area-inset-bottom)) !important;
  }
}

@media (max-width:950px) {
  html {
    min-height: 100% !important;
    background-color: #d9b8b3 !important;
    background-image: url("../assets/paroquia-fundo-estilizado.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
  }

  body::after {
    background: url("../assets/paroquia-fundo-estilizado.png") center center/cover no-repeat !important;
  }

  #app,.app,.main {
    background: transparent !important;
  }
}

/* ==================== 06. LANÇAMENTOS — FLUXO E EDIÇÃO ==================== */

.launch-recent-card {
  margin-top: 18px;
}

.launch-recent-card h2 {
  text-align: center;
  margin: 0 0 12px;
}

.launch-edit-list {
  display: grid;
}

.launch-edit-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 13px 4px;
  border: 0;
  border-bottom: 1px solid rgba(159,80,84,.14);
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.launch-edit-row:last-child {
  border-bottom: 0;
}

.launch-edit-row span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.launch-edit-row small {
  margin-top: 3px;
  color: var(--muted);
}

.launch-edit-row strong {
  white-space: nowrap;
}

.launch-edit-row i {
  font-style: normal;
  color: var(--red);
  font-weight: 750;
  font-size: 13px;
}

.launch-review-data {
  display: grid;
  gap: 0;
  margin: 6px 0 22px;
  text-align: left;
}

.launch-review-data>div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(159,80,84,.14);
}

.launch-review-data span {
  color: var(--muted);
}

.launch-review-data b {
  text-align: right;
}

.launch-edit-modal .field {
  text-align: left;
  margin: 12px 0;
}

.mobile-version {
  display: none;
}

@media (max-width:950px) {
  .launch-card {
    margin-top: 0;
  }

  .launch-recent-card {
    margin-bottom: 10px;
  }

  .mobile-version {
    text-align: center;
    color: rgba(70,50,52,.58);
    font-size: 11px;
    padding: 10px 0 calc(6px + env(safe-area-inset-bottom));
    margin-bottom: 82px;
  }

  .launch-edit-row {
    grid-template-columns: minmax(0,1fr) auto;
  }

  .launch-edit-row i {
    grid-column: 2;
    justify-self: end;
  }

  .launch-review-modal .app-modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .launch-review-modal .app-modal-actions .btn {
    min-width: 0;
  }
}

.launch-edit-actions {
  flex-wrap: wrap;
}

.btn-delete-launch {
  background: rgba(220,38,38,.08);
  border: 1px solid rgba(220,38,38,.38);
  color: #d51f2b;
}

@media (max-width:760px) {
  .launch-edit-actions .btn {
    min-width: 0;
    flex: 1 1 30%;
  }
}

.mobile-app-version {
  display: none;
}

.week-collapsible>summary {
  list-style: none;
}

.week-collapsible>summary::-webkit-details-marker {
  display: none;
}

.week-collapsible .week-chevron {
  display: none;
}

@media (min-width:951px) {
  .week-collapsible>summary {
    pointer-events: none;
  }

  .week-collapsible>summary .week-chevron {
    display: none;
  }

  .week-collapsible:not([open])>.week-list {
    display: block;
  }

  .week-collapsible>summary span:first-child {
    display: block;
    text-align: center;
    font-size: 20px;
    font-weight: 800;
    margin-bottom: 12px;
  }
}

@media (max-width:950px) {
  html,body {
    background-size: cover !important;
    background-repeat: no-repeat !important;
    background-position: center top !important;
  }

  .week-collapsible {
    padding: 0 !important;
    overflow: hidden;
  }

  .week-collapsible>summary {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 22px;
    cursor: pointer;
    font-size: 20px;
    font-weight: 800;
    user-select: none;
  }

  .week-collapsible .week-chevron {
    display: block;
    font-size: 22px;
    line-height: 1;
    transition: transform .18s ease;
  }

  .week-collapsible[open] .week-chevron {
    transform: rotate(180deg);
  }

  .week-collapsible>.week-list {
    padding: 0 18px 16px;
  }

  .week-collapsible:not([open])>.week-list {
    display: none;
  }

  .dashboard-mobile-flow .week-card {
    order: 2;
  }

  .mobile-app-version {
    display: block;
    text-align: center;
    color: rgba(70,50,52,.55);
    font-size: 10px;
    padding: 12px 0 6px;
    margin-bottom: 74px;
  }

  .mobile-version {
    display: none !important;
  }
}

/* ==================== 11. PERFIL SERVO ==================== */

.user-test-servo {
  margin-left: 8px;
  border: 1px solid rgba(211,47,47,.28);
  background: rgba(255,255,255,.58);
  color: var(--red);
  border-radius: 999px;
  padding: 5px 9px;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
}

.servo-exit {
  background: rgba(255,255,255,.46);
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 999px;
  padding: 8px 12px;
  color: #6d5555;
  font-weight: 700;
}

.servo-home-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.servo-home-card {
  text-align: left;
  border: 0;
  color: inherit;
  cursor: pointer;
  padding: 24px;
}

.servo-home-card h2 {
  margin: 5px 0 16px;
}

.servo-card-kicker {
  font-size: 26px;
}

.servo-card-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-top: 1px solid rgba(90,55,55,.09);
}

.servo-card-row span {
  color: #756565;
}

.servo-home-card>strong {
  display: block;
  text-transform: capitalize;
  color: #756565;
}

.servo-home-card>p {
  font-size: 18px;
  margin: 8px 0 0;
}

.servo-list-card {
  max-width: 820px;
}

.servo-scale-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 17px 4px;
  border-bottom: 1px solid rgba(90,55,55,.1);
}

.servo-scale-row div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.servo-scale-row span {
  color: #786868;
  text-transform: capitalize;
}

.servo-scale-row strong {
  color: var(--red);
}

.servo-filter {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 18px;
}

@media (max-width:950px) {
  .servo-app .side {
    display: none;
  }

  .servo-main {
    padding-bottom: 108px;
  }

  .servo-home-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .servo-home-card {
    padding: 22px;
  }

  .servo-top {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 10px;
  }

  .servo-top>div {
    min-width: 0;
  }

  .servo-top h1 {
    font-size: 26px;
  }

  .servo-top p {
    font-size: 14px;
  }

  .servo-exit {
    font-size: 12px;
    flex: 0 0 auto;
  }

  .servo-list-card {
    padding: 20px;
  }

  .servo-scale-row {
    padding: 16px 2px;
  }

  .servo-filter {
    grid-template-columns: 1fr 1fr;
  }

  .servo-mobilebar .mobile-nav-icon svg {
    width: 21px !important;
    height: 21px !important;
  }
}

.scale-day-group {
  padding: 14px 0;
  border-bottom: 1px solid rgba(80,50,50,.12);
}

.scale-day-date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 4px 10px;
}

.scale-day-date span {
  display: flex;
  flex-direction: column;
}

.scale-day-date small {
  font-weight: 400;
  opacity: .72;
  margin-top: 2px;
}

.scale-add-btn {
  border: 0;
  background: transparent;
  color: #c52b31;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  padding: 8px 4px;
}

.scale-day-entries {
  display: grid;
  gap: 7px;
}

.scale-entry,.scale-empty-day {
  display: grid;
  grid-template-columns: 1.25fr 1fr auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(120,80,80,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.28);
  font: inherit;
  text-align: left;
  color: inherit;
}

.scale-entry strong {
  color: #c52b31;
  font-size: .88rem;
}

.scale-entry span:first-child {
  display: flex;
  gap: 8px;
  align-items: center;
}

.scale-empty-day {
  opacity: .6;
}

@media (max-width:700px) {
  .scale-day-group {
    padding: 12px 0;
  }

  .scale-entry,.scale-empty-day {
    grid-template-columns: 1.2fr 1fr auto;
    padding: 10px 8px;
    font-size: .9rem;
  }

  .scale-add-btn {
    font-size: .92rem;
  }
}

.scale-current-year {
  font-weight: 600;
  color: inherit;
  opacity: .82;
}

.btn-delete-scale {
  background: rgba(210,35,45,.08);
  border: 1px solid rgba(210,35,45,.35);
  color: #c51622;
}

@media (max-width:700px) {
  .scale-form-card .form-actions .btn {
    min-width: 0;
  }
}

.scale-form-card .form-actions {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
}

.scale-form-card .form-actions .btn {
  width: 100%;
  min-width: 0;
  min-height: 58px;
  padding: 12px 10px;
  color: #fff !important;
  font-size: 16px;
  line-height: 1.15;
  text-align: center;
}

.scale-form-card .btn-delete-scale {
  background: linear-gradient(145deg,#e8343e,#bd1520) !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(189,21,32,.18),inset 0 1px 0 rgba(255,255,255,.24) !important;
}

@media (max-width:700px) {
  .scale-form-card .form-actions {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
  }

  .scale-form-card .form-actions .btn {
    min-height: 56px;
    font-size: 15px;
    padding: 10px 6px;
  }
}

.servo-back {
  border: 1px solid rgba(255,255,255,.72);
  background: rgba(255,255,255,.42);
  color: #6d5555;
  border-radius: 999px;
  padding: 7px 12px;
  margin: 0 0 8px;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

@media (max-width:950px) {
  .servo-top:has(.servo-back)>div {
    width: 100%;
  }
}

.servo-people-card {
  max-width: 820px;
}

.servo-people-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.servo-person-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 4px;
  border-bottom: 1px solid rgba(90,55,55,.10);
}

.servo-person-row div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.servo-person-row span {
  font-size: 13px;
  color: var(--muted);
}

.servo-person-row {
  width: 100%;
  background: transparent;
  border: 0;
  text-align: left;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.servo-person-row i {
  font-style: normal;
  font-weight: 800;
  color: var(--accent,#d71920);
  font-size: 13px;
}

@media (max-width:950px) {
  html,body,#app,.app {
    min-height: 100dvh !important;
  }

  body::after {
    content: "" !important;
    display: block !important;
    position: fixed !important;
    z-index: 0 !important;
    pointer-events: none !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    background-color: #d9b8b3 !important;
    background-image: url("../assets/paroquia-fundo-estilizado.png") !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
    background-attachment: scroll !important;
    filter: none !important;
    -webkit-filter: none !important;
  }

  #app {
    z-index: 1 !important;
  }

  .app,.main {
    background: transparent !important;
  }

  .main {
    padding-top: max(calc(18px + env(safe-area-inset-top)),58px) !important;
  }

  .mobilebar {
    padding-bottom: max(calc(8px + env(safe-area-inset-bottom)),12px) !important;
  }
}

@media (max-width:950px) {
  html,body {
    width: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    background-color: #efd9d5 !important;
    background-attachment: scroll !important;
  }

  body {
    overflow-x: hidden !important;
  }

  body::before,body::after {
    background: none !important;
    background-image: none !important;
  }

  #app,.app,.main,.servo-main {
    background: transparent !important;
    background-image: none !important;
  }

  .main,.servo-main {
    box-sizing: border-box !important;
    padding-top: 70px !important;
  }

  body:has(.people-card) .main {
    padding-top: 70px !important;
  }

  .top,.servo-top {
    margin-top: 0 !important;
  }
}

@media (max-width:950px) {
  html {
    background: #d9b8b3 !important;
  }

  body {
    background-color: #d9b8b3 !important;
    background-image: linear-gradient(rgba(239,217,213,.34),rgba(239,217,213,.34)),
        url("../assets/paroquia-fundo-mobile.jpeg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
  }

  body::before,body::after {
    content: none !important;
    display: none !important;
  }
}

@media (max-width:950px) {
  html,body {
    background: #70578f !important;
    background-image: none !important;
  }

  body {
    position: relative !important;
    min-height: 100dvh !important;
  }

  #app {
    position: relative !important;
    min-height: 100dvh !important;
    isolation: isolate !important;
    background: transparent !important;
  }

  #app::before {
    content: "" !important;
    display: block !important;
    position: fixed !important;
    top: -120px !important;
    right: 0 !important;
    bottom: -120px !important;
    left: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background-image: linear-gradient(rgba(239,217,213,.30),rgba(239,217,213,.30)),
        url("../assets/paroquia-fundo-mobile.jpeg") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    transform: translateZ(0);
  }

  .main,.servo-main,body:has(.people-card) .main {
    padding-top: 70px !important;
    background: transparent !important;
  }

  .app,.main,.servo-main {
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
  }
}

.servo-guidance-cards {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 820px;
}

.servo-guidance-cards .servo-home-card {
  width: 100%;
  min-height: 0;
  padding: 18px 20px;
  text-align: left;
}

.servo-launch-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg,#ef1f2d,#d90f20) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.6) !important;
  box-shadow: 0 12px 28px rgba(218,15,32,.2);
}

.servo-launch-card h2,.servo-info-card h2 {
  margin: 0 0 4px;
  font-size: 22px;
}

.servo-launch-card .servo-card-subtitle {
  color: rgba(255,255,255,.9);
}

.servo-launch-arrow {
  font-size: 36px;
  line-height: 1;
  font-weight: 300;
}

.servo-info-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 14px;
  cursor: default !important;
}

.servo-card-content {
  min-width: 0;
}

.servo-card-subtitle {
  margin: 0;
  color: #756565;
  font-size: 15px;
  line-height: 1.35;
}

.servo-info-highlight {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid rgba(90,55,55,.1);
}

.servo-info-highlight b {
  font-size: 16px;
  text-transform: none;
}

.servo-info-highlight span {
  font-size: 14px;
  color: #756565;
}

.servo-context-message {
  margin: 12px 0 0;
  padding-top: 11px;
  border-top: 1px solid rgba(90,55,55,.1);
  color: #756565;
  font-size: 15px;
  line-height: 1.35;
}

@media (max-width:950px) {
  .servo-guidance-cards .servo-home-card {
    border-radius: 24px;
  }

  .servo-launch-card h2,.servo-info-card h2 {
    font-size: 20px;
  }

  .servo-guidance-cards .servo-card-kicker {
    font-size: 23px;
  }

  .servo-card-subtitle,.servo-context-message {
    font-size: 14px;
  }

  .servo-info-highlight b {
    font-size: 15px;
  }

  .servo-info-highlight span {
    font-size: 13px;
  }
}

.servo-guidance-cards {
  gap: 20px;
}

.servo-nav-card {
  grid-template-columns: auto 1fr auto !important;
  align-items: center !important;
  cursor: pointer !important;
}

.servo-card-arrow {
  font-size: 32px;
  line-height: 1;
  font-weight: 300;
  color: #7b6767;
  align-self: center;
}

.servo-nav-card:active {
  transform: scale(.992);
}

@media (max-width:950px) {
  .servo-guidance-cards {
    gap: 18px !important;
  }

  .servo-guidance-cards .servo-home-card {
    padding: 18px 20px !important;
  }
}

@media (max-width:950px) {
  .servo-mobilebar {
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
  }

  .servo-mobilebar button {
    min-width: 0 !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
  }

  .servo-mobilebar .launch-center {
    grid-column: 3 !important;
    min-width: 86px !important;
    margin-inline: auto !important;
  }

  .servo-mobilebar .mobile-nav-label {
    font-size: 9.5px !important;
  }
}

.servo-launch-card .servo-card-kicker {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  filter: none !important;
}

/* ==================== 12. AJUSTES RECENTES / COMPATIBILIDADE ==================== */

.admin-dizimistas-card {
  width: 100%;
  display: none;
  align-items: center;
  gap: 14px;
  text-align: left;
  color: inherit;
  cursor: pointer;
  border: 1px solid rgba(255,255,255,.72);
  padding: 18px 22px;
}

.admin-dizimistas-icon {
  font-size: 28px;
  flex: 0 0 auto;
}

.admin-dizimistas-copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}

.admin-dizimistas-copy b {
  font-size: 22px;
}

.admin-dizimistas-copy small {
  font-size: 15px;
  color: var(--muted);
}

.admin-dizimistas-arrow {
  font-size: 34px;
  line-height: 1;
  color: var(--muted);
}

.launch-admin-edit {
  margin-left: auto;
  padding: 10px 16px;
  min-height: auto;
}

.launch-audit-note {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.28);
  color: var(--muted);
  font-size: 14px;
}

.launch-audit-note b {
  color: var(--ink);
}

.launch-audit-note small {
  display: block;
  margin-top: 4px;
  font-size: 12px;
}

.launch-audit-list {
  display: block;
  margin-top: 4px !important;
  font-size: 11px !important;
  color: var(--muted) !important;
}

@media (max-width:950px) {
  .dashboard-mobile-flow .admin-dizimistas-card {
    display: flex;
    order: 3;
    margin: 0;
  }

  .dashboard-mobile-flow .recent-card {
    order: 4;
  }

  .admin-dizimistas-card {
    padding: 15px 18px;
  }

  .admin-dizimistas-copy b {
    font-size: 19px;
  }

  .admin-dizimistas-copy small {
    font-size: 13px;
  }

  .launch-detail .person-detail-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
  }

  .launch-admin-edit {
    margin-left: 0;
  }
}

@media (max-width:520px) {
  .people-list .person-row {
    min-height: 68px;
    padding: 18px 2px;
    align-items: center;
  }

  .people-list .person-row b {
    font-size: 13px;
  }
}

.launch-sync-status {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  margin-top: 5px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

.launch-sync-status.pending {
  color: #9a6700 !important;
}

.launch-sync-status.local {
  color: #246b45 !important;
}

.launch-sync-detail {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 13px;
  font-size: 13px;
  font-weight: 700;
}

.launch-sync-detail.pending {
  background: rgba(255,193,7,.16);
  color: #825900;
  border: 1px solid rgba(183,126,0,.18);
}

.launch-sync-detail.local {
  background: rgba(35,139,82,.12);
  color: #1f6b42;
  border: 1px solid rgba(35,139,82,.16);
}

.servo-offline-banner {
  position: relative;
  z-index: 3;
  margin: 0 auto 12px;
  max-width: 720px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(255,244,205,.92);
  border: 1px solid rgba(154,103,0,.18);
  color: #6f4d00;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
}

@media (max-width:950px) {
  .servo-offline-banner {
    margin-top: 2px;
    margin-bottom: 10px;
    font-size: 12px;
  }
}


/* Rodapé de versão — correção v0.1.96-beta */
@media (max-width:950px){
  .mobile-app-version{
    display:block !important;
    position:fixed !important;
    left:50% !important;
    bottom:calc(72px + env(safe-area-inset-bottom)) !important;
    transform:translateX(-50%) !important;
    z-index:80 !important;
    width:auto !important;
    margin:0 !important;
    padding:3px 9px !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.68) !important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    color:rgba(70,50,52,.72) !important;
    font-size:10px !important;
    line-height:1.2 !important;
    pointer-events:none !important;
  }
}
@media (min-width:951px){
  .side .version{display:block !important;}
}


/* Área discreta para limpeza dos dados de teste — v0.1.101-beta */
.test-reset-zone{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:4px 4px 0;padding:4px 2px;color:rgba(90,70,72,.62);font-size:11px}.test-reset-btn{appearance:none;border:1px solid rgba(165,45,55,.22);background:rgba(255,255,255,.28);color:rgba(145,38,48,.72);border-radius:999px;padding:6px 10px;font:inherit;font-weight:700;cursor:pointer}.test-reset-btn:hover{background:rgba(180,35,45,.08);color:#9f2630}@media(max-width:950px){.test-reset-zone{justify-content:center;margin:8px 0 86px;font-size:10px}.test-reset-btn{padding:5px 9px}}

/* ================================================================
   BACKUP PROTEGIDO — v0.1.103-beta
   ================================================================ */
.backup-password-modal{max-width:520px;text-align:left}
.backup-password-modal .app-modal-icon,.backup-password-modal h3,.backup-password-modal>p{text-align:center}
.backup-password-modal .field{margin-top:14px}
.backup-password-modal .field label{display:block;margin-bottom:6px;font-weight:700}
.backup-password-modal .field input{width:100%}
.backup-password-warning{display:block;margin-top:12px;line-height:1.45;color:var(--muted,#6b6b6b)}
.backup-password-error{margin-top:10px;padding:9px 11px;border-radius:10px;background:rgba(183,28,28,.09);color:#a41515;font-weight:700;font-size:.9rem}
@media(max-width:560px){.backup-password-modal{width:min(94vw,520px)}.backup-password-modal .app-modal-actions{flex-direction:column-reverse}.backup-password-modal .app-modal-actions .btn{width:100%}}

/* ================================================================
   LOGIN ADMINISTRADOR — v0.1.107-beta
   ================================================================ */
.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(112,87,143,.12),rgba(255,255,255,.92)),url('../assets/paroquia-fundo-desktop-novo.jpeg') center/cover no-repeat}
.login-card{width:min(430px,94vw);padding:28px;border:1px solid rgba(255,255,255,.7);border-radius:26px;background:rgba(255,255,255,.88);box-shadow:0 24px 70px rgba(60,40,70,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.login-brand{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:18px}.login-brand img{max-height:72px;max-width:44%;object-fit:contain}.login-card h1{text-align:center;margin:0 0 6px}.login-card>p{text-align:center;margin:0 0 24px;color:var(--muted,#6b6b6b)}.login-form .field{margin-bottom:14px}.login-form label{display:block;margin-bottom:6px;font-weight:700}.login-form input{width:100%;text-align:center}.login-submit{width:100%;margin-top:4px}.login-error{margin:4px 0 12px;padding:10px 12px;border-radius:10px;background:rgba(183,28,28,.09);color:#a41515;font-weight:700;text-align:center}.login-card>small{display:block;margin-top:18px;text-align:center;color:var(--muted,#777)}
.top-actions{display:flex;align-items:center;gap:10px}.header-logout{border:1px solid rgba(165,45,55,.25);background:rgba(255,255,255,.52);color:#9f2630;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}.header-logout:hover{background:rgba(165,45,55,.08)}
@media(max-width:650px){.login-page{padding:16px;background-image:linear-gradient(135deg,rgba(112,87,143,.1),rgba(255,255,255,.9)),url('../assets/paroquia-fundo-mobile.jpeg')}.login-card{padding:22px 18px}.login-brand img{max-height:62px}.top-actions .pill{display:none}.header-logout{padding:7px 10px}}

/* v0.1.107-beta — D1 e privacidade do Servo */
.servo-privacy-note{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-bottom:18px;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(112,87,143,.08);
  border:1px solid rgba(112,87,143,.16);
}
.servo-privacy-note b{color:#5f477b;font-size:14px}
.servo-privacy-note span{color:#675d6f;font-size:13px;line-height:1.45}
.launch-sync-status.synced{color:#246b45 !important}
.launch-sync-detail.synced{background:rgba(36,107,69,.1);color:#246b45}
.d1-status-card{margin-top:18px;max-width:900px}
.d1-status-card p{margin:8px 0 0;color:#70656f;line-height:1.55}
