:root{--bg:#f7ffe8;--card:#fffef6;--text:#1d2a12;--muted:#647243;--line:#e5e8b7;--brand:#157a36;--brand2:#f3c316;--brand3:#0f5f2c;--gold:#f6d65b;--ok:#166534;--warn:#8a6a00;--bad:#991b1b;--shadow:0 20px 45px rgba(21,122,54,.14)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top left,#fff7b8,#f7ffe8 38%,#ffffff 100%);color:var(--text)}button,.file-btn{border:0;border-radius:15px;padding:11px 14px;font-weight:800;cursor:pointer;background:#f4edb5;color:var(--text);display:inline-flex;gap:8px;align-items:center;text-decoration:none}button:hover,.file-btn:hover{filter:brightness(.98);transform:translateY(-1px)}.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#ffffff;text-shadow:0 1px 1px rgba(0,0,0,.18)}.danger-soft{background:#fee2e2;color:var(--bad)}.full{width:100%;justify-content:center}.logo{width:46px;height:46px;border-radius:16px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:white;font-size:24px;box-shadow:var(--shadow);border:2px solid rgba(255,255,255,.65)}.logo.big{width:72px;height:72px;font-size:38px;margin:auto}.login-screen{position:fixed;inset:0;z-index:99;background:radial-gradient(circle at top,#fff5a3 0,#f3c316 26%,#157a36 76%);display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%);background:rgba(255,255,255,.95);border-radius:28px;padding:28px;box-shadow:var(--shadow)}.login-card h1{text-align:center;margin:10px 0}.login-card p{text-align:center;color:var(--muted)}label{font-weight:800;font-size:13px;color:var(--muted);display:block;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:15px;padding:12px;background:white;font-size:14px}textarea{min-height:96px;resize:vertical}.hint{margin-top:12px;color:var(--muted);font-size:13px}.app-header{position:sticky;top:0;z-index:10;background:rgba(247,255,232,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 22px;gap:14px}.brand{display:flex;align-items:center;gap:12px}.brand h1{font-size:22px;margin:0}.brand span{font-size:12px;color:var(--muted);font-weight:800}.top-actions,.actions,.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 75px)}.sidebar{padding:18px;border-right:1px solid var(--line);background:rgba(255,255,255,.45)}.nav{width:100%;justify-content:flex-start;margin-bottom:8px;background:transparent}.nav.active{background:linear-gradient(135deg,var(--brand),var(--brand2));color:white;text-shadow:0 1px 1px rgba(0,0,0,.15)}.content{padding:20px;max-width:1300px;width:100%;margin:auto}.tab-page{display:none}.tab-page.active{display:block}.hero{border-radius:30px;padding:28px;background:linear-gradient(135deg,#0f5f2c,#157a36 58%,#f3c316);color:white;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:var(--shadow)}.hero h2{font-size:30px;margin:0 0 6px}.hero p{margin:0;opacity:.9}.cards{display:grid;gap:16px;margin-top:16px}.four{grid-template-columns:repeat(4,1fr)}.three{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr 1fr}.metric,.panel,.team-card{background:rgba(255,255,255,.93);border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow)}.metric span{color:var(--muted);font-weight:800;font-size:13px}.metric b{display:block;font-size:34px;margin-top:8px}.panel h2,.panel h3{margin-top:0}.toolbar{margin-bottom:14px}.toolbar h2{min-width:250px;text-align:center;text-transform:uppercase}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dayname{text-align:center;color:var(--muted);font-weight:900;font-size:12px}.day{min-height:118px;background:white;border:1px solid var(--line);border-radius:18px;padding:9px}.day.today{outline:3px solid rgba(21,122,54,.24);background:#fffde8}.day.empty{opacity:.32}.num{font-weight:900}.event{margin-top:6px;background:#fffbea;border-left:4px solid var(--brand);border-radius:12px;padding:7px;font-size:12px;cursor:pointer}.event b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-size:12px;color:var(--muted)}.list{display:grid;gap:10px}.item{background:white;border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;justify-content:space-between;gap:10px}.item h3{margin:0 0 5px}.pill{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;background:#fff3b0;color:var(--warn);white-space:nowrap}.ok{background:#dcfce7;color:var(--ok)}.bad{background:#fee2e2;color:var(--bad)}.notice{border:1px dashed #d5c04d;background:#fffce6;border-radius:18px;padding:14px;color:#416226;line-height:1.5}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.file-btn input{display:none}.vote-actions button{padding:8px 10px;font-size:12px}.publico .admin-only,.publico #evento,.publico #equipes,.publico #votacoes,.publico #solicitacoes,.publico #config{display:none!important}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px}.nav{min-width:max-content;margin:0}.content{padding:12px}.four,.three,.two,.grid2,.grid3{grid-template-columns:1fr}.app-header{align-items:flex-start}.top-actions{justify-content:flex-end}.hero{display:block}.calendar{gap:5px}.day{min-height:88px;border-radius:14px;padding:6px}.event{padding:5px}.brand h1{font-size:18px}.toolbar h2{min-width:unset;width:100%;order:-1}.toolbar input{width:100%}}
@media print{.app-header,.sidebar,.toolbar button,.actions,.top-actions{display:none}.layout{display:block}.content{padding:0}.panel,.metric{box-shadow:none}.tab-page{display:block}.login-screen{display:none!important}}


/* Tema Nossa Senhora Aparecida — somente aparência */
.brand h1::after{content:"  • Nossa Senhora Aparecida";font-size:13px;color:var(--brand);font-weight:900;margin-left:6px}
.login-card{border:1px solid rgba(246,214,91,.75)}
.login-card h1::after{content:"\A Comunidade Nossa Senhora Aparecida";white-space:pre;display:block;font-size:14px;color:var(--brand);margin-top:6px}
.sidebar{background:linear-gradient(180deg,rgba(255,253,230,.84),rgba(239,255,220,.72))}
.panel,.metric,.team-card,.day,.item{background:rgba(255,255,248,.94)}
.calendar{position:relative;isolation:isolate;padding:10px;border-radius:26px;background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(247,255,232,.7));border:1px solid rgba(229,232,183,.9)}
.calendar::before{content:"";position:absolute;inset:0;z-index:-1;background-repeat:no-repeat;background-position:center;background-size:min(360px,58%);opacity:.105;pointer-events:none;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 420 520"><g fill="none" stroke="%23157a36" stroke-width="10" stroke-linecap="round" stroke-linejoin="round"><path d="M210 70c38 0 68 31 68 70 0 27-15 51-37 63"/><path d="M179 203c-23-13-37-36-37-63 0-39 30-70 68-70"/><path d="M145 206c-50 36-79 102-92 205 51 32 104 48 157 48s106-16 157-48c-13-103-42-169-92-205"/><path d="M116 390c63 35 126 35 189 0"/><path d="M124 272c58 28 115 28 172 0"/><path d="M160 120c-31-22-51-49-60-80 32 15 68 21 110 21s78-6 110-21c-9 31-29 58-60 80"/><path d="M178 178c20 18 44 18 64 0"/><path d="M210 205v185"/><path d="M188 244h44"/></g><circle cx="210" cy="145" r="32" fill="%23f3c316" opacity=".75"/></svg>')}
.day{position:relative;z-index:1;backdrop-filter:blur(1.5px)}
.day::after{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.58),rgba(255,255,255,.18));pointer-events:none;z-index:-1}
.dayname{color:#446b2a;letter-spacing:.03em}.num{color:#0f5f2c}.event b{color:#124d27}


/* TEMA RELIGIOSO COM A IMAGEM ENVIADA — sem alterar funcionalidades */
:root{
  --brand:#006b3f;
  --brand2:#f4c430;
  --brand3:#003f2a;
  --gold:#ffd95a;
  --sky:#dff4ff;
  --deep-blue:#075985;
}
body{
  background:
    radial-gradient(circle at 12% 0%, rgba(90,185,255,.35), transparent 28%),
    radial-gradient(circle at 88% 0%, rgba(255,217,90,.42), transparent 24%),
    linear-gradient(135deg,#fffdf0 0%,#eefbe8 46%,#ffffff 100%);
}
.login-screen{
  background:
    linear-gradient(rgba(0,74,44,.35),rgba(0,74,44,.72)),
    url('assets/nossa-senhora-aparecida.png') center/cover no-repeat;
}
.login-card{
  background:rgba(255,255,255,.92);
  border:2px solid rgba(255,217,90,.75);
}
.logo{
  background-image:linear-gradient(135deg,rgba(0,80,47,.9),rgba(246,197,45,.9)),url('assets/nossa-senhora-aparecida.png');
  background-size:cover;
  background-position:center;
  border-radius:18px;
  color:#fff;
}
.app-header{
  background:
    linear-gradient(120deg,rgba(0,63,42,.97) 0%,rgba(0,107,63,.95) 62%,rgba(244,196,48,.90) 100%),
    url('assets/nossa-senhora-aparecida.png') left center/auto 130% no-repeat;
  color:white;
  border-bottom:4px solid var(--gold);
  box-shadow:0 18px 40px rgba(0,63,42,.18);
}
.app-header .brand span,.app-header .brand h1::after{color:#fff7bf!important}.app-header button{background:rgba(255,255,255,.18);color:white;border:1px solid rgba(255,255,255,.30)}
.sidebar{
  background:
    linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,251,218,.88)),
    url('assets/nossa-senhora-aparecida.png') center bottom/80% auto no-repeat;
}
.sidebar::after{
  content:'“Com Maria, somos igreja, família e missão!”';
  display:block;text-align:center;margin:18px 8px 0;padding:14px 10px;border-top:1px solid rgba(244,196,48,.75);color:#005c37;font-family:Georgia,serif;font-style:italic;font-weight:700;
}
.hero{
  background:
    linear-gradient(110deg,rgba(0,63,42,.95),rgba(0,107,63,.88) 58%,rgba(244,196,48,.85)),
    url('assets/nossa-senhora-aparecida.png') right center/contain no-repeat;
  border:1px solid rgba(255,217,90,.65);
}
.hero h2::before{content:'✨ ';}.hero h2::after{content:' ✨';}
.panel,.metric,.team-card,.day,.item{
  background:rgba(255,255,252,.90);
  border-color:rgba(0,107,63,.18);
}
.metric,.panel,.team-card{box-shadow:0 18px 38px rgba(0,63,42,.12)}
.calendar{
  overflow:hidden;
  position:relative;
  border:1px solid rgba(0,107,63,.25);
  background:
    linear-gradient(rgba(255,255,255,.72),rgba(255,255,255,.72)),
    url('assets/nossa-senhora-aparecida.png') center/cover no-repeat;
}
.calendar::before{
  content:"";
  position:absolute;
  inset:40px 16px 16px;
  z-index:0;
  background:url('assets/nossa-senhora-aparecida.png') center/contain no-repeat;
  opacity:.16;
  pointer-events:none;
  filter:saturate(1.05) contrast(.96);
}
.dayname,.day{position:relative;z-index:1}.dayname{background:linear-gradient(135deg,#006b3f,#0c8b51);color:#fff;border-radius:10px;padding:8px 4px}.day{backdrop-filter:blur(2px);box-shadow:0 6px 18px rgba(0,63,42,.06)}
.event{background:linear-gradient(135deg,#fff8d6,#ffffff);border-left-color:#006b3f;box-shadow:0 4px 12px rgba(0,63,42,.08)}
.event:nth-child(odd){border-left-color:#f4c430}.primary,.nav.active{background:linear-gradient(135deg,#006b3f,#008d53 62%,#f4c430);color:white}.pill{background:#fff5bd;color:#6c5200}.ok{background:#dcfce7;color:#006b3f}
.notice{background:linear-gradient(135deg,#fffbea,#f3fff0);border-color:#f4c430;color:#14532d}
@media(max-width:900px){.app-header{background:linear-gradient(135deg,#003f2a,#006b3f 75%,#f4c430)}.calendar::before{opacity:.10}}
