:root{
  --a-navy:#0f1b3d;
  --a-navy-dark:#0a1330;
  --a-blue:#2f6fed;
  --a-blue-light:#5b8df0;
  --a-ink:#1c2333;
  --a-muted:#5b6478;
  --a-bg:#f4f6fc;
}
/* NOTE: global resets (*, body, .hidden, ul, button) intentionally
   removed here — style.css (loaded site-wide) already provides them.
   Keeping duplicates here would override style.css's white background
   and other base rules on every page, not just the Admin view. */
#view-admin{background:var(--a-bg);font-family:'Inter', system-ui, sans-serif;color:var(--a-ink);}

/* ===== LOGIN ===== */
.admin-login-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(91,141,240,0.35), transparent 55%),
    linear-gradient(160deg, #16255c 0%, #1c3f91 100%);
  padding:2rem;
}
.admin-login-card{
  width:100%;
  max-width:420px;
  background:#fff;
  border-radius:32px;
  overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,0.35);
}
.login-top{
  background:linear-gradient(135deg, var(--a-blue), #4a7bf0);
  padding:2.5rem 2rem 2.2rem;
  text-align:center;
  color:#fff;
}
.login-shield{
  width:56px;
  height:56px;
  margin:0 auto 1rem;
  border-radius:16px;
  background:rgba(255,255,255,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
}
.login-shield svg{width:26px;height:26px;fill:#fff;}
.login-top h1{font-family:'Playfair Display',serif;font-size:1.6rem;font-weight:700;}
.login-top h1 em{font-style:italic;color:#dbe6fd;}
.login-top p{font-size:0.75rem;letter-spacing:1.5px;text-transform:uppercase;opacity:0.9;margin-top:0.3rem;}
.login-bottom{padding:2.2rem 2rem 2.5rem;}
.login-bottom label{
  display:block;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--a-muted);
  margin-bottom:0.5rem;
}
.input-icon{
  display:flex;
  align-items:center;
  gap:0.7rem;
  background:#eef2fb;
  border-radius:14px;
  padding:0.85rem 1rem;
  margin-bottom:1.2rem;
}
.input-icon svg{width:18px;height:18px;color:var(--a-muted);flex-shrink:0;}
.input-icon input{
  flex:1;
  border:none;
  background:transparent;
  font-size:0.95rem;
  outline:none;
  color:var(--a-ink);
}
.login-error{
  color:#d63b3b;
  font-size:0.85rem;
  margin:-0.5rem 0 1rem;
  min-height:1.1em;
}
.unlock-btn{
  width:100%;
  background:var(--a-navy);
  color:#fff;
  border:none;
  padding:1rem;
  border-radius:40px;
  font-weight:700;
  font-size:0.95rem;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.6rem;
  cursor:pointer;
  transition:0.2s;
}
.unlock-btn:hover{background:var(--a-navy-dark);}
.unlock-btn svg{width:18px;height:18px;}
.setup-link{
  display:block;
  margin:1.2rem auto 0;
  background:none;
  border:none;
  color:var(--a-blue);
  font-weight:700;
  font-size:0.8rem;
  letter-spacing:0.5px;
  text-transform:uppercase;
  cursor:pointer;
}
.setup-hint{
  text-align:center;
  color:var(--a-muted);
  font-size:0.78rem;
  margin-top:1rem;
  line-height:1.5;
}

/* ===== MODALS ===== */
.modal-overlay{
  position:fixed;
  inset:0;
  background:rgba(10,19,48,0.55);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:500;
  padding:1.5rem;
}
.modal-box{
  background:#fff;
  border-radius:28px;
  width:100%;
  max-width:560px;
  max-height:90vh;
  overflow-y:auto;
  padding:2rem;
}
.modal-box.small{max-width:420px;}
.modal-box h2{font-family:'Playfair Display',serif;color:var(--a-navy);font-size:1.4rem;margin-bottom:0.4rem;}
.modal-sub{color:var(--a-muted);font-size:0.9rem;margin-bottom:1.5rem;}
.modal-box label{
  display:block;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--a-muted);
  margin-bottom:0.5rem;
  margin-top:1rem;
}
.modal-box input{
  width:100%;
  padding:0.8rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.95rem;
  outline:none;
}
.modal-actions{
  display:flex;
  gap:1rem;
  margin-top:1.8rem;
}
.btn-cancel{
  flex:1;
  background:#eef2fb;
  color:var(--a-ink);
  border:none;
  padding:0.9rem;
  border-radius:30px;
  font-weight:700;
  cursor:pointer;
}
.btn-confirm, .btn-send{
  flex:2;
  background:var(--a-blue);
  color:#fff;
  border:none;
  padding:0.9rem;
  border-radius:30px;
  font-weight:700;
  cursor:pointer;
  transition:0.2s;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
}
.btn-confirm:hover, .btn-send:hover{background:#2560d4;}
.btn-send:disabled{background:#a9c2f7;cursor:not-allowed;}
.spinner{
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,0.5);
  border-top-color:#fff;
  animation:spin 0.7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.modal-close{
  background:none;
  border:none;
  font-size:1.6rem;
  line-height:1;
  color:var(--a-muted);
  cursor:pointer;
}
.finalize-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  background:#eef2fb;
  border-radius:18px;
  padding:1.2rem;
  margin-bottom:1.2rem;
}
.fi-label{
  display:block;
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--a-muted);
  margin-bottom:0.3rem;
}
.finalize-info strong{display:block;color:var(--a-navy);}
.fi-sub{display:block;color:var(--a-muted);font-size:0.85rem;}
.decision-row{margin-bottom:1.2rem;}
.decision-buttons{display:flex;gap:1rem;margin-top:0.6rem;}
.decision-buttons.stacked{flex-direction:column;gap:0.6rem;}
.respond-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:1.2rem;
  margin-bottom:1.2rem;
}
.respond-grid input[type="date"],
.respond-grid input[type="time"]{
  width:100%;
  padding:0.7rem 0.9rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.9rem;
  margin-top:0.6rem;
  outline:none;
}
@media (max-width:700px){.respond-grid{grid-template-columns:1fr;}}
.priest-block{margin-bottom:1.2rem;}
.priest-block select,
.priest-block input{
  width:100%;
  padding:0.75rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.9rem;
  margin-top:0.6rem;
  outline:none;
}
.decision-btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.5rem;
  padding:0.9rem;
  border-radius:16px;
  border:1.5px solid #dde3f5;
  background:#fff;
  color:var(--a-muted);
  font-weight:700;
  font-size:0.85rem;
  cursor:pointer;
  transition:0.2s;
}
.decision-btn svg{width:16px;height:16px;}
.decision-btn.active{border-color:var(--a-blue);color:var(--a-blue);background:#eef4ff;}
.email-block textarea{
  width:100%;
  margin-top:0.6rem;
  padding:1rem;
  border-radius:16px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-family:inherit;
  font-size:0.9rem;
  line-height:1.6;
  color:var(--a-ink);
  resize:vertical;
}

/* ===== ADMIN DASHBOARD SHELL ===== */
.admin-dashboard{min-height:100vh;display:flex;flex-direction:column;}
.admin-topbar{
  background:var(--a-navy);
  color:#fff;
  padding:1rem 2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
}
.admin-brand{display:flex;align-items:center;gap:0.8rem;}
.admin-shield{
  width:40px;
  height:40px;
  border-radius:12px;
  background:var(--a-blue);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.admin-shield svg{width:20px;height:20px;fill:#fff;}
.admin-brand h1{font-family:'Playfair Display',serif;font-size:1.15rem;}
.admin-brand h1 em{font-style:italic;color:var(--a-blue-light);}
.admin-brand p{font-size:0.68rem;letter-spacing:1px;text-transform:uppercase;color:#9fb2e0;}
.admin-topnav{display:flex;gap:2rem;}
.admin-topnav a{
  color:#c3cdec;
  text-decoration:none;
  font-weight:700;
  font-size:0.85rem;
  letter-spacing:0.5px;
  text-transform:uppercase;
  padding-bottom:0.3rem;
  border-bottom:2px solid transparent;
}
.admin-topnav a.active{color:var(--a-blue-light);border-color:var(--a-blue-light);}
.admin-session{display:flex;align-items:center;gap:0.9rem;}
.session-info{text-align:right;font-size:0.7rem;color:#9fb2e0;letter-spacing:0.5px;text-transform:uppercase;}
.session-info strong{display:block;color:#fff;font-size:0.85rem;text-transform:none;letter-spacing:0;}
.logout-btn{
  width:38px;
  height:38px;
  border-radius:10px;
  background:rgba(255,255,255,0.1);
  border:none;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.logout-btn svg{width:17px;height:17px;}
.logout-btn:hover{background:var(--a-blue);}

.admin-body{flex:1;display:flex;}
.admin-sidebar{
  width:260px;
  background:#fff;
  padding:1.5rem 1rem;
  border-right:1px solid #eef1f9;
  display:flex;
  flex-direction:column;
  gap:0.6rem;
  flex-shrink:0;
}
.side-link{
  display:flex;
  align-items:center;
  gap:0.7rem;
  background:transparent;
  border:none;
  border-radius:16px;
  padding:0.9rem 1rem;
  font-weight:600;
  font-size:0.92rem;
  color:var(--a-ink);
  cursor:pointer;
  text-align:left;
  transition:0.2s;
}
.side-link svg{width:18px;height:18px;flex-shrink:0;}
.side-link:hover{background:#eef2fb;}
.side-link.active{background:var(--a-blue);color:#fff;}
.side-badge{
  margin-left:auto;
  background:var(--a-navy);
  color:#fff;
  font-size:0.72rem;
  font-weight:700;
  border-radius:50%;
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.side-link.active .side-badge{background:rgba(255,255,255,0.3);}

.admin-main{flex:1;padding:2rem;min-width:0;}
.view-card{
  background:#fff;
  border-radius:28px;
  padding:2.2rem 2.5rem;
  box-shadow:0 10px 25px rgba(15,27,61,0.05);
}
.view-card h2{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--a-navy);}
.view-sub{color:var(--a-muted);font-size:0.85rem;letter-spacing:0.5px;text-transform:uppercase;margin-top:0.3rem;margin-bottom:2rem;}
.view-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.reset-btn{
  display:flex;
  align-items:center;
  gap:0.5rem;
  background:#eef2fb;
  color:var(--a-blue);
  border:none;
  padding:0.7rem 1.2rem;
  border-radius:30px;
  font-weight:700;
  font-size:0.82rem;
  cursor:pointer;
  transition:0.2s;
  flex-shrink:0;
}
.reset-btn:hover{background:#dde7fb;}
.reset-btn svg{width:15px;height:15px;}
.no-action-note{color:#9aa2b8;font-size:0.82rem;font-style:italic;padding-top:0.2rem;}

/* ===== STAT TILES ===== */
.stat-tiles{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
  margin-bottom:2rem;
}
.stat-tile{
  background:#f8f9fd;
  border-radius:20px;
  padding:1.4rem;
}
.stat-tile.solid{background:var(--a-blue);color:#fff;}
.tile-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}
.tile-icon svg{width:18px;height:18px;}
.tile-icon.blue-tint{background:#e3ecfd;color:var(--a-blue);}
.tile-icon.orange-tint{background:#fdecdc;color:#e08a2e;}
.tile-icon.green-tint{background:#dff5e6;color:#22a35a;}
.stat-tile.solid .tile-icon{background:rgba(255,255,255,0.2);color:#fff;}
.tile-label{
  display:block;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  color:var(--a-muted);
  margin-bottom:0.3rem;
}
.stat-tile.solid .tile-label{color:rgba(255,255,255,0.85);}
.stat-tile strong{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--a-navy);}
.stat-tile.solid strong{color:#fff;}
@media (max-width:900px){.stat-tiles{grid-template-columns:1fr 1fr;}}

/* ===== CHARTS ===== */
.chart-row{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:1.5rem;
}
.chart-card{
  background:#f8f9fd;
  border-radius:20px;
  padding:1.5rem;
}
.chart-card h3{
  display:flex;
  align-items:center;
  gap:0.5rem;
  font-family:'Playfair Display',serif;
  font-size:1rem;
  color:var(--a-navy);
  margin-bottom:1.5rem;
}
.chart-card h3 svg{width:16px;height:16px;color:var(--a-blue);}
.bar-chart{
  display:flex;
  align-items:flex-end;
  gap:1rem;
  height:180px;
  padding-top:1rem;
  border-bottom:1px solid #e2e7f5;
}
.bar-col{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  height:100%;
  gap:0.5rem;
}
.bar-col .bar{
  width:60%;
  background:var(--a-blue);
  border-radius:6px 6px 0 0;
  min-height:2px;
}
.bar-col .bar-day{font-size:0.68rem;font-weight:700;color:var(--a-muted);text-transform:uppercase;}
.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:1.2rem;}
.donut{
  width:150px;
  height:150px;
  border-radius:50%;
  background:conic-gradient(#d4a24c 0deg, #d4a24c 0deg, var(--a-navy) 0deg);
}
.donut-legend{display:flex;gap:1.5rem;}
.donut-legend .leg-item{display:flex;align-items:center;gap:0.5rem;font-size:0.78rem;font-weight:700;color:var(--a-muted);text-transform:uppercase;letter-spacing:0.5px;}
.donut-legend .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
@media (max-width:900px){.chart-row{grid-template-columns:1fr;}}

/* ===== REQUEST LIST (CERTIFICATES / MASS INTENTIONS) ===== */
.request-list{display:flex;flex-direction:column;gap:1.5rem;}
.request-card{
  border:1px solid #eef1f9;
  border-radius:24px;
  padding:1.6rem 1.8rem;
}
.request-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.request-title{display:flex;align-items:center;gap:0.8rem;flex-wrap:wrap;}
.request-title h3{font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--a-navy);}
.status-badge{
  padding:0.35rem 0.9rem;
  border-radius:30px;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
}
.status-badge.pending{background:#fff;border:1.5px solid #dde3f5;color:var(--a-muted);}
.status-badge.received{background:#e3ecfd;color:var(--a-blue);}
.status-badge.confirmed, .status-badge.ready{background:#dff5e6;color:#22a35a;}
.status-badge.rejected{background:#fde3e3;color:#d63b3b;}
.delete-btn{
  width:36px;
  height:36px;
  border-radius:12px;
  background:#f8f9fd;
  border:none;
  color:#a7afc7;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-shrink:0;
}
.delete-btn:hover{background:#fde3e3;color:#d63b3b;}
.delete-btn svg{width:16px;height:16px;}
.request-meta{
  display:flex;
  gap:1rem;
  margin:0.7rem 0 1.2rem;
  flex-wrap:wrap;
}
.request-id{
  background:#eef2fb;
  color:var(--a-blue);
  padding:0.3rem 0.8rem;
  border-radius:10px;
  font-size:0.78rem;
  font-weight:700;
}
.request-submitted{color:var(--a-muted);font-size:0.85rem;align-self:center;}
.request-divider{border:none;border-top:1px solid #eef1f9;margin-bottom:1.2rem;}
.request-cols{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.5rem;
  margin-bottom:1.2rem;
}
.rc-label{
  display:block;
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--a-blue);
  margin-bottom:0.6rem;
}
.rc-box{
  background:#f8f9fd;
  border-radius:14px;
  padding:0.9rem 1rem;
  min-height:60px;
}
.rc-box strong{display:block;color:var(--a-ink);}
.rc-box p{color:var(--a-muted);font-size:0.85rem;margin-top:0.2rem;}
.rc-box .rc-line{display:flex;align-items:center;gap:0.5rem;color:var(--a-muted);font-size:0.85rem;margin-top:0.3rem;}
.rc-box .rc-line svg{width:14px;height:14px;flex-shrink:0;color:var(--a-blue);}
.rc-box.italic{font-style:italic;color:var(--a-muted);font-size:0.88rem;}
.rc-detail-grid{display:flex;flex-direction:column;gap:0.5rem;}
.rc-detail-row{display:flex;justify-content:space-between;align-items:baseline;gap:0.8rem;}
.rc-detail-row span{font-size:0.76rem;color:var(--a-muted);flex-shrink:0;}
.rc-detail-row strong{font-size:0.85rem;color:var(--a-ink);text-align:right;}
.request-actions{display:flex;gap:1rem;flex-wrap:wrap;}
.action-btn{
  border:none;
  padding:0.75rem 1.3rem;
  border-radius:14px;
  font-weight:700;
  font-size:0.85rem;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:0.5rem;
  transition:0.2s;
}
.action-btn svg{width:15px;height:15px;}
.action-btn.purple{background:#f1e9fb;color:#8a4fd6;}
.action-btn.purple:hover{background:#e2d3f7;}
.action-btn.blue{background:var(--a-blue);color:#fff;}
.action-btn.blue:hover{background:#2560d4;}
.action-btn.red{background:#fde3e3;color:#c0392b;}
.action-btn.red:hover{background:#f8c6c6;}
.empty-state{
  text-align:center;
  padding:3rem 1rem;
  color:var(--a-muted);
}
@media (max-width:900px){.request-cols{grid-template-columns:1fr;}}

/* ===== SCHEDULE OVERRIDES ===== */
.override-form{
  display:grid;
  grid-template-columns:1.3fr 150px 130px 1.3fr auto;
  gap:1rem;
  margin-bottom:2rem;
}
.override-form input{
  padding:0.85rem 1rem;
  border-radius:14px;
  border:1px solid #dde3f5;
  background:#f8f9fd;
  font-size:0.9rem;
  outline:none;
}
.override-form button{
  background:var(--a-blue);
  color:#fff;
  border:none;
  padding:0 1.5rem;
  border-radius:14px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.override-summary-heading{
  font-size:1rem;
  color:var(--a-navy);
  margin-bottom:0.8rem;
}
.override-table-wrap{
  overflow-x:auto;
  border:1px solid #e7ecf7;
  border-radius:16px;
}
.override-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.88rem;
}
.override-table th{
  text-align:left;
  background:#f8f9fd;
  color:var(--a-muted);
  font-size:0.75rem;
  text-transform:uppercase;
  letter-spacing:0.5px;
  padding:0.9rem 1.1rem;
  border-bottom:1px solid #e7ecf7;
}
.override-table td{
  padding:0.9rem 1.1rem;
  border-bottom:1px solid #eef1fa;
  color:var(--a-navy);
  vertical-align:middle;
}
.override-table tbody tr:last-child td{border-bottom:none;}
.override-table td.ov-reason{color:var(--a-muted);}
.override-table td.ov-time strong{color:var(--a-blue);}
.override-table .empty-row td{text-align:center;color:var(--a-muted);padding:1.5rem;}
@media (max-width:900px){.override-form{grid-template-columns:1fr;}}

/* ===== FEEDBACK ===== */
.feedback-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.feedback-card-stars{color:#f2b134;font-size:1.1rem;letter-spacing:2px;}
.feedback-card-stars .empty{color:#dde3f5;}
.feedback-source-tag{
  display:inline-block;
  background:#eef2fb;
  color:var(--a-blue);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.5px;
  text-transform:uppercase;
  padding:0.3rem 0.8rem;
  border-radius:10px;
  margin-top:0.5rem;
}
.feedback-comment{
  background:#f8f9fd;
  border-radius:14px;
  padding:0.9rem 1.1rem;
  margin-top:0.9rem;
  color:var(--a-ink);
  font-size:0.9rem;
  font-style:italic;
  line-height:1.6;
}

@media (max-width:900px){
  .admin-body{flex-direction:column;}
  .admin-sidebar{
    width:100%;
    flex-direction:row;
    overflow-x:auto;
    border-right:none;
    border-bottom:1px solid #eef1f9;
  }
  .admin-main{padding:1.2rem;}
  .view-card{padding:1.5rem;}
}

/* ===== EVENTS ADMIN FORM ===== */
.event-form{background:#f8f9fd;border:1px solid #e7ecf9;border-radius:16px;padding:1.3rem;margin-bottom:1.8rem;}
.event-form-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px,1fr));gap:1rem;margin-bottom:1rem;}
.event-form label{display:block;font-size:0.72rem;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--a-muted);margin-bottom:0.4rem;}
.event-form input, .event-form textarea{
  width:100%;padding:0.7rem 0.9rem;border-radius:12px;border:1px solid #dde3f5;background:#fff;
  font-size:0.88rem;font-family:inherit;outline:none;
}
.event-form input:focus, .event-form textarea:focus{border-color:var(--a-blue);}
.event-form textarea{resize:vertical;margin-bottom:1rem;}
.event-form-actions{display:flex;gap:0.8rem;align-items:center;}
.event-admin-card{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;}
.event-admin-card .ea-actions{display:flex;gap:0.5rem;flex-shrink:0;}
.event-admin-card .ea-actions button{
  background:none;border:1px solid #dde3f5;border-radius:10px;padding:0.5rem 0.7rem;cursor:pointer;color:var(--a-navy);
}
.event-admin-card .ea-actions button:hover{background:#eef2fb;}

/* ===== PARISH MASS SCHEDULE (Anticipated/Sunday + Weekdays) ===== */
.schedule-category-tabs{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.schedule-cat-tab{
  flex:1;min-width:220px;display:flex;align-items:center;gap:0.8rem;
  padding:1rem 1.2rem;border:2px solid #e5e9f5;border-radius:14px;background:#fff;
  cursor:pointer;transition:0.2s;color:var(--a-navy);font-weight:600;font-size:0.9rem;text-align:left;
}
.schedule-cat-tab svg{flex-shrink:0;color:var(--a-blue);}
.schedule-cat-tab:hover{border-color:#c7d3f2;}
.schedule-cat-tab.active{border-color:var(--a-blue);background:#f0f5ff;}
.schedule-slots-grouped{display:flex;flex-direction:column;gap:1.5rem;}
.schedule-day-group h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--a-navy);margin-bottom:0.7rem;border-bottom:1px solid #eef1f8;padding-bottom:0.4rem;}
.schedule-slot-row{
  display:flex;align-items:center;gap:1rem;padding:0.7rem 1rem;border-radius:12px;
  background:#f7f9fd;margin-bottom:0.5rem;flex-wrap:wrap;
}
.schedule-slot-row .ss-time{font-weight:700;color:var(--a-blue);min-width:80px;}
.schedule-slot-row .ss-chapel{color:var(--a-navy);flex:1;min-width:120px;}
.schedule-slot-priest{
  padding:0.3rem 0.8rem;border-radius:20px;font-size:0.78rem;font-weight:700;color:#fff;white-space:nowrap;
}
.schedule-slot-priest.unassigned{background:#e5e9f5;color:var(--a-muted);}
.schedule-slot-row .ea-actions{margin-left:auto;}

/* ===== GENERIC UPLOAD DROPZONE (reused: event photos, About history photo) ===== */
.cl-smart-upload{
  border:2px dashed #c7d3f2;border-radius:16px;background:#f6f8fd;
  padding:2rem 1.5rem;text-align:center;margin-bottom:1rem;
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  transition:border-color 0.2s, background 0.2s;
}
.cl-smart-upload.is-dragover{border-color:var(--a-blue);background:#eaf0fe;}
.cl-smart-upload-btn{cursor:pointer;margin-top:0.2rem;}
.cl-smart-upload-text span{font-size:0.8rem;color:var(--a-muted);}

/* ===== Payment/Donation Settings: bank/GCash form + live auto-QR preview ===== */
.payment-settings-layout{display:grid;grid-template-columns:1fr 220px;gap:2rem;align-items:start;}
.payment-settings-qr-preview{
  background:#f6f8fd;border:1px solid #e5e9f5;border-radius:16px;padding:1.2rem;
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;position:sticky;top:1rem;
}
#paySettingsQrPreviewWrap{
  width:180px;height:180px;background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;
  border:1px solid #e5e9f5;overflow:hidden;
}
#paySettingsQrPreviewWrap img{width:100%;height:100%;object-fit:contain;}
@media (max-width:800px){.payment-settings-layout{grid-template-columns:1fr;}}

/* ===== Online Services master switch ===== */
.services-switch-row{display:flex;align-items:center;gap:1rem;margin-top:0.6rem;}
.per-service-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.4rem 1.5rem;margin-top:0.5rem;margin-bottom:1.3rem;}
@media (max-width:700px){.per-service-toggle-grid{grid-template-columns:1fr;}}
.ss-toggle{position:relative;display:inline-block;cursor:pointer;}
.ss-toggle input{position:absolute;opacity:0;width:0;height:0;}
.ss-toggle-track{
  display:block;width:52px;height:28px;background:#dfe4f0;border-radius:20px;position:relative;transition:background 0.2s;
}
.ss-toggle-thumb{
  position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;
  box-shadow:0 2px 5px rgba(0,0,0,0.2);transition:transform 0.2s;
}
.ss-toggle input:checked + .ss-toggle-track{background:#2fbf6f;}
.ss-toggle input:checked + .ss-toggle-track .ss-toggle-thumb{transform:translateX(24px);}

/* ===== Donation Summary table (Office Overview) ===== */
.donation-summary-table{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:0.88rem;}
.donation-view-tabs{display:flex;gap:0.5rem;margin-top:1.5rem;background:#f4f6fb;border-radius:10px;padding:0.25rem;width:fit-content;}
.donation-view-tab{
  padding:0.5rem 1rem;border:none;background:none;border-radius:8px;font-weight:600;font-size:0.82rem;
  color:var(--a-muted);cursor:pointer;font-family:inherit;
}
.donation-view-tab.active{background:#fff;color:var(--a-blue);box-shadow:0 2px 6px rgba(15,27,61,0.08);}
.donation-summary-table th{
  text-align:left;padding:0.7rem 1rem;background:#f6f8fd;color:var(--a-muted);
  font-size:0.72rem;text-transform:uppercase;letter-spacing:0.5px;font-weight:700;
}
.donation-summary-table td{padding:0.8rem 1rem;border-bottom:1px solid #eef1f8;color:var(--a-navy);}
.donation-summary-table tr:last-child td{border-bottom:none;}
.donation-summary-table td:nth-child(2), .donation-summary-table th:nth-child(2){text-align:center;}
.donation-summary-table td:nth-child(3), .donation-summary-table th:nth-child(3){text-align:right;font-weight:700;color:var(--a-blue);}

/* ===== Site Settings: sub-tabs (Home Stats / Payment / Manage Staff / About) ===== */
.ss-tabs{display:flex;gap:0.6rem;margin-bottom:1.6rem;flex-wrap:wrap;border-bottom:2px solid #eef1f8;padding-bottom:0;}
.ss-tab{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.8rem 1.3rem;border:none;background:none;cursor:pointer;
  font-weight:600;font-size:0.88rem;color:var(--a-muted);border-bottom:3px solid transparent;
  margin-bottom:-2px;transition:0.2s;
}
.ss-tab svg{flex-shrink:0;}
.ss-tab:hover{color:var(--a-navy);}
.ss-tab.active{color:var(--a-blue);border-bottom-color:var(--a-blue);}
.ss-tab-panel.hidden{display:none;}

/* Manage Staff tab: Priests + SOCCOM side-by-side on wide screens */
.staff-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;}
.staff-columns .view-card{margin-bottom:0;}
.staff-columns .request-list{max-height:460px;overflow-y:auto;padding-right:0.3rem;}
@media (max-width:1000px){.staff-columns{grid-template-columns:1fr;}}

/* ===== About Content admin lists: photo + inline edit form ===== */
.about-list-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.about-list-photo-placeholder{
  width:44px;height:44px;border-radius:50%;background:#eef2fb;color:var(--a-muted);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;
}
.about-edit-form{width:100%;display:flex;flex-direction:column;gap:0.6rem;}
.about-edit-photo-row{display:flex;align-items:center;gap:1rem;}
.about-edit-photo-row .about-list-photo{width:56px;height:56px;}
.about-edit-form input[type="text"]{
  padding:0.6rem 0.8rem;border-radius:10px;border:1px solid #dde3f5;font-size:0.88rem;width:100%;
}
.action-btn.small{padding:0.4rem 0.8rem;font-size:0.8rem;}

/* ===== Admin: date-grouped accordion (Mass Intentions / Certificates) ===== */
.admin-date-group{
  border:1px solid #e5e9f5;border-radius:16px;background:#fff;margin-bottom:1rem;overflow:hidden;
}
.admin-date-group summary{
  display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  padding:1.1rem 1.4rem;cursor:pointer;list-style:none;user-select:none;
}
.admin-date-group summary::-webkit-details-marker{display:none;}
.admin-date-group summary::before{
  content:'\25B8';color:var(--a-muted);font-size:1rem;transition:transform 0.2s;flex-shrink:0;
}
.admin-date-group[open] summary::before{transform:rotate(90deg);}
.admin-date-group[open] summary{border-bottom:1px solid #eef1f8;background:#f9fafd;}
.adg-date{font-weight:700;color:var(--a-navy);font-size:0.95rem;}
.adg-meta{color:var(--a-muted);font-size:0.82rem;flex:1;}
.adg-print-btn{margin-left:auto;flex-shrink:0;}
.adg-body{padding:1.2rem 1.4rem;background:#fafbfe;}
.adg-body .request-card{margin-bottom:0.9rem;}
.adg-body .request-card:last-child{margin-bottom:0;}
