
:root{
  --pt-blue:#0f4c81;
  --pt-blue-dark:#0b365c;
  --bg:#f4f7fb;
  --card:#ffffff;
  --border:#d9e3ef;
  --text:#1f2937;
  --muted:#6b7280;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Avenir, "Avenir Next", "Segoe UI", Arial, sans-serif}
h1,h2,h3,.brand{font-family:'Raleway', Arial, sans-serif}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:white;border-bottom:1px solid var(--border);position:sticky;top:0}
.brand-wrap{display:flex;gap:12px;align-items:center}
.logo{width:52px;height:52px}
.brand{font-size:1.4rem;font-weight:800;color:var(--pt-blue)}
.subbrand{color:var(--muted);font-size:.95rem}
.nav a{margin-left:10px;text-decoration:none;color:var(--pt-blue-dark);font-weight:700}
.container{max-width:1200px;margin:24px auto;padding:0 16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 10px 24px rgba(10,40,80,.06);margin-bottom:20px}
.narrow{max-width:520px;margin:60px auto}
.grid{display:grid;gap:16px}
.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.cols-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.cols-6{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.kpi-label{color:var(--muted);font-size:.9rem}
.kpi-value{font-size:2rem;font-weight:800;color:var(--pt-blue)}
.flash{background:#eaf4ff;border:1px solid #b9d6f3;padding:12px 14px;border-radius:14px;margin-bottom:12px}
form.stack{display:grid;gap:10px}
input,select,textarea,button{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);font:inherit}
button,.small-btn{background:var(--pt-blue);color:white;border:none;text-decoration:none;display:inline-block;padding:10px 14px;border-radius:12px;font-weight:700;cursor:pointer}
button.secondary,.small-btn.secondary{background:white;color:var(--pt-blue);border:1px solid var(--border)}
button.danger,.small-btn.danger{background:#b42318;color:#fff}
.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}
th{color:var(--muted)}
.muted{color:var(--muted)}
.center{text-align:center}
.hidden{display:none}
.pager{display:flex;justify-content:center;gap:14px;align-items:center;margin-top:14px}
.kiosk-wrap{max-width:760px;margin:0 auto;display:grid;gap:18px}
.kiosk-card{text-align:center}



.divider{margin:8px 0;color:var(--muted);font-weight:700}
details summary{cursor:pointer;color:var(--pt-blue);font-weight:700}
@keyframes pulse{
  0%{transform:scale(.95);opacity:.7}
  70%{transform:scale(1.05);opacity:1}
  100%{transform:scale(.95);opacity:.7}
}

.actions-cell{display:flex;gap:8px;align-items:center;white-space:nowrap}
.inline-icon-form{display:inline}
.icon-btn{width:40px;min-width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-size:18px;line-height:1;background:var(--pt-blue);color:#fff;border:none;text-decoration:none;cursor:pointer}
.icon-btn.secondary{background:#fff;color:var(--pt-blue);border:1px solid var(--border)}
.icon-btn.danger{background:#b42318;color:#fff}
.status-pill{display:inline-block;padding:6px 10px;border-radius:999px;font-size:.86rem;font-weight:700}
.status-pill.active{background:#e8f7ef;color:#136c3f}
.status-pill.archived{background:#eef2f6;color:#475467}
.icon-summary{font-weight:700;color:var(--pt-blue)}
.kiosk-wrap .card.kiosk-card:last-child{margin-top:0}

.logo-preview{max-width:220px;max-height:120px;display:block;margin-bottom:16px}


.kiosk-body{background:linear-gradient(180deg,#eef5fb 0%,#f8fbfe 100%)}
.kiosk-shell{min-height:100vh}
.kiosk-topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:white;border-bottom:1px solid var(--border)}
.kiosk-container{max-width:1100px}
.kiosk-nav{display:flex;gap:10px;align-items:center}
.kiosk-nav a{text-decoration:none;color:var(--pt-blue-dark);font-weight:700;background:white;border:1px solid var(--border);padding:10px 14px;border-radius:999px}
.kiosk-nav-item-group{display:flex;align-items:center;gap:8px}
.kiosk-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0 !important;border-radius:999px;font-size:1rem;line-height:1}
.sr-only{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}
.secret-admin-link{position:fixed;right:8px;top:8px;width:18px;height:18px;opacity:0.01;z-index:9999}
.kiosk-main-card{max-width:760px;margin-left:auto;margin-right:auto}
.leaderboard-header{justify-content:space-between}
.trophy{font-size:1.1rem}
@media (max-width: 800px){
  .kiosk-topbar{flex-direction:column;align-items:flex-start;gap:12px}
}

.success-card{border:2px solid rgba(15,76,129,.15)}
.progress-block{margin-top:10px}
.progress-bar{height:14px;border-radius:999px;background:#e6eef7;overflow:hidden}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--pt-blue),#3d84bf)}

.wysiwyg-editor{min-height:140px;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff}
.editor-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.editor-toolbar button{width:auto;padding:8px 10px}
.qr-preview{max-width:180px;border:1px solid var(--border);border-radius:12px;padding:8px;background:#fff}
.announcement-box{margin-top:16px;padding:16px;border:1px solid var(--border);border-radius:16px;background:#f8fbff}
.announcement-content p:first-child{margin-top:0}
.announcement-content p:last-child{margin-bottom:0}
.qr-block{text-align:center;margin-top:12px}


.small-btn.danger{background:#b42318;color:#fff}
.kiosk-body{overflow:hidden}
.kiosk-shell{min-height:100vh;display:flex;flex-direction:column}
.kiosk-container{max-width:1280px;flex:1;display:flex;align-items:stretch}
.kiosk-split{display:grid;grid-template-columns:minmax(360px, 1fr) minmax(420px, 1.15fr);gap:18px;width:100%;align-items:stretch;height:calc(100vh - 140px);overflow:hidden}
.kiosk-left,.kiosk-right{display:flex;flex-direction:column;gap:18px;min-height:0}
.kiosk-left .card,.kiosk-right .card{margin-bottom:0}
.kiosk-list-card{flex:1;display:flex;flex-direction:column;min-height:0}
.kiosk-list-card table{display:block;overflow:auto;max-height:100%}
.kiosk-main-card{max-width:none;margin-left:0;margin-right:0}
.success-card{display:flex;flex-direction:column;justify-content:center;min-height:240px}
.announcement-box{max-height:220px;overflow:auto}
@media (max-width: 980px){
  .kiosk-body{overflow:auto}
  .kiosk-container{display:block}
  .kiosk-split{grid-template-columns:1fr;height:auto;overflow:visible}
  .kiosk-left,.kiosk-right{min-height:auto}
  .kiosk-list-card table{max-height:none}
}


/* Version 6.3 kiosk splash fix */
.kiosk-container{max-width:1400px}
.kiosk-split{grid-template-columns:minmax(430px, 0.95fr) minmax(430px, 1.05fr);gap:20px;height:calc(100vh - 150px)}
.kiosk-left,.kiosk-right{min-height:0}
.kiosk-main-card{min-height:420px;display:flex;flex-direction:column;justify-content:center}
.kiosk-list-card{min-height:420px}
.compact-table th,.compact-table td{padding:8px 10px;font-size:.95rem}
.kiosk-list-card table{display:block;overflow:auto;max-height:100%}
.kiosk-modal-overlay{
  position:fixed; inset:0; background:rgba(15,23,42,.62); z-index:9998;
  display:flex; align-items:center; justify-content:center; padding:24px;
  backdrop-filter: blur(2px);
}
.kiosk-modal-card{
  width:min(760px, 92vw); max-height:88vh; overflow:auto;
  background:#fff; border-radius:28px; padding:28px; box-shadow:0 30px 80px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.5); text-align:center;
}
.kiosk-tick-wrap{position:relative; width:110px; height:110px; margin:0 auto 14px auto}
.kiosk-tick-ring{
  position:absolute; inset:0; border-radius:999px;
  background:radial-gradient(circle, rgba(15,76,129,.14) 0%, rgba(15,76,129,.08) 45%, rgba(15,76,129,0) 68%);
  animation: modalPulse 1.5s infinite ease-in-out;
}
.kiosk-tick{
  position:absolute; inset:18px; border-radius:999px; background:var(--pt-blue);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:52px; font-weight:800; box-shadow:0 16px 36px rgba(15,76,129,.28);
  animation: modalPop .45s ease-out;
}
.modal-progress-block{margin-top:16px}
.modal-announcement-box{text-align:left; margin-top:18px}
.kiosk-body{overflow:hidden}
@keyframes modalPulse{
  0%{transform:scale(.9); opacity:.75}
  70%{transform:scale(1.05); opacity:1}
  100%{transform:scale(.9); opacity:.75}
}
@keyframes modalPop{
  0%{transform:scale(.6); opacity:0}
  100%{transform:scale(1); opacity:1}
}
@media (max-width: 1100px){
  .kiosk-body{overflow:auto}
  .kiosk-split{grid-template-columns:1fr;height:auto}
  .kiosk-main-card,.kiosk-list-card{min-height:auto}
}


/* 6.3 announcement sizing fix */
.announcement-content{
  display:-webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow:hidden;
  max-height: 14.5em;
}
.modal-announcement-box{
  max-height:none !important;
  overflow:hidden !important;
}
.qr-preview{
  width: min(140px, 22vw) !important;
  height: min(140px, 22vw) !important;
  object-fit: contain;
}
.qr-block{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin-top:10px;
}
.kiosk-modal-card{
  overflow:hidden;
}


/* Responsive modal and admin action tweaks */
.action-cell{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kiosk-modal-overlay{
  position:fixed; inset:0; background:rgba(15,23,42,.62); z-index:9998;
  display:flex; align-items:center; justify-content:center; padding:20px;
  backdrop-filter: blur(2px);
}
.kiosk-modal-card{
  width:min(820px, 94vw);
  max-height:min(90vh, 900px);
  overflow:auto;
  background:#fff; border-radius:28px; padding:24px 24px 22px;
  box-shadow:0 30px 80px rgba(0,0,0,.28); border:1px solid rgba(255,255,255,.5);
  text-align:center;
}
.modal-progress-block{width:min(700px, 100%);margin:16px auto 0}
.modal-announcement-box{
  width:min(760px, 100%);
  margin:18px auto 0;
  overflow:hidden !important;
  max-height:none !important;
}
.announcement-content{
  display:-webkit-box;
  -webkit-line-clamp:8;
  -webkit-box-orient: vertical;
  overflow:hidden;
  max-height:14.6em;
  line-height:1.5;
}
.qr-preview{
  width:min(160px, 28vw) !important;
  height:min(160px, 28vw) !important;
  max-width:100%;
  object-fit:contain;
}
.qr-block{display:flex;flex-direction:column;align-items:center;gap:8px}
@media (max-width: 1024px){
  .kiosk-split{
    grid-template-columns:minmax(300px, .95fr) minmax(300px, 1.05fr);
    height:calc(100vh - 138px);
  }
  .kiosk-main-card,.kiosk-list-card{min-height:0}
}
@media (max-width: 820px){
  .kiosk-body{overflow:auto}
  .kiosk-split{grid-template-columns:1fr;height:auto;overflow:visible}
  .kiosk-modal-card{width:min(96vw, 760px);max-height:92vh;padding:20px 16px}
  .announcement-content{-webkit-line-clamp:6;max-height:11em}
  .qr-preview{width:min(132px, 34vw) !important;height:min(132px, 34vw) !important}
}


/* Version 6.5 additions */
.kiosk-title-row{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:6px}
.timecard-pulse{position:relative;width:72px;height:72px;border-radius:18px;background:radial-gradient(circle, rgba(15,76,129,.18) 0%, rgba(15,76,129,.08) 45%, rgba(15,76,129,0) 72%);animation:pulse 1.6s infinite}
.timecard-inner{position:absolute;inset:10px;border-radius:14px;background:var(--pt-blue);display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;box-shadow:0 12px 24px rgba(15,76,129,.22)}
.clock-icon{margin-right:8px}
.masonry-grid{column-count:2;column-gap:18px}
.masonry-card{break-inside:avoid;margin-bottom:18px}
.youth-icon{margin-right:4px}
.checkline{display:block;margin-top:8px}
.certificate-card{text-align:center;padding:42px}
.certificate-card h1{font-size:2.4rem;margin-bottom:12px}
.certificate-card h2{font-size:2rem;margin:12px 0}
@media (max-width: 900px){
  .masonry-grid{column-count:1}
  .kiosk-title-row{flex-direction:column}
}


/* Version 6.5.1 tidy-ups */
.kiosk-title-row{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:18px;
  margin-bottom:12px;
}
.title-icons{
  display:flex;
  align-items:center;
  gap:10px;
}
.timecard-pulse{
  width:74px;
  height:74px;
  border-radius:20px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.timecard-inner{
  inset:8px;
  font-size:30px;
}
.clock-chip{
  width:52px;
  height:52px;
  border-radius:16px;
  background:rgba(15,76,129,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  color:var(--pt-blue);
  border:1px solid rgba(15,76,129,.16);
}
.kiosk-title-copy h1{
  margin:0 0 4px 0;
}
.kiosk-title-copy .muted{
  margin:0;
}
.checkbox-row{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
}
.checkbox-row input[type="checkbox"]{
  width:18px;
  height:18px;
  margin:0;
  flex:0 0 auto;
}
.checkbox-row span{
  line-height:1.35;
}
.info-pill{
  background:#eef5fb;
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 14px;
  font-size:.95rem;
}
@media (max-width: 700px){
  .kiosk-title-row{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .kiosk-title-copy .muted{
    text-align:center;
  }
}


/* Version 6.6 youth pathway */
.inline-form form{margin:0}


/* Version 7.0.2 kiosk and youth icon tidy */
.simple-kiosk-title{
  display:block;
  text-align:center;
  margin-bottom:12px;
}
.simple-kiosk-title .kiosk-title-copy{
  width:100%;
}
.simple-kiosk-title h1{
  margin:0 0 4px 0;
}
.simple-kiosk-title .muted{
  text-align:center;
}
.youth-icon{
  display:inline-block;
  margin-left:4px;
  margin-right:0;
  vertical-align:middle;
}


/* Version 7.0.4 cleanup */
.simple-kiosk-title{
  display:block;
  text-align:center;
  margin-bottom:12px;
}
.simple-kiosk-title .kiosk-title-copy{
  width:100%;
}
.simple-kiosk-title h1{
  margin:0 0 4px 0;
}
.simple-kiosk-title .muted{
  text-align:center;
  margin:0;
}
.youth-icon{
  display:inline-block;
  margin-left:4px;
  margin-right:0;
  vertical-align:middle;
}
.info-pill .youth-icon{
  margin-left:4px;
}


/* Version 7.0.7 compact admin menu */
.topbar{
  gap: 16px;
  padding: 12px 18px;
}
.admin-nav{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  max-width: 760px;
}
.admin-nav a{
  margin-left:0;
  padding:8px 11px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--border);
  font-size:.92rem;
  line-height:1;
  white-space:nowrap;
  box-shadow:none;
}
.admin-nav a:hover{
  background:#f4f8fc;
  border-color:#bfd2e5;
}
.admin-nav .nav-logout{
  background:var(--pt-blue);
  color:#fff;
  border-color:var(--pt-blue);
}
.admin-nav .nav-logout:hover{
  filter:brightness(.95);
  background:var(--pt-blue);
}
.brand-wrap{
  min-width:0;
}
.subbrand{
  white-space:nowrap;
}
@media (max-width: 1100px){
  .topbar{
    flex-direction:column;
    align-items:flex-start;
  }
  .admin-nav{
    justify-content:flex-start;
    max-width:none;
    width:100%;
  }
}
@media (max-width: 640px){
  .admin-nav{
    gap:6px;
  }
  .admin-nav a{
    font-size:.86rem;
    padding:7px 10px;
  }
}


/* Version 7.0.8 kiosk default and layout tidy */
.kiosk-container{
  max-width: 1500px;
}
.kiosk-split{
  display:grid;
  grid-template-columns:minmax(460px, 0.95fr) minmax(620px, 1.25fr);
  gap:22px;
  align-items:start;
}
.kiosk-left,.kiosk-right{
  min-width:0;
}
.kiosk-list-card{
  width:100%;
  min-height:420px;
  overflow:hidden;
}
.kiosk-list-card table,
.compact-table{
  width:100%;
  table-layout:auto;
  border-collapse:collapse;
}
.kiosk-list-card th,
.kiosk-list-card td,
.compact-table th,
.compact-table td{
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  vertical-align:top;
  padding:10px 12px;
}
.kiosk-list-card td:first-child,
.kiosk-list-card th:first-child,
.compact-table td:first-child,
.compact-table th:first-child{
  min-width:190px;
}
.kiosk-admin-link-wrap{
  display:flex;
  justify-content:flex-end;
  margin:0 0 8px 0;
}
.subtle-admin-link{
  font-size:.82rem;
  color:#6b7a8a;
  text-decoration:none;
  opacity:.8;
  padding:4px 8px;
  border-radius:999px;
}
.subtle-admin-link:hover{
  background:#eef5fb;
  color:var(--pt-blue);
  opacity:1;
}
@media (max-width: 1200px){
  .kiosk-split{
    grid-template-columns:1fr;
  }
}


/* Version 7.0.9 kiosk layout refinement */
.kiosk-container{
  max-width: 1680px;
  padding: 0 20px;
}
.kiosk-admin-link-wrap{
  display:flex;
  justify-content:flex-end;
  margin: 2px 4px 10px 0;
}
.subtle-admin-link{
  display:inline-block;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.01em;
  color:#7a8795;
  text-decoration:none;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:2px 4px;
  border-radius:6px;
  opacity:.72;
}
.subtle-admin-link:hover{
  background:transparent !important;
  color:var(--pt-blue);
  opacity:.95;
  text-decoration:underline;
}
.kiosk-split{
  display:grid;
  grid-template-columns:minmax(470px, 0.95fr) minmax(760px, 1.45fr);
  gap:24px;
  width:100%;
  align-items:stretch;
  height:calc(100vh - 145px);
  overflow:hidden;
}
.kiosk-left,.kiosk-right{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:0;
  min-width:0;
}
.kiosk-main-card{
  max-width:none;
  margin-left:0;
  margin-right:0;
}
.kiosk-list-card{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  width:100%;
}
.kiosk-list-card table,
.compact-table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
}
.kiosk-list-card th,
.kiosk-list-card td,
.compact-table th,
.compact-table td{
  padding:10px 12px;
  font-size:.96rem;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  vertical-align:top;
}
.kiosk-list-card table{
  display:table;
  overflow:visible;
  max-height:none;
}
.compact-table th:nth-child(1),
.compact-table td:nth-child(1){
  width:32%;
}
.compact-table th:nth-child(2),
.compact-table td:nth-child(2){
  width:18%;
}
.compact-table th:nth-child(3),
.compact-table td:nth-child(3){
  width:26%;
}
.compact-table th:nth-child(4),
.compact-table td:nth-child(4){
  width:24%;
}
.kiosk-card h2,
.kiosk-card h1{
  word-break:break-word;
}
@media (max-width: 1280px){
  .kiosk-container{
    max-width: 1500px;
  }
  .kiosk-split{
    grid-template-columns:minmax(420px, 1fr) minmax(620px, 1.25fr);
  }
}
@media (max-width: 1080px){
  .kiosk-body{
    overflow:auto;
  }
  .kiosk-split{
    grid-template-columns:1fr;
    height:auto;
    overflow:visible;
  }
  .kiosk-list-card{
    min-height:auto;
  }
}


/* Version 7.1.0 kiosk homepage layout polish */
.kiosk-container,
.container {
  max-width: 1760px;
}

.kiosk-wrap.kiosk-split{
  display:grid;
  grid-template-columns:minmax(560px, 0.95fr) minmax(860px, 1.45fr);
  gap:28px;
  width:100%;
  align-items:start;
  height:calc(100vh - 170px);
  max-width: 1480px;
  margin: 0 auto;
}

.kiosk-main-card{
  width:100%;
  max-width:none;
  min-height:560px;
}

.kiosk-list-card{
  width:100%;
  max-width:none;
  min-height:560px;
}

.kiosk-right .card,
.kiosk-left .card{
  width:100%;
  box-sizing:border-box;
}

.kiosk-list-card h2{
  font-size:2rem;
  line-height:1.15;
  word-break:normal;
  overflow-wrap:anywhere;
  margin-bottom:18px;
}

.kiosk-list-card .inline-form{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.kiosk-list-card .compact-table{
  width:100%;
}

.compact-table th:nth-child(1),
.compact-table td:nth-child(1){
  width:34%;
}

.compact-table th:nth-child(2),
.compact-table td:nth-child(2){
  width:18%;
}

.compact-table th:nth-child(3),
.compact-table td:nth-child(3){
  width:24%;
}

.compact-table th:nth-child(4),
.compact-table td:nth-child(4){
  width:24%;
}

.kiosk-footer-link-wrap{
  max-width:1480px;
  margin:12px auto 0 auto;
  display:flex;
  justify-content:flex-end;
}

.footer-admin-link{
  font-size:.78rem;
  color:#7d8896;
  text-decoration:none;
  opacity:.72;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:2px 2px;
}

.footer-admin-link:hover{
  text-decoration:underline;
  color:var(--pt-blue);
  opacity:1;
}

@media (max-width: 1500px){
  .kiosk-wrap.kiosk-split{
    grid-template-columns:minmax(500px, 1fr) minmax(720px, 1.25fr);
    max-width: 1360px;
  }
  .kiosk-footer-link-wrap{
    max-width:1360px;
  }
}

@media (max-width: 1180px){
  .kiosk-wrap.kiosk-split{
    grid-template-columns:1fr;
    height:auto;
    max-width:920px;
  }
  .kiosk-main-card,
  .kiosk-list-card{
    min-height:auto;
  }
  .kiosk-footer-link-wrap{
    max-width:920px;
  }
}


/* Version 7.1.1 kiosk cleanup */
.kiosk-wrap.kiosk-split{
  display:grid !important;
  grid-template-columns:minmax(620px, 0.95fr) minmax(760px, 1.15fr) !important;
  gap:28px !important;
  width:100% !important;
  max-width:1460px !important;
  margin:0 auto !important;
  align-items:start !important;
  height:auto !important;
  overflow:visible !important;
}
.kiosk-left,.kiosk-right{
  min-width:0 !important;
  width:100% !important;
}
.kiosk-main-card,
.kiosk-list-card{
  width:100% !important;
  max-width:none !important;
  min-height:560px !important;
}
.kiosk-list-card{
  overflow:hidden !important;
}
.kiosk-list-card table,
.compact-table{
  width:100% !important;
  table-layout:auto !important;
  border-collapse:collapse !important;
}
.kiosk-list-card h2{
  font-size:1.9rem !important;
  line-height:1.15 !important;
  margin-bottom:16px !important;
}
.kiosk-list-card .inline-form{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:16px !important;
  flex-wrap:wrap !important;
}
.kiosk-list-card td,
.kiosk-list-card th,
.compact-table td,
.compact-table th{
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}
.kiosk-footer-link-wrap{
  display:flex !important;
  justify-content:flex-end !important;
  max-width:1460px !important;
  margin:10px auto 0 auto !important;
}
.footer-admin-link,
.subtle-admin-link{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  color:#7b8794 !important;
  text-decoration:none !important;
  font-size:.78rem !important;
  padding:2px 0 !important;
  opacity:.78 !important;
}
.footer-admin-link:hover,
.subtle-admin-link:hover{
  color:var(--pt-blue) !important;
  text-decoration:underline !important;
}
@media (max-width: 1180px){
  .kiosk-wrap.kiosk-split{
    grid-template-columns:1fr !important;
    max-width:920px !important;
  }
  .kiosk-main-card,
  .kiosk-list-card{
    min-height:auto !important;
  }
  .kiosk-footer-link-wrap{
    max-width:920px !important;
  }
}




/* Leaderboard page scrolling */
.kiosk-leaderboard-page{width:100%;max-width:1400px;height:calc(100vh - 150px);overflow-y:auto;min-height:0;padding:18px 0 24px}
.kiosk-leaderboard-page .card.kiosk-card{margin-bottom:18px}
.kiosk-leaderboard-page .masonry-grid{column-count:2;column-gap:18px}
@media (max-width: 980px){
  .kiosk-leaderboard-page{height:auto;overflow:visible;padding:0}
  .kiosk-leaderboard-page .masonry-grid{column-count:1}
}

/* Email 2FA */
.checkbox-row{display:flex;align-items:flex-start;gap:10px;line-height:1.35}
.checkbox-row input[type="checkbox"]{width:auto;margin-top:3px}
.checkbox-grid-cell{display:flex;align-items:flex-end}
.auth-card{max-width:520px}
.code-input{font-size:1.4rem;letter-spacing:.28em;text-align:center}
.inline-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.inline-actions form{margin:0}


.button-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.settings-section{
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  background:#fcfdff;
  margin-bottom:18px;
}
.settings-section h2{
  margin-top:0;
  margin-bottom:8px;
}
.settings-section-2fa{
  border-color:rgba(15,76,129,.22);
  box-shadow:0 8px 20px rgba(15,76,129,.06);
}
.settings-submit-row{
  position:sticky;
  bottom:0;
  background:linear-gradient(to top, rgba(255,255,255,0.98), rgba(255,255,255,0.92));
  padding-top:12px;
}
.settings-submit-row button{
  width:100%;
}


/* Version 7.1.7 settings page tidy */
.settings-layout{display:grid;align-items:start;grid-template-columns:minmax(0,7fr) minmax(320px,3fr);gap:24px;}
.settings-form-card{position:relative;}
.settings-panels,.settings-info-column{min-width:0;}
.settings-info-column{gap:18px;position:sticky;top:92px;align-self:start;}
.settings-info-card p{margin:0 0 10px 0;}
.settings-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.settings-subsection{border-top:1px solid var(--border);padding-top:14px;margin-top:14px;}
.settings-subsection:first-of-type{border-top:none;padding-top:0;margin-top:0;}
.settings-subsection h3{margin:0 0 10px 0;font-family:'Raleway', Arial, sans-serif;font-size:1.05rem;}
.settings-section > .muted{margin-top:0;margin-bottom:14px;}
@media (max-width: 980px){.settings-summary-grid{grid-template-columns:1fr;}}

.permissions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.permission-group {
  border: 1px solid rgba(49, 79, 111, 0.14);
  border-radius: 14px;
  padding: 14px;
  background: rgba(255,255,255,0.65);
}
.permission-group h3 {
  margin: 0 0 10px;
  font-size: 1rem;
}
.compact-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 8px;
  font-size: 0.92rem;
}

.settings-mini-pre{white-space:pre-wrap;background:#f6f8fb;border:1px solid #d9e1ea;border-radius:12px;padding:.75rem;font-family:inherit;font-size:.95rem;}


.settings-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.settings-tab{width:auto;padding:10px 16px;border:1px solid var(--border);background:#fff;color:var(--pt-blue-dark);font-weight:700}
.settings-tab.active{background:var(--pt-blue);color:#fff}
.settings-panels{display:grid;gap:16px}
.settings-panel{display:none}
.settings-panel.active{display:block}
.settings-divider{border:none;border-top:1px solid var(--border);margin:18px 0}
.settings-submit-row{display:flex;justify-content:flex-end;margin-top:8px}
.button-row{display:flex;gap:10px;flex-wrap:wrap}
.button-row button{width:auto}
.settings-info-column pre{white-space:pre-wrap;word-break:break-word}

.settings-system-status-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}
.system-status-overall-pill{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .72rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent}
.system-status-overall-pill.tone-green{background:#edf9f0;color:#1f6f3d;border-color:#bfe8ca}
.system-status-overall-pill.tone-amber{background:#fff7e8;color:#9a6800;border-color:#f1d9a0}
.system-status-overall-pill.tone-red{background:#fff0f0;color:#9b1c1c;border-color:#efc2c2}
.system-status-summary-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .85rem}
.system-status-count{display:inline-flex;align-items:center;padding:.24rem .58rem;border-radius:999px;font-size:.76rem;font-weight:700;border:1px solid transparent}
.system-status-count.tone-green{background:#edf9f0;color:#1f6f3d;border-color:#bfe8ca}
.system-status-count.tone-amber{background:#fff7e8;color:#9a6800;border-color:#f1d9a0}
.system-status-count.tone-red{background:#fff0f0;color:#9b1c1c;border-color:#efc2c2}
.system-status-list{display:grid;gap:.6rem}
.system-status-item{display:grid;gap:.35rem;padding:.82rem .9rem;border-radius:18px;border:1px solid rgba(49,79,111,.1);background:#f8fbfe}
.system-status-item.tone-green{background:#f6fbf7;border-color:#d1ecd8}
.system-status-item.tone-amber{background:#fffaf0;border-color:#f2dfb3}
.system-status-item.tone-red{background:#fff5f5;border-color:#efcaca}
.system-status-topline{display:flex;align-items:center;gap:.55rem;font-size:.97rem;line-height:1.2}
.system-status-light{width:.8rem;height:.8rem;border-radius:999px;display:inline-block;box-shadow:0 0 0 3px rgba(49,79,111,.08) inset,0 0 0 1px rgba(49,79,111,.08)}
.system-status-light.tone-green{background:#34c759}
.system-status-light.tone-amber{background:#f5a623}
.system-status-light.tone-red{background:#ef4444}
.system-status-copy{display:grid;gap:.18rem}
.system-status-summary{font-weight:700;color:#243447;line-height:1.35}
.system-status-detail{font-size:.88rem;line-height:1.4}
.system-status-micro-grid{margin-top:.15rem}
@media (max-width: 900px){
  .settings-tabs{position:sticky;top:84px;z-index:5;background:var(--bg);padding-bottom:8px}
}


.status-icons-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: 0.35rem;
  white-space: nowrap;
}

.tier-icon, .youth-icon, .birthday-icon, .status-key-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
}

.status-key-card {
  margin-top: 1rem;
}

.status-key-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-top: 0.5rem;
}

.status-key-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.55rem;
  border-radius: 999px;
  background: rgba(15, 76, 129, 0.08);
}

.compact-status-key {
  margin-top: 0.75rem;
}



.status-key-toolbar {
  display: flex;
  justify-content: flex-end;
  margin: 0 0 1rem 0;
}

.status-key-modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10, 20, 40, 0.45);
  z-index: 9999;
  padding: 1.25rem;
}

.status-key-modal.open {
  display: flex;
  align-items: center;
  justify-content: center;
}

.status-key-modal-card {
  width: min(720px, 100%);
  background: #fff;
  border-radius: 16px;
  padding: 1rem 1rem 1.25rem;
  box-shadow: 0 20px 60px rgba(0,0,0,0.22);
}

.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.btn-small {
  padding: 0.45rem 0.7rem;
  font-size: 0.95rem;
}


.clocked-in-key-row {
  margin-top: 0.75rem;
  display: flex;
  justify-content: flex-start;
}

.subtle-key-btn {
  opacity: 0.9;
}

.leaderboard-key-box {
  margin: 0.5rem 0 1rem;
  padding: 0.6rem 0.8rem;
  border-radius: 12px;
  background: rgba(15, 76, 129, 0.06);
  border: 1px solid rgba(15, 76, 129, 0.08);
}

.subtle-key-item {
  background: transparent;
  padding: 0.15rem 0.25rem;
}



.birthday-subtitle {
  margin: -0.35rem 0 1rem;
  font-size: 1.02rem;
  color: #5f6675;
}


.settings-subsection textarea {
  width: 100%;
  min-height: 7rem;
}



.settings-panel[data-panel="templates"] .stack {
  display: grid;
  gap: 1rem;
}

.settings-panel[data-panel="templates"] input,
.settings-panel[data-panel="templates"] textarea {
  width: 100%;
}

.settings-subsection {
  border-top: 1px solid rgba(0,0,0,0.08);
  padding-top: 1rem;
}

.settings-subsection:first-of-type {
  border-top: 0;
  padding-top: 0;
}


.security-note-card {
  margin-bottom: 1rem;
}

.template-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}

.template-block {
  border: 1px solid #d9e1ea;
  border-radius: 14px;
  padding: 16px;
  background: #fbfcfe;
}

.template-block.template-enabled {
  border-color: var(--pt-blue, #0f4c81);
  box-shadow: 0 0 0 1px rgba(15, 76, 129, 0.08);
}

.template-fields {
  margin-top: 14px;
  display: none;
}

.template-block.template-enabled .template-fields,
.template-block .template-fields.always-visible {
  display: block;
}

.toggle-switch {
  position: relative;
  display: inline-flex;
  width: 88px;
  min-width: 88px;
  height: 34px;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  inset: 0;
  cursor: pointer;
  background: #c8d2de;
  transition: .2s;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 10px;
  overflow: hidden;
}

.toggle-text {
  position: relative;
  z-index: 1;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.toggle-text-off { color: #435469; }
.toggle-text-on { color: rgba(255,255,255,.72); }

.toggle-slider:before {
  content: "";
  position: absolute;
  height: 26px;
  width: 26px;
  left: 4px;
  top: 4px;
  background: #fff;
  transition: .2s;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.18);
}

.toggle-switch input:checked + .toggle-slider {
  background: var(--pt-blue, #0f4c81);
}

.toggle-switch input:checked + .toggle-slider:before {
  transform: translateX(54px);
}

.toggle-switch input:checked + .toggle-slider .toggle-text-off {
  color: rgba(255,255,255,.6);
}

.toggle-switch input:checked + .toggle-slider .toggle-text-on {
  color: #fff;
}

.required-toggle-note {
  min-width: 88px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  background: rgba(15,76,129,.12);
  color: var(--pt-blue, #0f4c81);
  font-weight: 800;
}

.backup-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px 18px;
}

.manual-match-buttons{margin:18px 0}
.surname-choice-btn{font-size:1.05rem}


.bulk-actions-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.bulk-delete-btn{width:auto}
.select-col{width:44px;text-align:center}
.volunteer-select,#select-all-volunteers{width:18px;height:18px}




/* Final Wi-Fi icon sizing fix */





/* Version 7.4.2 kiosk fixes */
.kiosk-flash-wrap{
  max-width:1280px;
  margin:18px auto 0;
  padding:0 16px;
}
.kiosk-flash{
  margin-bottom:10px;
}
.kiosk-container{
  margin-top:16px;
}

.nfc-pulse{
  width:72px !important;
  height:72px !important;
  margin:14px auto 22px !important;
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:transparent !important;
  animation:none !important;
  overflow:visible !important;
}
.nfc-pulse::after{
  display:none !important;
  content:none !important;
}
.nfc-pulse-svg{
  position:relative !important;
  z-index:2 !important;
  width:72px !important;
  height:72px !important;
  min-width:72px !important;
  min-height:72px !important;
  max-width:72px !important;
  max-height:72px !important;
  display:block !important;
  color:var(--pt-blue) !important;
  fill:var(--pt-blue) !important;
}
.nfc-pulse-svg path{
  fill:currentColor !important;
}

.manual-match-modal-card{
  width:min(560px, 94vw) !important;
}
.surname-choice-btn{
  font-size:1.05rem;
  padding:14px 16px;
  margin-bottom:12px;
}
.manual-match-buttons form:last-child .surname-choice-btn{
  margin-bottom:0;
}
.subtle-back-btn{
  margin-top:8px;
}

@media (max-width: 980px){
  .kiosk-flash-wrap{
    margin-top:12px;
  }
  .kiosk-container{
    margin-top:12px;
  }
}


/* Clean NFC / WiFi kiosk block */
#nfc-box{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

#nfc-box .nfc-icon-wrap{
  width:120px !important;
  height:120px !important;
  min-width:120px !important;
  min-height:120px !important;
  max-width:120px !important;
  max-height:120px !important;
  margin:14px auto 22px !important;
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  background:#314f6f !important;
  border:none !important;
  box-shadow:0 14px 34px rgba(15,76,129,.24) !important;
  overflow:hidden !important;
}

#nfc-box .nfc-icon-wrap.blue-circle-pulse{
  animation:kioskPulseCircle 1.8s ease-in-out infinite !important;
}

#nfc-box .nfc-icon-wrap::before,
#nfc-box .nfc-icon-wrap::after{
  display:none !important;
  content:none !important;
}

#nfc-box .nfc-pulse,
#nfc-box .nfc-pulse::after{
  display:none !important;
  content:none !important;
}

#nfc-box .nfc-pulse-svg,
#nfc-box .nfc-pulse-svg.icon-only-pulse,
#nfc-box .nfc-pulse-svg.wifi-in-circle,
#nfc-box .nfc-pulse-svg.icon-only-pulse.wifi-in-circle{
  display:block !important;
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  min-height:50px !important;
  max-width:50px !important;
  max-height:50px !important;
  flex:0 0 50px !important;
  animation:none !important;
  transform:none !important;
  transform-origin:center center !important;
  overflow:visible !important;
}

#nfc-box .nfc-pulse-svg path,
#nfc-box .nfc-pulse-svg.icon-only-pulse path,
#nfc-box .nfc-pulse-svg.wifi-in-circle path,
#nfc-box .nfc-pulse-svg.icon-only-pulse.wifi-in-circle path{
  fill:#ffffff !important;
  stroke:none !important;
}

@keyframes kioskPulseCircle{
  0%{transform:scale(1);opacity:1;}
  50%{transform:scale(1.08);opacity:.9;}
  100%{transform:scale(1);opacity:1;}
}



/* Kiosk manual login toggle */
.kiosk-login-panel[hidden]{display:none !important;}
.subtle-back-btn{margin-top:8px;}


/* Stronger kiosk manual toggle fallback */
body.manual-login-active #nfc-box,
body.manual-login-active #nfc-box *{
  display:none !important;
}
body.manual-login-active #manual-box{
  display:block !important;
  visibility:visible !important;
  pointer-events:auto !important;
  height:auto !important;
}

.volunteer-overview-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(205px,1fr));
  gap:14px;
  margin-bottom:18px;
}

.overview-mini-card {
  padding:14px 16px;
  min-height:176px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  overflow:hidden;
}

.overview-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.overview-card-head.compact-head {
  align-items:flex-start;
}

.overview-label {
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
}

.overview-number {
  font-size:1.9rem;
  line-height:1;
  font-weight:800;
  color:var(--pt-blue);
  font-family:'Raleway', Arial, sans-serif;
}

.overview-chip {
  flex:0 0 auto;
  padding:6px 10px;
  border-radius:999px;
  background:#eef5fb;
  color:var(--pt-blue-dark);
  font-size:.78rem;
  font-weight:700;
  white-space:nowrap;
}

.overview-caption {
  font-size:.86rem;
  line-height:1.35;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.overview-meta-row {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:.8rem;
  color:var(--muted);
}

.mini-progress {
  width:100%;
  height:10px;
  border-radius:999px;
  background:#e8eef5;
  overflow:hidden;
  position:relative;
}

.mini-progress > span,
.stacked-progress > span {
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,var(--pt-blue),#5da1d8);
}

.stacked-progress {
  display:flex;
  gap:0;
  background:#e8eef5;
  overflow:hidden;
  height:10px;
}

.stacked-progress > span {
  border-radius:999px;
}

.stacked-progress .stack-active {
  background:linear-gradient(90deg,var(--pt-blue),#5da1d8);
}

.stacked-progress .stack-archived {
  background:#d7dee8;
}

.mini-bar-chart {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  min-height:84px;
}

.mini-bar-group {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}

.mini-bar-rail {
  height:64px;
  width:100%;
  max-width:24px;
  background:#eef3f8;
  border-radius:999px;
  display:flex;
  align-items:flex-end;
  padding:2px;
}

.mini-bar-fill {
  width:100%;
  border-radius:999px;
  background:linear-gradient(180deg,#6fb0e5 0%, var(--pt-blue) 100%);
  min-height:6px;
}

.mini-bar-label {
  font-size:.72rem;
  color:var(--muted);
  text-align:center;
  white-space:nowrap;
}

.overview-chart-row {
  display:flex;
  align-items:center;
  gap:12px;
}

.mini-donut {
  width:72px;
  height:72px;
  border-radius:50%;
  position:relative;
  flex:0 0 72px;
}

.mini-donut::after {
  content:'';
  position:absolute;
  inset:14px;
  background:#fff;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(15,76,129,.05);
}

.mini-legend {
  flex:1;
  min-width:0;
  display:grid;
  gap:6px;
}

.mini-legend-row {
  display:grid;
  grid-template-columns:10px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
  font-size:.8rem;
}

.mini-legend-swatch {
  width:10px;
  height:10px;
  border-radius:999px;
}

.mini-legend-text {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media (max-width: 720px) {
  .volunteer-overview-grid {
    grid-template-columns:repeat(auto-fit,minmax(165px,1fr));
  }

  .overview-mini-card {
    min-height:160px;
  }

  .overview-chart-row {
    align-items:flex-start;
  }

  .mini-donut {
    width:62px;
    height:62px;
    flex-basis:62px;
  }

  .mini-donut::after {
    inset:12px;
  }
}

.toolbox-card summary {
  cursor: pointer;
  font-weight: 700;
  font-family: 'Raleway', sans-serif;
  list-style: none;
}

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

.toolbox-card summary::after {
  content: '▾';
  float: right;
}

.toolbox-card[open] summary::after {
  content: '▴';
}

.toolbox-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin-top: 16px;
}

.bulk-buttons {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}


.volunteer-table-card {
  padding-top: 16px;
}

.table-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.volunteer-search-form {
  width: 100%;
  align-items: stretch;
}

.volunteer-search-form input[type="text"] {
  flex: 1 1 320px;
  min-width: 220px;
}

.volunteer-search-form button,
.volunteer-search-form .small-btn {
  width: auto;
  min-width: 110px;
}

.tidy-bulk-bar {
  padding: 12px 14px;
  background: #f8fbfe;
  border: 1px solid var(--border);
  border-radius: 16px;
}

.compact-check {
  width: auto;
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--pt-blue-dark);
}

.compact-check input {
  width: 18px;
  height: 18px;
}

.tidy-bulk-buttons {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.tidy-bulk-buttons button {
  width: auto;
}

.bulk-action-btn {
  min-width: 150px;
  padding: 10px 14px;
  border-radius: 12px;
}

.danger-outline {
  background: #fff !important;
  color: #b42318 !important;
  border: 1px solid rgba(180, 35, 24, 0.24) !important;
}

.table-shell {
  overflow-x: auto;
  width: 100%;
}

.volunteer-table {
  min-width: 1120px;
}

.sort-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

.sort-link:hover {
  color: var(--pt-blue);
}

.sort-link.active {
  color: var(--pt-blue-dark);
}

.sort-indicator {
  font-size: 0.82rem;
  opacity: 0.8;
}

.inline-icon-form {
  margin: 0;
}

.bulk-actions-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.bulk-delete-btn {
  width: auto;
}

@media (max-width: 760px) {
  .tidy-bulk-bar {
    align-items: stretch;
  }

  .tidy-bulk-buttons {
    width: 100%;
  }

  .tidy-bulk-buttons button {
    flex: 1 1 180px;
  }
}


.volunteer-filter-grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(160px, 1fr)) auto;
  gap: 12px;
  align-items: end;
}

.volunteer-filter-grid label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.volunteer-filter-grid .filter-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--muted);
}

.volunteer-filter-grid .search-span {
  grid-column: span 2;
}

.volunteer-filter-actions {
  display: flex;
  gap: 10px;
  align-items: end;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.volunteer-filter-grid input,
.volunteer-filter-grid select {
  width: 100%;
}

@media (max-width: 980px) {
  .volunteer-filter-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
  .volunteer-filter-grid .search-span {
    grid-column: 1 / -1;
  }
}

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

.volunteer-record-page{display:grid;gap:18px}
.volunteer-record-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}
.eyebrow{margin:0 0 6px 0;color:var(--muted);font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.hero-subline{margin:8px 0 0 0}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.compact-inline-form{margin:0}
.volunteer-filter-card{padding-top:18px}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.section-heading-row h2{margin:0 0 4px 0}
.section-heading-row p{margin:0}
.volunteer-range-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:end}
.current-range-label{margin:12px 0 0 0}
.volunteer-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.dashboard-stat-card{padding:16px;display:flex;flex-direction:column;gap:8px;min-height:138px}
.dashboard-stat-label{font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.dashboard-stat-value{font-family:'Raleway', Arial, sans-serif;font-size:2rem;line-height:1;color:var(--pt-blue);font-weight:800}
.dashboard-stat-value-small{font-size:1.3rem;line-height:1.15}
.dashboard-stat-meta{font-size:.9rem;color:var(--muted)}
.stat-progress{margin-top:auto}
.volunteer-insight-grid,.volunteer-management-grid{align-items:start}
.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.achievement-pill{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:16px;border:1px solid var(--border);background:#f8fbfe}
.achievement-pill.reached{background:#eef7f1;border-color:#d4ead9}
.achievement-pill.pending{background:#fafbfc}
.achievement-icon{font-size:1.35rem;line-height:1}
.achievement-copy{display:flex;flex-direction:column;gap:2px}
.achievement-copy strong{font-size:.96rem}
.achievement-copy small{color:var(--muted)}
.insight-list{display:grid;gap:12px}
.insight-row{display:grid;gap:8px}
.insight-copy{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.insight-copy span{color:var(--muted);font-size:.92rem}
.snapshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.snapshot-grid div{padding:12px 14px;border-radius:16px;background:#f8fbfe;border:1px solid var(--border);display:grid;gap:4px}
.snapshot-grid span{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:800}
.snapshot-grid strong{font-size:.98rem;word-break:break-word}
.invite-form-stack{margin-top:16px}
.programme-checkbox-stack{gap:8px}
.programme-checkbox-row{padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:#f8fbfe}
@media (max-width: 760px){
  .volunteer-record-hero{align-items:stretch}
  .hero-actions{width:100%}
  .hero-actions > *{flex:1 1 180px}
  .dashboard-stat-card{min-height:122px}
  .insight-copy{display:grid;gap:4px}
}


.volunteer-name-link{font-weight:700;color:var(--pt-blue-dark);text-decoration:none}
.volunteer-name-link:hover{text-decoration:underline}
button[disabled], .small-btn[aria-disabled="true"], .small-btn.disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.15)}
.checkbox-stack-block{gap:8px}

.shift-filter-card,
.shift-add-card,
.shift-table-card,
.danger-zone-card {
  padding-top: 18px;
}

.shift-filter-form,
.shift-manual-form,
.shift-reset-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  align-items: end;
}


.shift-manual-time-pair{display:grid; grid-template-columns:1fr 1fr; gap:12px; grid-column:span 2;}
.shift-manual-time-pair > div{min-width:0;}
@media (max-width: 760px){
  .shift-manual-time-pair{grid-template-columns:1fr; grid-column:span 1;}
}
.shift-filter-actions,
.shift-manual-submit,
.shift-reset-submit {
  display: flex;
  align-items: end;
}

.shift-filter-actions button,
.shift-manual-submit button,
.shift-reset-submit button {
  width: auto;
  min-width: 140px;
}

.shift-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.shift-stat-card.compact {
  min-height: 0;
  gap: 10px;
}

.micro-bar {
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: #e8f0f8;
  margin-top: auto;
}

.micro-bar span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--pt-blue), #6ba8d6);
}

.shift-bulk-bar {
  margin-bottom: 14px;
}

.shift-table {
  min-width: 1080px;
}

.check-column {
  width: 46px;
}

.shift-edit-details summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.shift-edit-panel {
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 14px;
  border-radius: 16px;
  background: #f8fbfe;
  border: 1px solid var(--border);
}

.shift-inline-edit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  align-items: end;
}

.shift-inline-actions {
  display: flex;
  align-items: end;
}

.shift-inline-actions button,
.shift-delete-form .small-btn {
  width: auto;
}

.shift-delete-form {
  margin: 0;
}

.danger-zone-card {
  border-color: rgba(180, 35, 24, 0.2);
  background: linear-gradient(180deg, #fff 0%, #fff9f8 100%);
}

.danger-collapse summary {
  color: #9f1f15;
}

.danger-zone-copy {
  margin-top: 14px;
}

@media (max-width: 760px) {
  .shift-filter-actions button,
  .shift-manual-submit button,
  .shift-reset-submit button,
  .shift-inline-actions button,
  .shift-delete-form .small-btn {
    width: 100%;
  }
}

.projects-admin-page {
  gap: 18px;
}

.projects-hero-card,
.projects-filter-card,
.projects-add-card,
.project-card-block {
  padding-top: 18px;
}

.projects-hero-note {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.projects-hero-note .status-pill.archived,
.assigned-only-pill {
  background: #eef4ff;
  color: #244f94;
}

.projects-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.compact-stat-card {
  min-height: 0;
}

.projects-filter-form,
.projects-add-grid,
.project-inline-edit-form,
.role-edit-card {
  display: grid;
  gap: 12px;
}

.projects-filter-form {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  align-items: end;
}

.projects-filter-actions {
  display: flex;
  align-items: end;
}

.projects-filter-actions button {
  width: auto;
  min-width: 140px;
}

.projects-add-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  align-items: start;
}

.compact-form-card {
  padding: 14px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: #f8fbfe;
}

.project-inline-check {
  width: auto;
}

.projects-card-grid {
  display: grid;
  gap: 16px;
}

.project-card-block {
  border: 1px solid var(--border);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.project-card-block.archived-card {
  background: linear-gradient(180deg, #fcfcfd 0%, #f7f8fa 100%);
}

.project-card-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.project-title-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.project-title-row h2 {
  margin: 0;
}

.project-card-meta {
  margin: 8px 0 0 0;
}

.project-header-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.project-inline-edit-form {
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  margin: 0;
}

.project-inline-edit-form input {
  min-width: 220px;
}

.project-inline-edit-form .small-btn,
.project-header-actions .small-btn,
.role-action-group .small-btn {
  width: auto;
}

.project-role-section {
  display: grid;
  gap: 12px;
}

.project-role-heading {
  margin-bottom: 0;
}

.role-card-list {
  display: grid;
  gap: 12px;
}

.role-card-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: stretch;
}

.role-edit-card {
  grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) minmax(260px, 1.3fr) auto;
  align-items: end;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: #f8fbfe;
  margin: 0;
}

.archived-role-card {
  background: #fbfcfd;
}

.role-edit-card label {
  margin-bottom: 4px;
}

.role-edit-visibility {
  display: grid;
  gap: 10px;
}

.role-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.role-action-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: end;
}

.role-action-inline {
  justify-content: flex-end;
}

.separate-actions {
  align-self: center;
}

.archived-role-drawer {
  margin-top: 6px;
}

.archived-role-drawer summary {
  font-weight: 800;
  cursor: pointer;
}

.empty-roles-copy {
  margin: 0;
}

@media (max-width: 980px) {
  .role-card-wrap {
    grid-template-columns: 1fr;
  }

  .role-edit-card {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  }

  .role-action-inline,
  .separate-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 760px) {
  .projects-filter-actions button,
  .project-header-actions .small-btn,
  .project-inline-edit-form .small-btn,
  .role-action-group .small-btn {
    width: 100%;
  }

  .project-inline-edit-form {
    grid-template-columns: 1fr;
  }

  .project-header-actions {
    width: 100%;
  }
}


.dashboard-recognition-strip {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.recognition-summary-grid .kpi,
.recognition-grid .card {
  min-height:auto;
}
.recognition-team-card {
  margin-bottom:1rem;
}
.settings-stack-card {
  margin-top:1rem;
}
.recognition-admin-grid {
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
}
.settings-mini-grid {
  margin-bottom:1rem;
}
.settings-youth-programmes {
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.settings-youth-row {
  display:grid;
  grid-template-columns:minmax(180px,2fr) minmax(110px,120px) minmax(80px,100px) auto;
  gap:.75rem;
  align-items:center;
  padding:.85rem;
  border:1px solid #d8e1ea;
  border-radius:14px;
  background:#f7fafc;
}
.settings-youth-meta {
  font-size:.92rem;
  color:#4f6475;
}
.settings-youth-actions {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  justify-content:flex-end;
}
.recognition-grid {
  margin-bottom:1rem;
}
.programme-report-hero {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.programme-report-metrics {
  display:grid;
  grid-template-columns:repeat(3, minmax(110px, 1fr));
  gap:.75rem;
}
.programme-report-metrics div,
.certificate-stats div {
  background:#f7fafc;
  border:1px solid #d8e1ea;
  border-radius:14px;
  padding:.85rem 1rem;
}
.programme-report-metrics span,
.certificate-stats span {
  display:block;
  font-size:.78rem;
  color:#5f7384;
  margin-bottom:.25rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.certificate-card-large {
  text-align:center;
  padding:2.25rem;
}
.certificate-logo {
  width:88px;
  height:auto;
  margin:0 auto 1rem;
}
.certificate-kicker {
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#5f7384;
  font-size:.82rem;
}
.certificate-stats {
  display:grid;
  grid-template-columns:repeat(3, minmax(140px, 1fr));
  gap:.75rem;
  margin:1.25rem 0 1.75rem;
}
.certificate-signatures {
  display:grid;
  grid-template-columns:repeat(2, minmax(160px, 1fr));
  gap:2rem;
  margin-top:2rem;
}
.signature-line {
  border-top:2px solid #8093a4;
  padding-top:.5rem;
  text-align:left;
}
.signature-line span {
  font-size:.85rem;
  color:#4f6475;
}
@media (max-width: 860px) {
  .dashboard-recognition-strip,
  .programme-report-hero,
  .settings-youth-row {
    grid-template-columns:1fr;
    display:block;
  }
  .dashboard-recognition-strip {
    display:block;
  }
  .programme-report-metrics,
  .certificate-stats,
  .certificate-signatures {
    grid-template-columns:1fr;
  }
  .settings-youth-actions {
    justify-content:flex-start;
    margin-top:.5rem;
  }
}


.hidden-scan-form { margin: 0; }
.hidden-scan-input {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.kiosk-tap-panel { text-align: center; }
.tap-and-go-copy h3 { margin-bottom: .35rem; }
.mobile-kiosk-warning {
  text-align: center;
  display: grid;
  gap: .85rem;
}
.mobile-kiosk-warning-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 1.6rem;
  background: rgba(49,79,111,.12);
}
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .8rem 1rem;
  border-radius: 14px;
  background: var(--pt-blue, #314f6f);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}
.mobile-clock-page {
  max-width: 760px;
  margin: 0 auto;
}
.mobile-clock-hero,
.mobile-clock-card {
  border-radius: 24px;
}
.mobile-clock-links {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}
.mobile-location-notice {
  border: 1px solid rgba(49,79,111,.18);
  background: rgba(49,79,111,.06);
  border-radius: 16px;
  padding: .9rem 1rem;
}
.settings-url-grid,
.settings-location-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: .85rem;
}
.compact-location-card {
  padding: 1rem;
}
.location-admin-list { margin-top: 1rem; }
@media (max-width: 720px) {
  .mobile-clock-links { align-items: stretch; }
  .button-link { width: 100%; }
}


.mobile-location-status {
  margin-top: .75rem;
  padding: .8rem .9rem;
  border-radius: 14px;
  border: 1px solid rgba(49,79,111,.14);
  background: rgba(255,255,255,.72);
  font-weight: 600;
}
.mobile-location-status.checking {
  color: #4f5b67;
}
.mobile-location-status.ok {
  color: #155724;
  background: rgba(40,167,69,.10);
  border-color: rgba(40,167,69,.22);
}
.mobile-location-status.warn {
  color: #7a4d00;
  background: rgba(255,193,7,.14);
  border-color: rgba(255,193,7,.28);
}
.mobile-clock-card,
.mobile-clock-card form,
.mobile-clock-card label {
  min-width: 0;
}
.mobile-dob-field,
.mobile-clock-card input[type="date"] {
  box-sizing: border-box;
  display: block;
  inline-size: 100%;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px 12px;
  padding-right: 12px;
  font-size: 16px;
  line-height: 1.2;
  overflow: hidden;
  -webkit-appearance: none;
  appearance: none;
}
.mobile-clock-card input[type="date"]::-webkit-date-and-time-value {
  text-align: left;
}
.mobile-clock-card input[type="date"]::-webkit-calendar-picker-indicator {
  margin-left: 0;
}

.app-footer{
  padding:0 18px 14px;
  text-align:center;
  color:#7f8da0;
  font-size:.68rem;
  letter-spacing:.03em;
}
.app-footer span{opacity:.85}
.app-footer-kiosk{padding:8px 18px 14px}
.table-wrap{width:100%;overflow:auto}

.dashboard-shell,
.profile-shell{display:grid;gap:18px}
.dashboard-hero-card,
.profile-hero-card{
  display:grid;
  grid-template-columns:minmax(280px, 1.2fr) minmax(320px, 1fr);
  gap:18px;
  align-items:start;
  background:linear-gradient(145deg,#ffffff 0%,#f5f9fd 100%);
}
.dashboard-kicker{
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#71859b;
  margin-bottom:.5rem;
  font-weight:800;
}
.dashboard-hero-copy{max-width:62ch}
.dashboard-hero-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1rem;
}
.dashboard-hero-meta span{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.48rem .8rem;
  border-radius:999px;
  background:#f0f5fa;
  color:#52667a;
  font-size:.86rem;
  font-weight:700;
}
.dashboard-hero-actions-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:.85rem;
}
.dashboard-quick-link{
  display:grid;
  gap:.28rem;
  padding:1rem 1.05rem;
  border-radius:18px;
  text-decoration:none;
  border:1px solid var(--border);
  background:#fff;
  color:var(--pt-blue-dark);
  box-shadow:0 10px 20px rgba(10,40,80,.05);
}
.dashboard-quick-link strong{font-size:1rem}
.dashboard-quick-link span{font-size:.88rem;color:#617488;line-height:1.35}
.dashboard-quick-link.primary{
  background:linear-gradient(135deg,var(--pt-blue),#6b90b6);
  color:#fff;
  border-color:transparent;
}
.dashboard-quick-link.primary span{color:rgba(255,255,255,.86)}
.dashboard-alert-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:0;
}
.dashboard-alert-card strong{display:block;font-family:'Raleway', Arial, sans-serif}
.dashboard-alert-card span{flex:1;color:#4f6478}
.dashboard-alert-warm{background:#fff7eb;border-color:#f3d29c}
.dashboard-alert-info{background:#eef6ff;border-color:#cfe0f4}
.dashboard-metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
}
.dashboard-metric-card{margin-bottom:0;min-height:142px;display:flex;flex-direction:column;gap:.5rem}
.dashboard-metric-label{
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#73879a;
  font-weight:800;
}
.dashboard-metric-value{
  font-family:'Raleway', Arial, sans-serif;
  font-size:2rem;
  color:var(--pt-blue);
  line-height:1;
}
.dashboard-metric-meta{font-size:.9rem;color:#5f7386}
.dashboard-main-grid,
.dashboard-chart-grid,
.profile-grid-main{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.95fr);
  gap:18px;
}
.dashboard-panel,
.profile-panel-card{margin-bottom:0}
.dashboard-panel-wide{grid-column:span 1}
.dashboard-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}
.dashboard-panel-head.compact{margin-bottom:.85rem}
.dashboard-panel-head h2,
.profile-panel-head h2{margin:.1rem 0 .25rem}
.dashboard-table th{white-space:nowrap}
.dashboard-person-cell{display:grid;gap:.25rem}
.dashboard-person-main{font-weight:800;color:#1e3346}
.dashboard-person-sub{display:flex;align-items:center;gap:.45rem;color:#66798b;font-size:.9rem}
.dashboard-empty-state{
  display:grid;
  gap:.3rem;
  padding:1rem 1.1rem;
  border:1px dashed #c8d7e7;
  border-radius:18px;
  background:#f8fbfd;
}
.dashboard-empty-state.compact{padding:.95rem 1rem}
.dashboard-chip-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
.dashboard-chip{
  display:inline-flex;
  gap:.45rem;
  align-items:center;
  padding:.55rem .85rem;
  border-radius:999px;
  background:#eef4f9;
  color:#476175;
  font-size:.9rem;
  font-weight:700;
}
.dashboard-action-stack{display:grid;gap:.8rem}
.dashboard-action-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.95rem 1rem;
  border:1px solid #d9e3ef;
  border-radius:18px;
  background:#fbfdff;
}
.dashboard-action-item.warm{background:#fff8ef;border-color:#f2d3a7}
.dashboard-action-item p{margin:.22rem 0 0}
.dashboard-chart-canvas{width:100% !important;height:280px !important;display:block}
.dashboard-chart-canvas.doughnut{height:250px !important}
.dashboard-status-layout{
  display:grid;
  grid-template-columns:minmax(220px,260px) minmax(0,1fr);
  gap:1rem;
  align-items:center;
}
.dashboard-status-chart-wrap{
  min-height:250px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.dashboard-status-key{margin-top:0}
.dashboard-key-note{margin:.85rem 0 0;font-size:.88rem}
.dashboard-mini-list{display:grid;gap:.8rem}
.dashboard-mini-list-item{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 1rem;
  border:1px solid #d9e3ef;
  border-radius:18px;
  background:#fbfdff;
}
.dashboard-mini-list-item p{margin:.22rem 0 0}
.dashboard-mini-badge{
  min-width:44px;
  height:44px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:#eef4f9;
  font-size:1.2rem;
}
.dashboard-activity-side{
  display:grid;
  justify-items:end;
  gap:.2rem;
  color:#445a6f;
  font-size:.9rem;
  white-space:nowrap;
}
.dashboard-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(120px,1fr));
  gap:.85rem;
}
.dashboard-summary-item{
  padding:1rem;
  border-radius:18px;
  background:linear-gradient(180deg,#f8fbfe 0%,#eef4fa 100%);
  border:1px solid #d8e3ee;
}
.dashboard-summary-item strong{
  display:block;
  font-family:'Raleway', Arial, sans-serif;
  font-size:1.5rem;
  color:var(--pt-blue);
}
.dashboard-summary-label{
  display:block;
  margin-bottom:.3rem;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#71859a;
  font-weight:800;
}
.profile-hero-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:.85rem;
}
.profile-stat-chip{
  padding:.95rem 1rem;
  border-radius:18px;
  background:#f1f6fb;
  border:1px solid #dae4ef;
}
.profile-stat-chip span{
  display:block;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#71859a;
  font-weight:800;
  margin-bottom:.32rem;
}
.profile-stat-chip strong{font-size:1rem;color:#21384d}
.profile-panel-head{margin-bottom:1rem}
.profile-panel-head.split{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.profile-inline-note{
  padding:.85rem 1rem;
  border-radius:16px;
  border:1px solid #d7e2ee;
  background:#f7fafc;
  color:#53677b;
  margin-bottom:1rem;
}
.profile-form-stack{max-width:560px}
.profile-checkbox-row{
  padding:.85rem 1rem;
  border:1px solid #d9e3ef;
  border-radius:16px;
  background:#f9fbfd;
}
.profile-action-row{display:flex;flex-wrap:wrap;gap:.55rem}
.profile-create-grid label{display:grid;gap:.42rem}
.profile-checkbox-card{align-self:end;min-height:54px}
.profile-submit-wrap{display:flex;align-items:end}
@media (max-width: 980px){
  .dashboard-hero-card,
  .profile-hero-card,
  .dashboard-main-grid,
  .dashboard-chart-grid,
  .profile-grid-main,
  .dashboard-status-layout{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  .dashboard-alert-card,
  .dashboard-panel-head,
  .dashboard-action-item,
  .dashboard-mini-list-item,
  .profile-panel-head.split{
    display:grid;
  }
  .dashboard-chart-canvas{height:240px !important}
  .dashboard-summary-grid{grid-template-columns:1fr 1fr}
}


.transfer-backup-meta{
  display:grid;
  gap:12px;
  margin:14px 0 16px;
}

.backup-history-list{
  display:grid;
  gap:10px;
  margin-top:14px;
}

.backup-history-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(15,76,129,.12);
  border-radius:14px;
  background:#fff;
}

.backup-history-size{
  font-weight:700;
  white-space:nowrap;
}

.inline-code{
  display:inline-block;
  max-width:100%;
  padding:6px 8px;
  border-radius:10px;
  background:#f4f7fb;
  font-size:.82rem;
  overflow-wrap:anywhere;
}

@media (min-width: 820px){
  .transfer-backup-meta{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

/* v1.1.0 hardening and reports refresh */
.app-footer{padding:8px 16px 16px;text-align:center;color:var(--muted);font-size:.68rem;opacity:.78}
.app-footer-kiosk{padding-top:0}

.reports-page{display:grid;gap:18px}
.reports-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;background:linear-gradient(135deg, rgba(15,76,129,.08), rgba(15,76,129,.02) 58%, #fff 100%)}
.reports-eyebrow{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--pt-blue);font-weight:800;margin-bottom:8px}
.reports-hero-copy{max-width:760px}
.reports-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.reports-pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.reports-pill{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:#eef5fb;color:var(--pt-blue-dark);font-size:.86rem;font-weight:700}
.reports-section-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.reports-section-heading h2{margin:0 0 4px 0}
.reports-filter-grid{align-items:start}
.reports-filter-grid select[multiple]{min-height:120px}
.reports-volunteer-filter{grid-column:span 2}
.reports-checks{display:grid;gap:10px;align-content:center;padding-top:28px}
.reports-submit-wrap{display:flex;align-items:end;padding-top:28px}
.reports-filter-note{margin:10px 0 0 0}
.reports-disabled-field{opacity:.55}
.reports-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.reports-stat-card{margin-bottom:0;min-height:138px;display:flex;flex-direction:column;justify-content:space-between}
.reports-stat-card.emphasis{background:linear-gradient(155deg, rgba(15,76,129,.12), rgba(15,76,129,.03) 58%, #fff 100%)}
.reports-stat-label{font-size:.88rem;color:var(--muted);font-weight:700}
.reports-stat-value{font-size:2rem;font-weight:800;color:var(--pt-blue-dark);line-height:1.1}
.reports-stat-meta{font-size:.88rem;color:var(--muted)}
.reports-overview-grid .card{margin-bottom:0}
.reports-insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.reports-insight-item{padding:16px;border:1px solid var(--border);border-radius:18px;background:#f8fbfe}
.reports-insight-title{font-size:.8rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.reports-insight-value{font-size:1.15rem;font-weight:800;color:var(--pt-blue-dark);margin-top:4px}
.reports-insight-detail{margin-top:6px;color:var(--muted);font-size:.9rem}
.reports-live-list{display:grid;gap:12px}
.reports-live-item{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:#f8fbfe}
.reports-live-meta{display:grid;justify-items:end;gap:4px;font-weight:700;color:var(--pt-blue-dark)}
.reports-chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.reports-chart-card{margin-bottom:0;min-height:340px;display:flex;flex-direction:column}
.reports-chart-card canvas{width:100% !important;min-height:260px !important;max-height:340px !important}
.chart-span-2{grid-column:span 2;min-height:400px}
.chart-span-2 canvas{min-height:320px !important;max-height:400px !important}
.reports-ranking-list{display:grid;gap:14px}
.reports-ranking-item{display:grid;gap:8px}
.reports-ranking-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.reports-ranking-track{height:12px;border-radius:999px;background:#edf2f7;overflow:hidden}
.reports-ranking-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg, var(--pt-blue), #66a7d6)}
.reports-ranking-meta{font-size:.85rem}
.reports-table-card{margin-bottom:0}
.reports-table-summary{padding-top:8px}
.reports-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:18px}
.reports-table thead th{position:sticky;top:0;background:#f8fbfe;z-index:1}
.reports-table td,.reports-table th{white-space:nowrap}
.reports-table td:first-child,.reports-table th:first-child{white-space:normal;min-width:220px}
@media (max-width: 980px){
  .reports-hero{flex-direction:column}
  .reports-hero-actions{justify-content:flex-start}
  .reports-volunteer-filter{grid-column:auto}
  .chart-span-2{grid-column:span 1}
}
@media (max-width: 720px){
  .reports-live-item{flex-direction:column;align-items:flex-start}
  .reports-live-meta{justify-items:start}
}
@media print{
  .topbar,.kiosk-topbar,.nav,.no-print,.app-footer{display:none !important}
  body{background:#fff}
  .container{max-width:none;margin:0;padding:0}
  .card{box-shadow:none;border:1px solid #d6dbe3;break-inside:avoid}
  .reports-page{gap:12px}
  .reports-chart-grid{grid-template-columns:repeat(2,1fr)}
  .reports-chart-card{min-height:auto}
  .reports-chart-card canvas{max-height:260px !important}
  .reports-table-wrap{overflow:visible;border:none}
  .reports-table thead th{position:static;background:#fff}
}


.settings-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0 4px 0;border-top:1px solid rgba(15,76,129,.08)}
.settings-toggle-row:first-of-type{border-top:none;padding-top:0}
.settings-toggle-row > span{font-weight:700;color:#17324d;line-height:1.35;flex:1}
.email-wysiwyg-editor{min-height:190px;background:#fff}
.generated-email-toolbar{margin-top:8px;margin-bottom:8px}
.shift-review-card{margin-bottom:18px}
.shift-review-list{display:grid;gap:12px}
.shift-review-item{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:#fbfdff}
.role-edit-visibility input[type="number"]{margin-bottom:10px}


/* Version 7.1.9 responsive admin tidy */
html, body{max-width:100%;overflow-x:hidden}
img{max-width:100%;height:auto}
.card,
.settings-panel,
.projects-card-grid,
.dashboard-main-grid > *,
.profile-grid-main > *{min-width:0}
.table-wrap{width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
.eyebrow{
  margin:0 0 .45rem 0;
  font-size:.76rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#71859b;
  font-weight:800;
}
.compact-pill{padding:8px 12px;font-size:.84rem}
.inline-form.compact-inline-form{margin:0}

.projects-explorer-card{padding-top:18px}
.projects-explorer-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.projects-explorer-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.projects-explorer-actions .small-btn{width:auto}
.projects-search-input{max-width:520px}
.project-card-shell{
  padding:0;
  overflow:hidden;
}
.project-card-shell[open]{box-shadow:0 14px 30px rgba(10,40,80,.08)}
.project-card-summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px;
}
.project-card-summary::-webkit-details-marker{display:none}
.project-card-summary-main{display:grid;gap:8px;min-width:0}
.project-card-summary-side{
  display:grid;
  gap:8px;
  justify-items:end;
  align-self:center;
  flex:0 0 auto;
}
.project-summary-open-label{
  font-size:.84rem;
  font-weight:800;
  color:#5f7386;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.project-summary-chevron{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  position:relative;
}
.project-summary-chevron::before{
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  width:10px;
  height:10px;
  border-right:2px solid var(--pt-blue);
  border-bottom:2px solid var(--pt-blue);
  transform:rotate(45deg) translateY(-2px);
}
.project-card-shell[open] .project-summary-chevron::before{transform:rotate(225deg) translateY(-1px)}
.project-summary-chips{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.project-card-body{
  border-top:1px solid var(--border);
  padding:20px;
  display:grid;
  gap:16px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}
.project-panel-title{margin:0}
.project-card-shell.archived-card .project-card-body{background:linear-gradient(180deg,#fcfcfd 0%,#f7f8fa 100%)}

.settings-branding-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
}
.settings-branding-preview-card{
  border:1px solid var(--border);
  border-radius:18px;
  padding:16px;
  background:#f8fbfe;
}
.settings-logo-preview{margin-top:10px;margin-bottom:0}
.settings-inline-note{margin:.7rem 0 0 0}
.settings-mini-grid-card{
  display:grid;
  grid-template-columns:minmax(200px,.8fr) minmax(280px,1.2fr);
  gap:16px;
  align-items:start;
}
.recognition-admin-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}
.recognition-admin-card{
  position:relative;
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--border);
  border-radius:18px;
  background:#fff;
  cursor:pointer;
  min-width:0;
}
.recognition-admin-card:hover{border-color:#bfd2e5;background:#fbfdff}
.recognition-admin-card.selected{
  border-color:var(--pt-blue);
  box-shadow:0 0 0 1px rgba(15,76,129,.08);
  background:#f8fbfe;
}
.recognition-admin-card input[type="checkbox"]{
  position:absolute;
  top:14px;
  right:14px;
  width:20px;
  height:20px;
}
.recognition-admin-card-top{
  display:flex;
  gap:10px;
  align-items:flex-start;
  justify-content:space-between;
  padding-right:34px;
}
.recognition-admin-card-top strong{font-size:1rem;line-height:1.3}
.recognition-admin-card-meta{
  color:#55697c;
  overflow-wrap:anywhere;
}
.recognition-admin-card-note{
  color:#5f7386;
  font-size:.9rem;
  line-height:1.4;
}

.recognition-page{gap:18px}
.recognition-hero-card{
  display:grid;
  grid-template-columns:minmax(280px,1.2fr) minmax(220px,1fr);
  gap:18px;
  align-items:start;
}
.recognition-grid .card{margin-bottom:0}

@media (max-width: 980px){
  .project-card-summary,
  .project-card-body,
  .project-card-header,
  .projects-explorer-head,
  .recognition-hero-card,
  .settings-mini-grid-card{
    grid-template-columns:1fr;
    display:grid;
  }
  .project-card-summary-side{justify-items:start}
}

@media (max-width: 820px){
  .container{padding:0 12px}
  .card{padding:16px;border-radius:18px}
  .projects-filter-actions button,
  .projects-explorer-actions .small-btn,
  .project-header-actions .small-btn,
  .project-inline-edit-form .small-btn,
  .role-action-group .small-btn,
  .button-row button{
    width:100%;
  }
  .projects-explorer-actions,
  .project-header-actions,
  .button-row{
    width:100%;
  }
  .project-card-summary,
  .project-card-body{padding:16px}
  .project-inline-edit-form{grid-template-columns:1fr}
  .project-inline-edit-form input{min-width:0}
  .role-edit-card{grid-template-columns:1fr}
  .project-card-summary-side{width:100%;grid-template-columns:1fr auto;align-items:center}
  .topbar,
  .kiosk-topbar{padding:12px}
  .brand{font-size:1.2rem}
  .subbrand{white-space:normal}
  .settings-tabs{top:74px}
}

@media (max-width: 640px){
  .admin-nav,
  .kiosk-nav{
    width:100%;
    justify-content:flex-start;
  }
  .admin-nav a,
  .kiosk-nav a{
    white-space:normal;
    text-align:center;
  }
  .recognition-admin-card-top,
  .template-header-row,
  .dashboard-alert-card,
  .programme-report-hero{
    display:grid;
  }
  .projects-search-input{max-width:none}
}
@media (max-width: 820px){
  .card > table,
  .card .dashboard-table,
  .card .volunteer-table,
  .card .compact-table,
  .card .shift-table,
  .card .reports-table{
    display:block;
    width:100%;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
  }
}

.inline-password-reset-form {
  margin-top: .45rem;
}

.inline-reset-grid {
  display: flex;
  gap: .45rem;
  flex-wrap: wrap;
  align-items: center;
}

.inline-reset-grid input {
  min-width: 180px;
  flex: 1 1 180px;
}


.admin-team-table {
  width: 100%;
  table-layout: fixed;
}

.admin-team-table th,
.admin-team-table td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  vertical-align: top;
}

.admin-team-table th:nth-child(1),
.admin-team-table td:nth-child(1) { width: 14%; }
.admin-team-table th:nth-child(2),
.admin-team-table td:nth-child(2) { width: 20%; }
.admin-team-table th:nth-child(3),
.admin-team-table td:nth-child(3) { width: 8%; text-align: center; }
.admin-team-table th:nth-child(4),
.admin-team-table td:nth-child(4) { width: 14%; }
.admin-team-table th:nth-child(5),
.admin-team-table td:nth-child(5) { width: 10%; text-align: center; }
.admin-team-table th:nth-child(6),
.admin-team-table td:nth-child(6) { width: 34%; }

.admin-team-table .profile-action-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .45rem;
}

.admin-team-table .profile-action-row > * {
  min-width: 0;
}

.admin-team-table .profile-action-row .small-btn,
.admin-team-table .inline-reset-grid .small-btn {
  width: 100%;
  text-align: center;
}

.admin-team-table .inline-password-reset-form {
  max-width: 100%;
}

.inline-reset-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .45rem;
  align-items: center;
}

.inline-reset-grid input {
  min-width: 0;
  width: 100%;
}

.admin-team-table .status-pill {
  display: inline-flex;
  justify-content: center;
}

.admin-team-table .muted {
  line-height: 1.35;
}

.admin-team-table .admin-row-highlight {
  background: #eef6ff;
}

@media (max-width: 980px) {
  .admin-team-table {
    table-layout: auto;
  }

  .admin-team-table th:nth-child(1),
  .admin-team-table td:nth-child(1),
  .admin-team-table th:nth-child(2),
  .admin-team-table td:nth-child(2),
  .admin-team-table th:nth-child(3),
  .admin-team-table td:nth-child(3),
  .admin-team-table th:nth-child(4),
  .admin-team-table td:nth-child(4),
  .admin-team-table th:nth-child(5),
  .admin-team-table td:nth-child(5),
  .admin-team-table th:nth-child(6),
  .admin-team-table td:nth-child(6) {
    width: auto;
  }
}

@media (max-width: 720px) {
  .admin-team-table .profile-action-row,
  .inline-reset-grid {
    grid-template-columns: 1fr;
  }
}

.delete-confirm-wrap {
  scroll-margin-top: 1rem;
}

.delete-confirm-card {
  border: 1px solid #f0c2bd;
  background: #fff7f6;
}

.delete-confirm-form input[type="text"] {
  max-width: 320px;
}

@media (max-width: 1180px){
  .settings-layout{grid-template-columns:minmax(0,1.75fr) minmax(280px,1fr);}
}
@media (max-width: 980px){
  .settings-layout{grid-template-columns:1fr;}
  .settings-info-column{position:static;top:auto;}
}

/* Version 1.2.0 rota module */
.status-pill.info{background:#eef5fb;color:#184b73}
.status-pill.warning{background:#fff4dc;color:#8a5a00}
.status-pill.danger{background:#fdeceb;color:#b42318}
.compact-grid{gap:12px}
.align-end{align-items:end}
.dashboard-rota-grid{display:grid;gap:18px;margin-bottom:18px}
.rota-page,
.rota-detail-page{display:grid;gap:18px}
.rota-hero-card{
  background:linear-gradient(145deg,#ffffff 0%,#f5f9fd 100%);
}
.rota-summary-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}
.rota-top-grid{align-items:start}
.rota-create-form{gap:12px}
.rota-filter-form{gap:12px}
.weekday-check-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:10px;
}
.rota-requirement-card{gap:16px}
.rota-requirement-actions{
  align-items:end;
  margin-top:14px;
}
.role-volunteer-manager{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#f8fbff;
}
.role-volunteer-manager-head h4{
  margin:0 0 4px;
}
.role-assigned-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:12px 0;
}
.role-assigned-chip-form,
.inline-form{margin:0}
.role-volunteer-add-form{gap:10px}
.role-volunteer-select{
  min-height:170px;
}
.volunteer-option-search{
  margin-bottom:0;
}
.removable-pill{
  border:none;
  cursor:pointer;
  width:auto;
  padding:10px 14px;
  font-weight:700;
}
.removable-pill:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(15,76,129,.08);
}
@media (max-width: 820px){
  .weekday-check-grid{grid-template-columns:1fr 1fr}
  .rota-summary-chips{margin-top:12px}
}
@media (max-width: 640px){
  .weekday-check-grid{grid-template-columns:1fr}
  .role-volunteer-select{min-height:150px}
}

.rota-summary-chips-wrap{flex-wrap:wrap;gap:.5rem}
.rota-planner-toolbar{display:grid;gap:1rem}
.rota-month-nav{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center}
.rota-month-label-wrap{text-align:center}
.rota-filter-inline{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}
.rota-filter-inline-wide{grid-template-columns:repeat(4,minmax(0,1fr)) auto}
.rota-toolbar-actions{display:flex;gap:.5rem;align-items:end}
.rota-month-panels{display:grid;grid-template-columns:1fr;gap:1rem}
.rota-month-panels.multi-month{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.rota-month-panel{display:flex;flex-direction:column;gap:1rem}
.rota-month-panel-head{margin-bottom:.25rem}
.rota-weekday-row,.rota-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem}
.rota-weekday-cell{font-weight:700;text-align:center;color:#51667c}
.rota-day-card{min-height:160px;border:1px solid rgba(49,79,111,.14);border-radius:18px;padding:.75rem;background:#fff;display:flex;flex-direction:column;gap:.5rem;box-shadow:0 10px 25px rgba(20,39,58,.05)}
.rota-day-card.muted-day{background:#f5f7fa;opacity:.65}
.rota-day-card.today{border-color:rgba(49,79,111,.45);box-shadow:0 12px 30px rgba(49,79,111,.12)}
.rota-day-card-head{display:flex;justify-content:space-between;align-items:center}
.rota-day-number-btn,.rota-day-add-btn,.rota-empty-day-btn{border:none;background:#eef3f8;color:var(--pt-blue);border-radius:12px;padding:.35rem .65rem;font-weight:700;cursor:pointer}
.rota-day-number-btn{background:transparent;padding:0;font-size:1rem}
.rota-day-events{display:flex;flex-direction:column;gap:.45rem}
.rota-mini-shift{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;border-radius:14px;background:#f7fafc;text-decoration:none;color:inherit}
.rota-mini-shift:hover{background:#eef3f8}
.rota-mini-shift-title{font-weight:700}
.rota-mini-meta,.rota-more-note{font-size:.85rem}
.rota-mini-tags{display:flex;gap:.35rem;flex-wrap:wrap}
.rota-modal-shell{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:1rem}
.rota-modal-shell[hidden]{display:none !important}
.rota-modal-backdrop{position:absolute;inset:0;background:rgba(17,30,44,.45)}
.rota-modal{position:relative;z-index:1;width:min(980px,100%);max-height:90vh;overflow:auto;border-radius:24px}
.rota-modal [hidden]{display:none !important}
body.modal-open{overflow:hidden}
.requirement-rows{gap:.75rem}
.requirement-row{padding:.75rem;border:1px dashed rgba(49,79,111,.2);border-radius:16px}
.form-note{display:flex;align-items:end}
.volunteer-chip-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem;max-height:260px;overflow:auto;padding:.25rem}
.volunteer-chip-option{display:flex;flex-direction:column;gap:.15rem;padding:.65rem .75rem;border:1px solid rgba(49,79,111,.14);border-radius:14px;background:#fff;cursor:pointer}
.volunteer-chip-option input{margin-right:.4rem}
.volunteer-chip-option small{color:#62778f}
.volunteer-chip-option.unavailable{opacity:.55;background:#f5f7fa}
.wrap-row{flex-wrap:wrap}
.align-end{display:flex;align-items:end}
.compact-heading{align-items:end}
@media (max-width: 980px){
  .rota-filter-inline,.rota-filter-inline-wide,.rota-month-nav{grid-template-columns:1fr}
  .rota-month-panels.multi-month{grid-template-columns:1fr}
  .rota-weekday-row,.rota-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 640px){
  .rota-weekday-row{display:none}
  .rota-calendar-grid{grid-template-columns:1fr}
  .rota-day-card{min-height:auto}
}
.rota-top-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.rota-mini-shift-wrap{position:relative}
.rota-mini-actions{display:none;position:absolute;right:.35rem;top:.35rem;gap:.35rem;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.rota-mini-shift-wrap:hover .rota-mini-actions{display:flex}
.volunteer-live-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem;max-height:240px;overflow:auto;padding:.25rem}
.volunteer-live-result{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .75rem;border:1px solid rgba(49,79,111,.14);border-radius:14px;background:#fff;color:inherit;cursor:pointer;text-align:left}
.volunteer-live-result small{color:#62778f}
.volunteer-live-result.unavailable,.volunteer-live-result:disabled{opacity:.55;background:#f5f7fa;cursor:not-allowed}
.volunteer-live-selected{display:flex;gap:.5rem;flex-wrap:wrap;min-height:1px}
.rota-team-card{display:flex;flex-direction:column;gap:1rem}
.availability-volunteer-block{padding-top:.5rem;border-top:1px solid rgba(49,79,111,.1)}
@media (max-width: 980px){
  .rota-mini-actions{position:static;display:flex;margin-top:.35rem}
}

/* Rota UI refinements */
.rota-subnav-card{padding:.8rem 1rem}
.rota-subnav{display:flex;gap:.5rem;flex-wrap:wrap}
.rota-subnav-link{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .8rem;border-radius:999px;background:#f4f7fa;color:#496277;text-decoration:none;font-weight:600;font-size:.95rem}
.rota-subnav-link:hover{background:#eaf0f6}
.rota-subnav-link.active{background:#e6eef6;color:var(--pt-blue)}
.rota-summary-chips .info-pill strong{font-weight:600}
.rota-summary-chips .info-pill{font-weight:500}
.rota-toolbar-lower{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}
.rota-bulk-form .button-row{gap:.45rem;align-items:center}
.rota-visible-table .select-col{width:56px;text-align:center}
.rota-table-actions{white-space:nowrap}
.rota-table-actions .small-btn{margin-right:.25rem}
.rota-month-panels.multi-month{align-items:start}
.rota-month-panels.three-month-view{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.rota-month-panels.year-view{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.rota-month-panel{min-width:0}
.rota-month-panel-head h2{font-size:1.1rem;font-weight:600}
.rota-weekday-cell{font-weight:600;font-size:.88rem;letter-spacing:.01em;color:#6a7d90}
.rota-day-card{min-height:150px;border-radius:16px;padding:.65rem;gap:.4rem;box-shadow:0 8px 18px rgba(20,39,58,.04)}
.rota-day-number-btn,.rota-day-add-btn,.rota-empty-day-btn{font-weight:600}
.rota-day-number-btn{font-size:.95rem;color:#40586f}
.rota-day-add-btn,.rota-empty-day-btn{font-size:.86rem}
.rota-mini-shift-row,.rota-compact-shift-row{display:flex;align-items:flex-start;gap:.45rem}
.rota-select-tick{display:flex;align-items:center;padding-top:.15rem}
.rota-select-tick input{width:16px;height:16px}
.rota-mini-shift{gap:.2rem;padding:.45rem .55rem;border-radius:12px;background:#f8fafc;min-width:0;flex:1}
.rota-mini-shift-title{font-weight:600;font-size:.92rem;line-height:1.2;color:#2d4357}
.rota-mini-meta,.rota-more-note{font-size:.79rem;color:#65798d}
.rota-mini-tags .status-pill{font-size:.68rem;padding:.2rem .42rem;font-weight:600}
.rota-mini-actions{top:.25rem;right:.25rem}
.rota-mini-actions .small-btn{padding:.28rem .5rem;font-size:.72rem}
.rota-compact-quarter-panel .rota-weekday-row,.compact-quarter-grid{gap:.45rem}
.rota-compact-quarter-panel .rota-day-card{min-height:108px;padding:.5rem}
.rota-compact-shift-link{display:flex;flex-direction:column;min-width:0;gap:.12rem;padding:.22rem .35rem;border-radius:10px;background:#f8fafc;text-decoration:none;color:inherit;flex:1}
.rota-compact-shift-title{font-size:.8rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#31485e}
.rota-compact-gap{font-size:.72rem;color:#8b5e00}
.compact-year-panel .rota-weekday-row,.compact-year-grid{gap:.3rem}
.compact-year-panel{padding:.85rem}
.compact-year-panel .rota-month-panel-head h2{font-size:1rem}
.compact-year-panel .rota-day-card{min-height:68px;padding:.38rem;border-radius:12px}
.compact-year-panel .rota-day-number-btn{font-size:.82rem}
.compact-year-panel .rota-day-add-btn{padding:.18rem .38rem;font-size:.75rem}
.compact-year-panel .rota-day-events{gap:.25rem}
.rota-day-summary-badges{display:flex;flex-direction:column;gap:.25rem}
.rota-day-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .38rem;border-radius:999px;background:#eef3f8;color:#496277;font-size:.68rem;font-weight:600;text-decoration:none}
.rota-day-count-badge.warning{background:#fff5dd;color:#8b5e00}
.compact-labels .rota-weekday-cell{font-size:.75rem}
.compact-assignment-card{padding:1rem 1.1rem}
.rota-assignment-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1.15fr);gap:1rem;align-items:start}
.rota-assigned-summary h3,.rota-assign-search-panel h3{font-size:1rem;font-weight:600;margin-bottom:.45rem}
.compact-chip-row{gap:.35rem}
.compact-pill{font-size:.78rem;padding:.28rem .52rem}
.compact-empty,.compact-helper{font-size:.84rem}
.volunteer-live-search-wrap{position:relative}
.volunteer-live-search{width:100%}
.volunteer-live-results{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:5;display:flex;flex-direction:column;gap:.25rem;max-height:260px;overflow:auto;padding:.35rem;border:1px solid rgba(49,79,111,.14);border-radius:14px;background:#fff;box-shadow:0 12px 30px rgba(20,39,58,.12)}
.volunteer-live-results[hidden]{display:none !important}
.volunteer-live-result{padding:.45rem .6rem;border-radius:10px;background:#f8fafc;font-size:.88rem;line-height:1.25}
.volunteer-live-result small{font-size:.73rem}
.volunteer-live-empty{padding:.55rem .65rem;color:#667b90;font-size:.84rem}
.compact-selected{display:flex;gap:.35rem;flex-wrap:wrap;min-height:1px}
@media (max-width: 1280px){
  .rota-month-panels.three-month-view{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rota-month-panels.year-view{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 980px){
  .rota-toolbar-lower{align-items:stretch}
  .rota-assignment-shell{grid-template-columns:1fr}
  .rota-month-panels.three-month-view,.rota-month-panels.year-view{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .rota-subnav{flex-direction:column}
  .rota-visible-table .select-col{width:auto}
}

/* Rota v1.4.2 refinements */
.rota-month-panel,
.rota-day-card,
.rota-mini-shift-wrap,
.rota-compact-shift-row{overflow:visible}
.rota-day-card{position:relative}
.rota-month-panels.year-view{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}
@media (min-width: 1500px){
  .rota-month-panels.year-view{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.compact-year-panel,
.compact-quarter-panel{overflow:visible}
.compact-year-panel .rota-month-panel-head .muted,
.compact-quarter-panel .rota-month-panel-head .muted{font-size:.82rem}
.compact-year-panel .rota-weekday-row,.compact-year-panel .rota-calendar-grid{gap:.22rem}
.compact-year-panel .rota-day-card{min-height:54px;padding:.28rem .3rem;border-radius:10px;gap:.18rem;box-shadow:none}
.compact-year-panel .rota-day-card-head{align-items:flex-start}
.compact-year-panel .rota-day-number-btn{font-size:.76rem;line-height:1}
.compact-year-panel .rota-day-add-btn{display:none}
.compact-year-panel .rota-day-events{gap:.15rem;min-height:0}
.compact-quarter-panel .rota-weekday-row,.compact-quarter-panel .rota-calendar-grid{gap:.35rem}
.compact-quarter-panel .rota-day-card{min-height:76px;padding:.38rem;border-radius:12px;gap:.22rem;box-shadow:none}
.compact-quarter-panel .rota-day-card-head{align-items:flex-start}
.compact-quarter-panel .rota-day-add-btn{display:none}
.compact-quarter-panel .rota-day-events{gap:.2rem}
.compact-add-day-btn{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;padding:0;border-radius:999px;background:#eef3f8;color:var(--pt-blue);font-size:.9rem;line-height:1}
.rota-summary-only{align-items:flex-start;gap:.18rem}
.rota-quarter-day-summary{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem;min-width:0}
.rota-quarter-day-pill,.rota-day-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:.16rem .42rem;border-radius:999px;background:#eef3f8;color:#496277;font-size:.68rem;font-weight:600;text-decoration:none;max-width:100%}
.rota-quarter-preview-title{font-size:.74rem;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#31485e}
.rota-day-hover-popover{position:absolute;left:50%;top:calc(100% + .3rem);transform:translateX(-50%) translateY(4px);width:min(280px,calc(100vw - 2rem));padding:.72rem .8rem;border-radius:14px;background:#fff;border:1px solid rgba(49,79,111,.14);box-shadow:0 16px 34px rgba(20,39,58,.15);display:none;z-index:50}
.rota-day-card:hover .rota-day-hover-popover,
.rota-day-card:focus-within .rota-day-hover-popover{display:block}
.rota-hover-popover-head{font-size:.78rem;font-weight:600;color:#5e7387;margin-bottom:.35rem}
.rota-hover-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:start;padding:.42rem 0;border-top:1px solid rgba(49,79,111,.08)}
.rota-hover-item:first-of-type{border-top:none;padding-top:0}
.rota-hover-link{display:block;font-size:.88rem;font-weight:600;color:#27445d;text-decoration:none;line-height:1.25}
.rota-hover-link:hover{text-decoration:underline}
.rota-hover-meta{font-size:.75rem;color:#667b90;line-height:1.3;margin-top:.1rem}
.rota-hover-actions{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.rota-hover-actions .small-btn{padding:.24rem .45rem;font-size:.72rem}
.rota-hover-more{margin-top:.25rem;font-size:.74rem;color:#667b90}
.rota-mini-shift-wrap{position:relative;z-index:1;transition:transform .16s ease}
.rota-mini-shift-wrap:hover,
.rota-mini-shift-wrap:focus-within{z-index:20;transform:translateY(-1px)}
.rota-mini-shift-row{align-items:flex-start;gap:.38rem}
.rota-select-tick{position:relative;z-index:4;flex:0 0 auto;margin-top:.12rem;padding-top:0}
.rota-select-tick input{width:15px;height:15px}
.rota-mini-shift{padding:.34rem .42rem;gap:.14rem;border:1px solid rgba(49,79,111,.12);background:#f8fafc;transition:transform .16s ease, box-shadow .16s ease, background .16s ease}
.rota-mini-shift-wrap:hover .rota-mini-shift,
.rota-mini-shift-wrap:focus-within .rota-mini-shift{transform:scale(1.02);background:#fff;box-shadow:0 10px 22px rgba(20,39,58,.12)}
.rota-mini-shift-title{font-size:.84rem;font-weight:600;line-height:1.15}
.rota-mini-meta{font-size:.72rem;line-height:1.2}
.rota-mini-tags{gap:.25rem}
.rota-mini-tags .status-pill{font-size:.64rem;padding:.16rem .34rem}
.rota-mini-actions{display:flex;opacity:0;pointer-events:none;position:absolute;left:1.4rem;right:.2rem;top:calc(100% - .12rem);gap:.28rem;flex-wrap:wrap;justify-content:flex-start;padding:.35rem;border:1px solid rgba(49,79,111,.14);border-radius:12px;background:#fff;box-shadow:0 12px 26px rgba(20,39,58,.14)}
.rota-mini-shift-wrap:hover .rota-mini-actions,
.rota-mini-shift-wrap:focus-within .rota-mini-actions{opacity:1;pointer-events:auto}
.rota-mini-actions .small-btn{padding:.22rem .42rem;font-size:.7rem}
.rota-requirement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}
.rota-requirement-card{display:flex;flex-direction:column;gap:.8rem;padding:.9rem 1rem}
.rota-requirement-card-head{align-items:flex-start}
.rota-requirement-card-head h2{font-size:1rem;font-weight:600;margin:0}
.rota-requirement-card-head .muted{font-size:.84rem;line-height:1.35}
.rota-assignment-shell{display:grid;grid-template-columns:1fr;gap:.7rem}
@media (min-width: 1180px){
  .rota-requirement-card .rota-assignment-shell{grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr)}
}
.rota-assigned-summary,.rota-assign-search-panel{padding:.75rem .8rem;border:1px solid rgba(49,79,111,.1);border-radius:14px;background:#f8fafc}
.rota-assigned-summary h3,.rota-assign-search-panel h3{margin-bottom:.35rem;font-size:.94rem}
.compact-chip-row{gap:.3rem}
.compact-pill{font-size:.75rem;padding:.22rem .46rem;font-weight:600}
.rota-requirement-actions{grid-template-columns:150px 1fr;gap:.75rem;align-items:end}
.rota-requirement-actions label{font-size:.84rem}
.rota-requirement-actions input{min-height:42px}
.volunteer-live-results{max-height:220px}
@media (max-width: 1280px){
  .rota-month-panels.year-view{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 980px){
  .rota-month-panels.year-view,.rota-month-panels.three-month-view{grid-template-columns:1fr}
  .rota-mini-actions{position:static;opacity:1;pointer-events:auto;margin-top:.28rem;box-shadow:none}
  .rota-requirement-grid{grid-template-columns:1fr}
  .rota-requirement-actions{grid-template-columns:1fr}
}

/* v1.5 rota refinements */
.rota-view-toolbar{align-items:end}
.rota-planner-key{padding:.8rem 1rem}
.rota-key-row{gap:.9rem 1.1rem}
.rota-key-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem;color:#5c7083}
.rota-pub-dot,.rota-gap-icon,.rota-confirm-icon,.rota-seq-icon{display:inline-flex;align-items:center;justify-content:center}
.rota-pub-dot{width:.62rem;height:.62rem;border-radius:999px;background:#d8dee6}
.rota-pub-dot.published{background:#4ea26e}
.rota-pub-dot.draft{background:#d5a44d}
.rota-seq-icon{font-size:.82rem;color:#426284;line-height:1}
.rota-gap-icon,.rota-confirm-icon{width:.92rem;height:.92rem;border-radius:999px;font-size:.68rem;font-weight:700;line-height:1;color:#fff}
.rota-gap-icon{background:#d08d21}
.rota-confirm-icon{background:#7d8ea3}
.rota-monthly-single-panel{padding:1rem}
.compact-month-grid{gap:.35rem}
.compact-month-day{min-height:116px;padding:.42rem;border-radius:14px;display:flex;flex-direction:column;gap:.25rem}
.compact-month-day .rota-day-card-head{align-items:flex-start;justify-content:space-between}
.rota-day-label-wrap{display:flex;align-items:center;gap:.28rem}
.rota-day-number-btn{font-size:.9rem;font-weight:600}
.compact-plus{padding:.14rem .34rem;font-size:.72rem}
.compact-day-events{display:flex;flex-direction:column;gap:.22rem}
.rota-compact-shift-wrap{position:relative;z-index:1;transition:transform .14s ease}
.rota-compact-shift-wrap:hover,.rota-compact-shift-wrap:focus-within{z-index:20;transform:translateY(-1px)}
.rota-compact-shift{display:flex;flex-direction:column;gap:.1rem;padding:.26rem .38rem;border-radius:11px;border:1px solid rgba(49,79,111,.12);background:#f8fafc;text-decoration:none;color:inherit;min-width:0;flex:1;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.rota-compact-shift-wrap:hover .rota-compact-shift,.rota-compact-shift-wrap:focus-within .rota-compact-shift{background:#fff;box-shadow:0 10px 22px rgba(20,39,58,.12);transform:scale(1.02)}
.rota-compact-topline{display:flex;align-items:center;gap:.24rem;min-width:0}
.rota-compact-time{font-size:.68rem;color:#58708a;line-height:1}
.rota-compact-title{font-size:.76rem;font-weight:600;line-height:1.15;color:#2e4258;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rota-compact-meta{font-size:.68rem;color:#708396;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.compact-hover-actions{display:flex;opacity:0;pointer-events:none;position:absolute;left:1.4rem;right:.1rem;top:calc(100% - .08rem);gap:.28rem;flex-wrap:wrap;justify-content:flex-start;padding:.34rem;border:1px solid rgba(49,79,111,.14);border-radius:12px;background:#fff;box-shadow:0 12px 26px rgba(20,39,58,.14)}
.rota-compact-shift-wrap:hover .compact-hover-actions,.rota-compact-shift-wrap:focus-within .compact-hover-actions{opacity:1;pointer-events:auto}
.compact-hover-actions.always-visible{position:static;opacity:1;pointer-events:auto;border:none;box-shadow:none;padding:0;margin-top:.35rem}
.compact-hover-actions .small-btn{padding:.22rem .42rem;font-size:.7rem}
.rota-week-strip-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1rem}
.rota-week-day-card{padding:1rem;display:flex;flex-direction:column;gap:.75rem}
.rota-week-day-stack,.rota-daily-stack{gap:.45rem}
.rota-week-item,.rota-daily-row{padding:.2rem 0}
.rota-daily-card{padding:1rem}
.rota-daily-pill{padding:.5rem .65rem}
.rota-visible-table .select-col{width:60px}
.rota-select-tick{display:inline-flex;align-items:center;justify-content:center;min-width:1rem}
.rota-select-tick input{width:16px;height:16px}
.day-tick{opacity:.8}
.rota-view-mode-list .rota-planner-key,.rota-view-mode-list .rota-month-panel,.rota-view-mode-list .rota-week-strip-grid,.rota-view-mode-list .rota-daily-card{display:none}
.rota-detail-top-grid{align-items:start}
.rota-detail-side-stack{display:flex;flex-direction:column;gap:1rem}
.compact-side-buttons > *{width:100%;justify-content:center}
.rota-assignment-stack{display:flex;flex-direction:column;gap:.85rem}
.compact-requirement-actions{margin-top:.75rem}
.equal-button-row{display:flex;gap:.5rem;align-items:end}
.flex-equal-btn{flex:1;justify-content:center}
.rota-requirement-card .role-assigned-chip-row{margin-bottom:.25rem}
.rota-requirement-card h3{font-size:1rem;margin:.15rem 0 .35rem}
.rota-assign-search-panel .volunteer-live-search-wrap{margin-bottom:.25rem}
.rota-side-card h2{margin-bottom:.35rem}
.volunteer-live-search-wrap{position:relative}
.volunteer-live-results{z-index:60}
@media (max-width: 1200px){
  .rota-week-strip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 900px){
  .rota-week-strip-grid{grid-template-columns:1fr}
  .compact-month-day{min-height:94px}
  .rota-detail-top-grid{grid-template-columns:1fr}
}

/* v1.6.4 projects role cleanup */
.role-card-list{
  display:grid;
  gap:14px;
}
.role-panel-shell{
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#f9fbfe 100%);
  padding:16px;
  display:grid;
  gap:14px;
}
.archived-role-panel{
  background:#fbfcfd;
}
.role-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.role-panel-summary{
  display:grid;
  gap:10px;
  min-width:0;
}
.role-panel-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.role-panel-title-row h4{
  margin:0;
}
.role-summary-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.strong-pill{
  background:#dce8f6;
  color:#173d63;
  font-weight:800;
}
.role-top-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.tiny-btn{
  padding:8px 12px;
  font-size:.86rem;
  min-height:auto;
  border-radius:12px;
}
.prominent-role-volunteers{
  margin-top:0;
  background:#f7fbff;
}
.compact-head{
  display:grid;
  gap:4px;
}
.compact-head .muted{
  margin:0;
}
.role-assigned-chip-row{
  gap:8px;
  min-height:1px;
}
.role-chip{
  background:#274f79;
  color:#fff;
  border:1px solid #274f79;
}
.role-chip:hover{
  background:#1d4166;
  color:#fff;
}
.role-chip small{color:#e8f0f7}
.role-volunteer-save-row{
  display:flex;
  justify-content:flex-start;
}
.role-settings-panel[hidden]{display:none !important}
.role-settings-panel{
  border-top:1px dashed rgba(49,79,111,.18);
  padding-top:2px;
}
.role-settings-form{
  max-width:420px;
  background:#fff;
}
.role-settings-form h5{
  margin:0;
}
.role-settings-form label{
  margin-bottom:4px;
}
.project-header-actions .compact-inline-form[data-confirm-phrase],
.role-top-actions .compact-inline-form[data-confirm-phrase]{
  margin:0;
}
@media (max-width: 820px){
  .role-panel-head{
    flex-direction:column;
    align-items:stretch;
  }
  .role-top-actions{
    width:100%;
  }
  .role-top-actions .small-btn,
  .role-top-actions form{
    width:auto;
  }
}


/* v1.6.5 project settings and live pickers */
.project-settings-panel[hidden]{display:none !important}
.project-settings-panel{margin:0 0 10px 0}
.project-settings-form{padding:14px 16px;background:#fff;border:1px solid rgba(49,79,111,.14);border-radius:18px;display:grid;gap:14px}
.project-settings-grid{display:grid;grid-template-columns:minmax(220px,0.9fr) minmax(280px,1.2fr) auto;gap:14px;align-items:start}
.project-settings-save{display:flex;align-items:end;justify-content:flex-start}
.pencil-input-wrap{position:relative}
.project-inline-pencil{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:15px;color:#55708c;pointer-events:none}
.pencil-input-wrap input{padding-left:34px}
.project-header-actions .icon-btn{width:36px;min-width:36px;height:36px;font-size:16px}
.project-settings-toggle.is-open{background:#eaf1f8;color:var(--pt-blue);border:1px solid rgba(49,79,111,.16)}
.project-leader-chip-row,.role-assigned-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.live-search-wrap{position:relative}
.live-results{position:absolute;left:0;right:0;top:calc(100% + .35rem);z-index:80;display:flex;flex-direction:column;gap:.25rem;max-height:260px;overflow:auto;padding:.35rem;border:1px solid rgba(49,79,111,.14);border-radius:14px;background:#fff;box-shadow:0 12px 30px rgba(20,39,58,.12)}
.live-results[hidden]{display:none !important}
.role-settings-panel[hidden]{display:none !important}
.role-settings-panel{border-top:1px dashed rgba(49,79,111,.18);padding-top:10px}
.role-settings-form{max-width:none;width:100%;background:#fff;padding:14px 16px}
.role-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px 14px;align-items:start}
.role-settings-grid-wide{grid-column:1 / -1}
.role-settings-actions{display:flex;justify-content:flex-start}
.field-stack{display:grid;gap:6px;min-width:0}
.prominent-role-volunteers{padding-top:2px}
.volunteer-live-result span{font-weight:600;color:#24384e}
.role-top-actions .tiny-btn,.project-header-actions .tiny-btn{padding:7px 10px;font-size:.8rem;border-radius:11px}
.role-volunteer-save-row .small-btn{min-width:140px}
@media (max-width: 1040px){
  .project-settings-grid{grid-template-columns:1fr}
  .project-settings-save{align-items:flex-start}
  .role-settings-grid{grid-template-columns:1fr}
}

/* v1.6.6 projects, ajax, volunteers, backups */
.ajax-toast-stack{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;flex-direction:column;gap:.55rem;pointer-events:none}
.ajax-toast{min-width:240px;max-width:360px;padding:.8rem .95rem;border-radius:14px;background:#1f7a4f;color:#fff;box-shadow:0 16px 30px rgba(20,39,58,.18);opacity:0;transform:translateY(10px);transition:opacity .18s ease,transform .18s ease;font-weight:600;font-size:.92rem}
.ajax-toast.visible{opacity:1;transform:translateY(0)}
.ajax-toast.success{background:#1f7a4f}
.ajax-toast.error{background:#92363a}
.projects-layout-grid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;align-items:start}
.projects-left-tools{position:sticky;top:1rem}
.compact-side-card{padding:.95rem 1rem}
.compact-side-card h2{font-size:1rem;margin-bottom:.2rem}
.compact-side-card .muted{font-size:.86rem}
.projects-filter-form,.projects-add-grid{gap:.75rem}
.projects-add-grid .compact-form-card{padding:.8rem .9rem}
.projects-main-column{min-width:0}
.project-card-shell{overflow:visible}
.project-card-shell[open] .project-card-body{padding-top:.7rem}
.project-header-actions .tiny-btn,.role-top-actions .tiny-btn,.role-settings-actions .small-btn,.role-volunteer-save-row .small-btn{padding:.3rem .58rem;font-size:.74rem;min-height:0}
.compact-role-meta{margin-top:.25rem;font-size:.78rem}
.location-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.45rem}
.compact-location-check-grid{max-height:180px;overflow:auto;padding:.1rem .1rem .2rem}
.role-location-check-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.chip-check-label{display:flex;align-items:flex-start;gap:.45rem;padding:.45rem .55rem;border:1px solid rgba(49,79,111,.12);border-radius:12px;background:#f8fafc;font-size:.84rem;line-height:1.25}
.chip-check-label input{margin-top:.15rem}
.project-settings-save{align-self:end}
.project-leads-field .muted{margin-bottom:.35rem}
.volunteer-live-hint{margin-left:.45rem;font-size:.82rem}
.role-assigned-chip-row .info-pill,.project-leader-chip-row .info-pill,.compact-selected .info-pill,.role-chip{background:#27445d;color:#fff;border-color:#27445d}
.role-assigned-chip-row .removable-pill:hover,.project-leader-chip-row .removable-pill:hover,.compact-selected .removable-pill:hover,.role-chip:hover{background:#1f374b}
@media (max-width: 1024px){
  .projects-layout-grid{grid-template-columns:1fr}
  .projects-left-tools{position:static}
}


/* v1.6.7 tidy-ups */
.project-summary-open-label{display:none !important}
.role-location-check-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}
.chip-check-label{min-height:40px;align-items:center;padding:.42rem .56rem;border-radius:10px;background:#fff}
.chip-check-label span{display:block;font-size:.8rem;line-height:1.2;color:#314f6f;font-weight:600}
.chip-check-label input{margin:0 .1rem 0 0;flex:0 0 auto}
.volunteer-live-hint{display:none !important}

/* v1.6.8 role save robustness and tidy mobile locations */
.role-location-check-grid{
  display:flex;
  flex-direction:column;
  gap:.42rem;
  max-height:200px;
  overflow:auto;
  padding:.08rem .08rem .08rem 0;
}
.role-location-check-grid .chip-check-label{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  justify-content:flex-start;
  align-items:flex-start;
  padding:.5rem .62rem;
  border-radius:11px;
  border:1px solid rgba(49,79,111,.14);
  background:#fff;
}
.role-location-check-grid .chip-check-label span{
  min-width:0;
  white-space:normal;
  word-break:break-word;
  overflow-wrap:anywhere;
  font-size:.81rem;
  line-height:1.25;
}
.role-location-check-grid .chip-check-label input{
  margin-top:.1rem;
}


/* v1.6.9 stronger role-save and mobile location layout fixes */
.role-location-check-grid{display:flex;flex-direction:column;gap:.5rem;max-height:220px;overflow:auto;padding:.1rem 0}.role-location-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.6rem;align-items:start;width:100%;box-sizing:border-box;padding:.58rem .7rem;border:1px solid rgba(49,79,111,.14);border-radius:12px;background:#fff;overflow:hidden}.role-location-item input{margin:.2rem 0 0 0;width:16px;height:16px}.role-location-item-text{min-width:0;display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word;color:#314f6f;font-size:.82rem;line-height:1.28;font-weight:600}


/* v1.7.0 projects/settings tidy fixes */
.add-role-location-check-grid{display:flex;flex-direction:column;gap:.5rem;max-height:220px;overflow:auto;padding:.1rem 0}
.add-role-location-check-grid .compact-role-location-item{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.6rem;align-items:start;width:100%;box-sizing:border-box;padding:.58rem .7rem;border:1px solid rgba(49,79,111,.14);border-radius:12px;background:#fff;overflow:hidden}
.add-role-location-check-grid .compact-role-location-item input{margin:.2rem 0 0 0;width:16px;height:16px}
.add-role-location-check-grid .role-location-item-text{min-width:0;display:block;white-space:normal;overflow-wrap:anywhere;word-break:break-word;color:#314f6f;font-size:.82rem;line-height:1.28;font-weight:600}
.single-button-reset-grid{display:flex;align-items:center;gap:.5rem}
.single-button-reset-grid .small-btn{width:auto}

/* v1.7.1 global ajax forms and soft search */
form.is-saving{opacity:.9}
button.is-loading,input[type="submit"].is-loading{opacity:.7;cursor:wait}


/* v1.7.3 projects page add-role mobile location tidy + stacked labels */
.projects-add-card .location-check-grid,
.projects-add-card .compact-location-check-grid,
.add-role-location-check-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:.45rem !important;
  max-height:220px;
  overflow:auto;
  padding:.08rem 0;
}
.projects-add-card .compact-role-location-item,
.projects-add-card .role-location-item,
.add-role-location-check-grid .compact-role-location-item{
  display:grid !important;
  grid-template-columns:18px minmax(0,1fr) !important;
  align-items:start !important;
  gap:.55rem !important;
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  padding:.56rem .68rem !important;
  border:1px solid rgba(49,79,111,.14) !important;
  border-radius:12px !important;
  background:#fff !important;
  overflow:hidden !important;
}
.projects-add-card .compact-role-location-item input,
.projects-add-card .role-location-item input,
.add-role-location-check-grid .compact-role-location-item input{
  width:15px !important;
  height:15px !important;
  margin:.16rem 0 0 0 !important;
}
.projects-add-card .role-location-item-text,
.add-role-location-check-grid .role-location-item-text{
  display:block !important;
  min-width:0 !important;
  max-width:100% !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
  line-height:1.25 !important;
}

/* Volunteer Hub */
.hub-body{background:#f5f8fc;min-height:100vh}
.hub-topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:linear-gradient(180deg,#fff 0%,#f7fbff 100%);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}
.hub-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.hub-nav a{padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--pt-blue);font-weight:700}
.hub-nav a:hover{background:#eef5fb}

.hub-nav-wrap{display:grid;gap:10px;justify-items:end}
.hub-nav-main-cluster,.hub-nav-secondary-cluster{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.hub-main-link{background:var(--pt-blue);color:#fff !important;box-shadow:0 10px 24px rgba(49,79,111,.16)}
.hub-main-link:hover{background:var(--pt-blue);filter:brightness(.97)}
.hub-requests-link{position:relative;display:inline-flex;align-items:center;gap:8px}
.hub-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d92d20;color:#fff;font-size:.76rem;font-weight:800;line-height:1}
@media (max-width: 900px){
  .hub-nav-wrap{justify-items:start;width:100%}
  .hub-nav-main-cluster,.hub-nav-secondary-cluster{justify-content:flex-start}
}
.hub-container{padding-top:26px;padding-bottom:32px}
.hub-hero{display:grid;gap:18px}
.hub-hero-main{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.hub-avatar,.hub-colleague-avatar{width:72px;height:72px;border-radius:999px;background:#e8f1fa;border:1px solid var(--border);display:grid;place-items:center;font-weight:800;font-size:1.6rem;color:var(--pt-blue);overflow:hidden;flex:0 0 auto}
.hub-avatar img,.hub-colleague-card img{width:100%;height:100%;object-fit:cover;display:block}
.hub-avatar.has-photo{background:none;border:none}
.hub-hero-stats{margin-top:4px}
.hub-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.hub-chip-card{padding:14px 16px;border:1px solid var(--border);border-radius:16px;background:#f8fbfe;display:grid;gap:4px}
.hub-chip-card span,.hub-open-card span,.hub-list-item span,.hub-admin-request-card div{color:var(--muted)}
.hub-list-stack{display:grid;gap:12px}
.hub-list-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;background:#f8fbfe;border:1px solid var(--border)}
.hub-list-item-column{display:grid;justify-content:stretch;align-items:start}
.compact-list-stack .hub-list-item strong{min-width:2ch}
.hub-assignment-stack{display:grid;gap:16px}
.hub-assignment-card,.hub-admin-request-card{padding:16px;border-radius:18px;background:#fbfdff;border:1px solid var(--border);display:grid;gap:10px}
.hub-assignment-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.hub-assignment-head h3,.hub-open-card strong,.hub-role-request-row strong,.hub-colleague-name{margin:0}
.hub-assignment-notes{margin:0;color:#234;line-height:1.5}
.hub-colleague-block{display:grid;gap:12px}
.hub-colleague-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.hub-colleague-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:16px;background:white}
.hub-colleague-card img,.hub-colleague-avatar{width:50px;height:50px;border-radius:999px}
.hub-colleague-detail{font-size:.9rem;color:#35516e}
.hub-open-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.hub-open-card{display:grid;gap:8px;padding:16px;border-radius:18px;background:#f8fbfe;border:1px solid var(--border)}
.hub-role-request-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #edf2f7}
.hub-role-request-row:first-child{border-top:none;padding-top:0}
.hub-status-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-weight:700;font-size:.82rem}
.hub-status-badge.pending{background:#fff4d6;color:#8a5a00}
.hub-status-badge.success{background:#e8f8ef;color:#166534}
.hub-inline-action-row{display:flex;gap:10px;flex-wrap:wrap}
.hub-inline-delete-form{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:16px;background:#f8fbfe;margin-top:10px}
.admin-hub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.compact-stack{gap:6px}
.hub-login-card{margin-top:48px}

@media (max-width: 980px){
  .admin-hub-grid{grid-template-columns:1fr}
}

@media (max-width: 760px){
  .hub-topbar{padding:14px 16px;align-items:flex-start;gap:12px;flex-direction:column}
  .hub-nav{width:100%;justify-content:flex-start}
  .hub-list-item,.hub-inline-delete-form{flex-direction:column;align-items:flex-start}
  .hub-colleague-grid,.hub-open-grid,.hub-chip-grid{grid-template-columns:1fr}
  .hub-avatar{width:60px;height:60px}
}

/* v1.8.1 volunteer hub achievements, cropper, ajax cards */
.hub-profile-avatar{width:96px;height:96px;font-size:2rem}
.hub-profile-hero-main{align-items:center}
.force-password-card{max-width:640px;margin:48px auto}
.achievement-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.achievement-stat-card{display:grid;gap:6px;align-content:start}
.achievement-stat-card span{color:var(--muted);font-weight:700}
.achievement-stat-card strong{font-size:1.8rem;line-height:1.1}
.achievement-stat-card small{color:#35516e}
.request-card-leaving{opacity:0;transform:translateY(-10px);transition:opacity .22s ease,transform .22s ease}
.photo-crop-modal{position:fixed;inset:0;background:rgba(15,30,45,.6);display:grid;place-items:center;z-index:140;padding:18px}
.photo-crop-modal[hidden]{display:none !important}
.photo-crop-card{width:min(92vw,720px);background:#fff;border-radius:22px;padding:20px;box-shadow:0 28px 60px rgba(20,39,58,.28);display:grid;gap:14px}
.photo-crop-stage{position:relative;width:min(100%,420px);aspect-ratio:1/1;margin:0 auto;border-radius:18px;overflow:hidden;background:#eff5fb;touch-action:none}
.photo-crop-stage img{position:absolute;display:block;max-width:none;user-select:none;-webkit-user-drag:none;cursor:grab}
.photo-crop-stage img:active{cursor:grabbing}
.photo-crop-frame{position:absolute;inset:0;border:2px solid rgba(255,255,255,.9);box-shadow:0 0 0 9999px rgba(0,0,0,.18) inset;border-radius:18px;pointer-events:none}
@media (max-width:760px){
  .hub-profile-avatar{width:84px;height:84px}
  .achievement-stats-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .achievement-stats-grid{grid-template-columns:1fr}
}

.hub-view-toggle-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.hub-view-toggle,.hub-calendar-nav{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.hub-view-toggle .small-btn.active{background:var(--pt-blue);color:#fff;border-color:var(--pt-blue)}
.hub-month-calendar{display:grid;gap:.55rem}
.hub-month-calendar-head,.hub-month-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}
.hub-month-calendar-head div{font-size:.85rem;font-weight:700;color:#5f7287;text-align:center}
.hub-month-day{min-height:130px;border:1px solid #d9e1ea;border-radius:16px;padding:.6rem;background:#fff;display:flex;flex-direction:column;gap:.45rem;box-shadow:0 6px 18px rgba(38,63,92,.06);overflow:visible}
.hub-month-day.is-outside{opacity:.42;background:#f6f8fb}
.hub-month-day.is-today{border-color:var(--pt-blue);box-shadow:0 0 0 2px rgba(49,79,111,.12)}
.hub-month-day-number{font-weight:800;font-family:'Raleway',sans-serif}
.hub-month-day-items{display:grid;gap:.35rem}
.hub-month-chip{display:grid;gap:.1rem;padding:.45rem .5rem;border-radius:12px;background:#eef4fa;font-size:.8rem;line-height:1.25}
.hub-month-chip strong{font-size:.82rem}
.hub-month-chip.more{display:flex;align-items:center;justify-content:center;font-weight:700;background:#f4f6f8}
.hub-assignment-list-view .hub-assignment-card{border-left:4px solid var(--pt-blue)}
@media (max-width: 900px){
  .hub-month-calendar-head,.hub-month-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hub-month-calendar-head{display:none}
}

/* v1.8.9 Volunteer Hub refinement */
.hub-nav-secondary-cluster .hub-logout-link{background:#b42318;color:#fff !important;display:inline-flex;align-items:center;gap:.55rem;box-shadow:0 10px 24px rgba(180,35,24,.18)}
.hub-nav-secondary-cluster .hub-logout-link:hover{background:#912018;filter:none}
.hub-logout-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}
.hub-logout-icon svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}

.hub-submenu-row{display:flex;gap:.7rem;flex-wrap:wrap;margin:0 0 1rem}
.hub-month-picker-form{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.35rem}
.hub-month-picker-form label{font-weight:700;color:#35516e}
.hub-month-picker-form select{min-width:220px}

.hub-next-shift-card,.hub-opportunity-summary-card{overflow:hidden}
.hub-next-shift-layout{display:grid;grid-template-columns:120px minmax(0,1fr);gap:1rem;align-items:start}
.hub-calendar-mini{display:grid;justify-items:center;align-content:start;background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);border:1px solid rgba(49,79,111,.12);border-radius:20px;padding:0 0 .85rem;box-shadow:0 14px 30px rgba(38,63,92,.08)}
.hub-calendar-mini-month{width:100%;padding:.65rem .75rem;border-radius:20px 20px 0 0;background:var(--pt-blue);color:#fff;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-align:center}
.hub-calendar-mini-day{font-size:2.3rem;line-height:1;margin-top:.8rem;color:#16324e}
.hub-calendar-mini-weekday{margin-top:.35rem;font-weight:700;color:#56708a}
.hub-next-shift-copy{display:grid;gap:.35rem}
.hub-next-shift-copy h3{margin:0}
.hub-next-shift-time{margin:0;font-weight:700;color:#16324e}
.hub-mini-colleagues{display:grid;gap:.2rem;margin-top:.25rem}
.hub-mini-colleagues strong{font-size:.92rem}

.hub-opportunity-count-wrap{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}
.hub-opportunity-count{font-family:'Raleway',sans-serif;font-size:3rem;line-height:1;color:var(--pt-blue)}
.hub-project-role-list{display:grid;gap:.8rem}
.hub-project-role-card{display:grid;gap:.3rem;padding:14px 16px;border-radius:16px;background:#f8fbfe;border:1px solid var(--border)}
.hub-project-role-card strong{font-size:1rem}
.hub-project-role-card span{color:#35516e;line-height:1.45}

.animate-on-load{opacity:0;transform:translateY(16px) scale(.985);transition:opacity .5s ease,transform .5s ease}
.animate-on-load.is-visible{opacity:1;transform:translateY(0) scale(1)}
.milestone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.milestone-card{display:grid;gap:.45rem;padding:14px 16px;border-radius:18px;border:1px solid var(--border);background:#f8fbfe}
.milestone-card.reached{border-color:rgba(25,135,84,.26);background:linear-gradient(180deg,#f5fdf8 0%,#ecf8f0 100%);box-shadow:0 12px 28px rgba(25,135,84,.08)}
.milestone-card.pending{opacity:.92}
.milestone-card .milestone-icon{font-size:1.35rem}
.milestone-card .milestone-condition{color:#56708a;font-size:.92rem}

.hub-opportunities-banner{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:14px 16px;border-radius:18px;background:linear-gradient(180deg,#eef6ff 0%,#f7fbff 100%);border:1px solid rgba(49,79,111,.16);margin-bottom:1rem}
.hub-opportunities-banner strong{font-size:1.8rem;line-height:1;color:var(--pt-blue)}
.hub-load-more-form{margin-top:1rem}

.hub-month-chip-interactive{position:relative;cursor:default}
.hub-shift-hovercard{position:absolute;left:calc(100% + 4px);top:-4px;z-index:40;width:min(320px,calc(100vw - 48px));display:none;gap:.38rem;padding:14px 15px;border-radius:16px;background:#fff;border:1px solid rgba(49,79,111,.16);box-shadow:0 20px 44px rgba(20,39,58,.18)}
.hub-month-chip-interactive{position:relative}
.hub-month-chip-interactive::after{content:"";position:absolute;left:100%;top:-10px;bottom:-10px;width:16px;display:none}
.hub-month-chip-interactive:hover{z-index:45}
.hub-month-chip-interactive:hover::after,.hub-month-chip-interactive:focus-within::after{display:block}
.hub-month-chip-interactive:hover .hub-shift-hovercard,.hub-month-chip-interactive:focus-within .hub-shift-hovercard,.hub-shift-hovercard:hover,.hub-shift-hovercard:focus-within{display:grid}
.hub-inline-request-box{display:block}
.hub-inline-request-box summary{list-style:none;cursor:pointer}
.hub-inline-request-box summary::-webkit-details-marker{display:none}
.hub-inline-request-box[open]{background:#f8fbfe;border:1px solid var(--border);padding:10px 12px;border-radius:16px}
.hub-inline-request-box.compact[open]{width:100%}
.hub-inline-request-box form{margin-top:.65rem}

@media (max-width:760px){
  .hub-next-shift-layout{grid-template-columns:1fr}
  .hub-calendar-mini{max-width:160px}
  .hub-opportunity-count{font-size:2.4rem}
  .hub-month-picker-form select{min-width:0;width:100%}
  .hub-shift-hovercard{position:static;width:100%;margin-top:.55rem;display:grid}
}

.hub-inline-delete-form > div{flex:1 1 auto;min-width:0}
.hub-inline-delete-form .small-btn{flex:0 0 auto;white-space:nowrap;align-self:center}

.icon-x-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid rgba(49,79,111,.16);background:#fff;color:#7b8da0;font-size:1.15rem;line-height:1;padding:0;box-shadow:none}
.icon-x-btn:hover{background:#f3f7fb;color:#183654;border-color:rgba(49,79,111,.28)}
.icon-x-btn:focus-visible{outline:2px solid rgba(49,79,111,.22);outline-offset:2px}
.form-help{margin:-.25rem 0 .15rem}
.hub-scheduled-controls{display:grid;gap:12px;margin-bottom:16px}

/* v1.9.4 admin refinements */
.dashboard-shift-link{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.32rem .65rem;
  border-radius:999px;
  background:#eef4fb;
  text-decoration:none;
  font-weight:700;
}
.dashboard-shift-link:hover{background:#dfeaf7; text-decoration:none;}
.dashboard-action-link{text-decoration:none; color:inherit;}
.dashboard-action-link:hover{border-color:rgba(49,79,111,.25); box-shadow:0 10px 28px rgba(16,46,78,.08); text-decoration:none;}
.dashboard-action-counter{
  min-width:2.5rem;
  height:2.5rem;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--pt-blue);
  color:#fff;
  font-weight:800;
  font-size:1.05rem;
}
.ajax-confirm-modal{
  position:fixed; inset:0; z-index:1200; background:rgba(15,23,42,.45);
  display:flex; align-items:center; justify-content:center; padding:1rem;
}
.ajax-confirm-modal[hidden]{display:none !important;}
.ajax-confirm-card{
  width:min(100%, 28rem); background:#fff; border-radius:22px; padding:1.1rem; box-shadow:0 22px 50px rgba(15,23,42,.24);
  display:grid; gap:.85rem; border:2px solid #f1d78c;
}
.ajax-confirm-modal.danger .ajax-confirm-card{border-color:#e7a4a4;}
.ajax-confirm-title{font-size:1.1rem; font-weight:800;}
.ajax-confirm-message{color:#43576c; line-height:1.45;}
.ajax-confirm-actions{display:flex; justify-content:flex-end; gap:.65rem;}
#ajax-confirm-input{width:100%;}
.status-pill.danger-soft{background:#fde9e9; color:#8d2c2c;}
.status-pill.danger-medium{background:#f8cfcf; color:#7d1717;}
.status-pill.danger-strong{background:#efb0b0; color:#6a0f0f;}
.rota-gap-icon.danger-soft{background:#fde9e9; color:#8d2c2c;}
.rota-gap-icon.danger-medium{background:#f8cfcf; color:#7d1717;}
.rota-gap-icon.danger-strong{background:#efb0b0; color:#6a0f0f;}
.quick-volunteer-panel-body{display:flex; flex-wrap:wrap; gap:.65rem; align-items:center;}
.shift-manual-form .shift-manual-submit,.shift-inline-actions{align-self:end;}
.rota-requirement-actions-full{grid-column:1 / -1; justify-content:flex-end;}


/* v1.9.7 admin rota polish */
.rota-create-type-chooser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.rota-create-type-card{display:flex;align-items:center;gap:14px;border:1px solid rgba(49,79,111,.18);border-radius:18px;background:#fff;padding:16px 18px;text-align:left;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;color:#17324d;}
.rota-create-type-card:hover,.rota-create-type-card:focus{transform:translateY(-1px);box-shadow:0 10px 24px rgba(22,37,53,.08);border-color:rgba(49,79,111,.35);color:#17324d;}
.rota-create-type-card.active{border-color:rgba(49,79,111,.72);box-shadow:0 12px 28px rgba(49,79,111,.14);background:rgba(49,79,111,.08);color:#17324d;}
.rota-create-type-card .rota-create-type-icon,.rota-create-type-card strong,.rota-create-type-card small{color:inherit;}
.rota-create-type-icon{font-size:1.7rem;line-height:1;}
.rota-create-type-copy{display:flex;flex-direction:column;gap:4px;}
.rota-create-type-copy strong{display:block;color:#17324d;}
.rota-create-type-copy small{color:#4a5d70;font-size:.88rem;}
.rota-event-places-grid .form-note{display:flex;align-items:flex-end;padding-bottom:.45rem;}
.rota-create-type-hint{margin-top:-4px;}
@media (max-width: 760px){.rota-create-type-chooser{grid-template-columns:1fr;}}
.volunteer-live-result{display:flex;align-items:center;justify-content:flex-start;}
.volunteer-live-result small{display:none !important;}


/* v1.9.12 rota modal clarity */
.rota-modal .rota-create-type-card{
  appearance:none;
  -webkit-appearance:none;
  background:#ffffff !important;
  color:#17324d !important;
  border:1px solid rgba(49,79,111,.22) !important;
}
.rota-modal .rota-create-type-card:hover,
.rota-modal .rota-create-type-card:focus{
  background:#f7fbff !important;
  color:#17324d !important;
}
.rota-modal .rota-create-type-card.active{
  background:#eaf3fb !important;
  color:#102c47 !important;
  border-color:#314f6f !important;
}
.rota-modal .rota-create-type-card .rota-create-type-icon,
.rota-modal .rota-create-type-card strong,
.rota-modal .rota-create-type-card small{
  color:inherit !important;
}
.rota-modal .rota-create-type-copy strong{
  color:#102c47 !important;
}
.rota-modal .rota-create-type-copy small{
  color:#3f556b !important;
}
.rota-modal-submit-row button{
  min-width:220px;
}
.requirement-row .requirement-remove-cell{
  display:flex;
  align-items:flex-end;
}
.requirement-row .requirement-remove-cell .small-btn{
  margin-bottom:0;
}
@media (max-width: 980px){
  .requirement-row{grid-template-columns:1fr 1fr !important;}
  .requirement-row .requirement-remove-cell{grid-column:1 / -1;}
}
@media (max-width: 640px){
  .requirement-row{grid-template-columns:1fr !important;}
}


/* v1.9.16 rota detail compact assignment refinements */
.rota-assignment-compact-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:.75rem;align-items:start}
.compact-panel{padding:.75rem .85rem;border:1px solid rgba(49,79,111,.1);border-radius:14px;background:#f8fafc;min-height:100%}
.compact-panel-assigned,.compact-panel-search{display:flex;flex-direction:column;gap:.45rem}
.compact-panel-assigned .compact-chip-row{align-content:flex-start}
.compact-panel-search .volunteer-live-search-wrap{margin-bottom:.15rem}
.compact-panel-search .compact-selected{min-height:0}
.compact-add-actions{margin-top:.1rem}
.rota-requirement-card .button-row.equal-button-row{width:100%}
.rota-requirement-card .button-row.equal-button-row .flex-equal-btn{min-width:0}
@media (max-width: 980px){
  .rota-assignment-compact-grid{grid-template-columns:1fr}
}

/* v1.9.17 tighter shift assignment boxes */
.compact-assignment-card{padding:.8rem .9rem}
.rota-requirement-card-head h2{font-size:1rem;margin:0}
.rota-requirement-card-head .muted{font-size:.78rem;line-height:1.3}
.rota-assignment-compact-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:.55rem}
.compact-panel{padding:.55rem .65rem;border-radius:12px}
.compact-panel h3{font-size:.88rem;margin:0}
.compact-panel .compact-chip-row{gap:.25rem}
.compact-panel .compact-pill{font-size:.72rem;padding:.22rem .42rem}
.compact-panel .compact-empty,.compact-panel .compact-helper{font-size:.77rem;line-height:1.3;margin:0}
.compact-panel-search .volunteer-live-search{padding:.44rem .55rem;font-size:.85rem}
.compact-panel-search .volunteer-live-results{max-height:180px;padding:.25rem}
.compact-panel-search .volunteer-live-result{padding:.36rem .48rem;font-size:.82rem}
.compact-selected{gap:.25rem}
.compact-add-actions .secondary{padding:.38rem .58rem;font-size:.79rem}
.compact-requirement-actions{margin-top:.5rem;gap:.45rem}
.compact-requirement-actions label{font-size:.8rem;margin-bottom:.18rem}
.compact-requirement-actions input{padding:.44rem .5rem}
.role-assigned-chip-form{margin:0}
@media (max-width: 980px){
  .rota-assignment-compact-grid{grid-template-columns:1fr}
}


/* v1.9.19 elimination build UI tidy-up */
.rota-visible-shift-link{display:flex;flex-direction:column;gap:.12rem;min-width:0;padding:.42rem .56rem;border-radius:12px;background:#f6f9fc;border:1px solid rgba(49,79,111,.12);text-decoration:none;color:#23384c;box-shadow:0 1px 0 rgba(20,39,58,.03)}
.rota-visible-shift-link:hover{background:#eef4fa;border-color:rgba(49,79,111,.2);text-decoration:none;transform:translateY(-1px)}
.rota-visible-shift-link__title{font-weight:700;line-height:1.2;color:#2c4358}
.rota-visible-shift-link__meta{font-size:.74rem;color:#698095;line-height:1.2}
.rota-visible-table td{vertical-align:middle}
.rota-visible-table .rota-table-actions{white-space:nowrap}

.compact-assignment-card{padding:.68rem .78rem}
.rota-requirement-card{gap:.62rem;padding:.72rem .82rem}
.rota-requirement-card-head{gap:.45rem}
.rota-requirement-card-head h2{font-size:.94rem}
.rota-requirement-card-head .muted{font-size:.75rem;line-height:1.25}
.rota-requirement-card .status-pill{font-size:.72rem;padding:.22rem .42rem}
.rota-assignment-compact-grid{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:.48rem}
.compact-panel{padding:.48rem .54rem;border-radius:10px}
.compact-panel h3{font-size:.83rem;margin:0 0 .22rem}
.compact-panel .compact-pill{font-size:.68rem;padding:.18rem .34rem}
.compact-panel .compact-empty,.compact-panel .compact-helper{font-size:.74rem;line-height:1.25}
.compact-panel-search .volunteer-live-search{padding:.38rem .48rem;font-size:.8rem}
.compact-panel-search .volunteer-live-results{max-height:160px;padding:.22rem}
.compact-panel-search .volunteer-live-result{padding:.3rem .42rem;font-size:.78rem}
.compact-selected{gap:.18rem}
.compact-add-actions .secondary{padding:.34rem .5rem;font-size:.75rem}
.compact-requirement-actions{margin-top:.38rem;gap:.38rem}
.compact-requirement-actions label{font-size:.76rem;margin-bottom:.14rem}
.compact-requirement-actions input{padding:.42rem .5rem;font-size:.82rem}
.rota-requirement-actions-full{gap:.35rem;margin-top:.1rem}
.rota-requirement-actions-full .flex-equal-btn{padding:.4rem .5rem;font-size:.77rem}
@media (max-width: 1280px){
  .rota-assignment-compact-grid{grid-template-columns:1fr}
}


/* v1.9.20 rota targeted ajax confirm and narrower shift requirement cards */
.rota-requirement-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  justify-items:start;
}
.rota-requirement-grid > .rota-requirement-card,
.rota-requirement-grid > .card{
  width:100%;
  max-width:680px;
}
.rota-requirement-card{
  padding:.9rem 1rem;
}
.rota-requirement-card-head h2{font-size:1rem;}
.rota-requirement-card-head .muted{font-size:.84rem;line-height:1.35;}
.rota-requirement-card .status-pill{font-size:.76rem;padding:.24rem .46rem;}
.compact-requirement-actions{margin-top:.5rem;gap:.45rem;}
.compact-requirement-actions label{font-size:.82rem;margin-bottom:.16rem;}
.compact-requirement-actions input{padding:.44rem .52rem;font-size:.88rem;}
@media (max-width: 900px){
  .rota-requirement-grid{grid-template-columns:1fr;justify-items:stretch;}
  .rota-requirement-grid > .rota-requirement-card,
  .rota-requirement-grid > .card{max-width:none;}
}


/* v1.9.21 rota shift detail layout, menu polish, and nav tidy */
.admin-nav .nav-logout{background:#b42318 !important;color:#fff !important;border-color:#b42318 !important;display:inline-flex;align-items:center;gap:.5rem;box-shadow:0 10px 24px rgba(180,35,24,.18)}
.admin-nav .nav-logout:hover{background:#912018 !important;border-color:#912018 !important;color:#fff !important;filter:none}
.nav-logout-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}
.nav-logout-icon svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}

.rota-subnav-button{border:0;cursor:pointer;font:inherit}
.rota-settings-card-full{width:100%}
.rota-detail-secondary-grid{align-items:start;margin-top:1rem}
.rota-detail-secondary-grid > .card{height:100%}
.rota-requirement-grid{margin-top:1rem}
.rota-requirement-grid > .rota-requirement-card,
.rota-requirement-grid > .card{max-width:none}
.rota-requirement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start;justify-items:stretch}
.rota-requirement-card{padding:.95rem 1rem;gap:.8rem}
.rota-requirement-card-head h2{font-size:1rem;font-weight:700;margin:0}
.rota-requirement-card-head .muted{font-size:.84rem;line-height:1.35}
.rota-requirement-card .status-pill{font-size:.76rem;padding:.24rem .46rem}
.rota-assignment-compact-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:.75rem}
.compact-panel{padding:.7rem .8rem;border-radius:12px}
.compact-panel h3{font-size:1rem;margin:0 0 .3rem}
.compact-panel .compact-pill{font-size:.8rem;padding:.24rem .46rem}
.compact-panel .compact-empty,.compact-panel .compact-helper{font-size:.84rem;line-height:1.35}
.compact-panel-search .volunteer-live-search{padding:.48rem .58rem;font-size:.92rem}
.compact-panel-search .volunteer-live-result{padding:.42rem .52rem;font-size:.88rem}
.compact-requirement-actions label{font-size:.84rem}
.compact-requirement-actions input{padding:.46rem .54rem;font-size:.92rem}
.rota-visible-shift-link{padding:.48rem .62rem}
.rota-visible-shift-link__title{font-size:.96rem}
@media (max-width: 980px){
  .rota-detail-secondary-grid,.rota-requirement-grid{grid-template-columns:1fr}
  .rota-assignment-compact-grid{grid-template-columns:1fr}
}


/* v1.9.22 rota detail tidy-up */
.rota-detail-page{gap:1rem}
.rota-detail-page .card{padding:1rem 1.1rem}
.rota-detail-page h2{font-size:1.15rem;line-height:1.3;margin:0 0 .4rem}
.rota-detail-page h3{font-size:1rem;line-height:1.35;margin:0 0 .3rem}
.rota-detail-page label,.rota-detail-page input,.rota-detail-page select,.rota-detail-page textarea,.rota-detail-page button{font-size:.95rem}
.rota-detail-page .muted{font-size:.9rem;line-height:1.45}
.rota-detail-page .eyebrow{margin-bottom:.18rem}
.rota-detail-page .button-row.wrap-row{gap:.55rem}
.rota-hero-card .section-heading-row{align-items:flex-start;gap:1rem}
.rota-summary-chips-wrap{gap:.5rem}
.rota-subnav-card{padding:.75rem .9rem}
.rota-subnav{gap:.45rem}
.rota-subnav-link{font-size:.92rem;padding:.48rem .82rem}
.rota-detail-block-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.15rem 0 -.15rem}
.rota-detail-block-heading h2{margin:0 0 .2rem}
.rota-detail-secondary-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:1rem;align-items:start;margin-top:0}
.rota-side-card{display:flex;flex-direction:column;gap:.7rem;height:100%}
.rota-side-card h2{margin:0 0 .25rem}
.rota-side-card .muted{margin:0}
.rota-side-card .rota-create-form{gap:.75rem}
.compact-side-buttons{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.compact-side-buttons > *{flex:0 0 auto}
.rota-requirement-grid{margin-top:.15rem;grid-template-columns:repeat(2,minmax(320px,1fr));gap:1rem;align-items:start}
.rota-requirement-card{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.05rem;border:1px solid rgba(49,79,111,.12);box-shadow:0 8px 24px rgba(49,79,111,.06)}
.rota-requirement-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}
.rota-requirement-card-head h2{font-size:1.05rem;font-weight:700;line-height:1.3;margin:0}
.rota-requirement-card-head .muted{font-size:.9rem;line-height:1.45;margin:0}
.rota-requirement-card .status-pill{font-size:.78rem;padding:.26rem .5rem}
.rota-assignment-compact-grid{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:.8rem;align-items:start}
.compact-panel{padding:.8rem .9rem;border-radius:14px;background:#f8fafc;border:1px solid rgba(49,79,111,.1)}
.compact-panel h3{font-size:1rem;margin:0 0 .3rem}
.compact-panel .compact-pill{font-size:.82rem;padding:.24rem .48rem}
.compact-panel .compact-empty,.compact-panel .compact-helper{font-size:.9rem;line-height:1.45;margin:0}
.compact-panel-search .volunteer-live-search{padding:.52rem .64rem;font-size:.94rem}
.compact-panel-search .volunteer-live-results{max-height:220px;padding:.3rem}
.compact-panel-search .volunteer-live-result{padding:.42rem .56rem;font-size:.9rem}
.compact-selected .info-pill,.compact-selected .status-pill{font-size:.82rem}
.compact-requirement-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:end;margin-top:.1rem}
.compact-requirement-actions label{font-size:.9rem;margin-bottom:.18rem}
.compact-requirement-actions input{padding:.5rem .58rem;font-size:.94rem}
.rota-requirement-actions-full{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-start}
.rota-requirement-actions-full .flex-equal-btn{flex:0 0 auto;min-width:165px}
@media (max-width: 1080px){
  .rota-detail-secondary-grid,.rota-requirement-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .rota-detail-block-heading{flex-direction:column;align-items:flex-start}
  .rota-assignment-compact-grid,.compact-requirement-actions{grid-template-columns:1fr}
  .rota-detail-page .card{padding:.95rem 1rem}
}

/* v1.9.30 admin menu dropdowns and communications centre */
.admin-nav{align-items:center}
.admin-nav-menu{position:relative}
.admin-nav-menu summary{list-style:none;margin-left:0;padding:8px 11px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:.92rem;line-height:1;white-space:nowrap;cursor:pointer;font-weight:700;color:var(--pt-blue-dark)}
.admin-nav-menu summary::-webkit-details-marker{display:none}
.admin-nav-menu[open] summary,.admin-nav-menu summary:hover{background:#f4f8fc;border-color:#bfd2e5}
.admin-nav-submenu{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;padding:.55rem;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 42px rgba(15,76,129,.16);display:grid;gap:.35rem;z-index:40}
.admin-nav-submenu a{display:block;margin-left:0;padding:.72rem .85rem;border-radius:12px;background:#fff;border:1px solid transparent;white-space:normal}
.admin-nav-submenu a:hover{background:#f4f8fc;border-color:#d6e2ee}
.communications-page-stack{gap:1rem}
.communications-layout-grid{align-items:start}
.communications-tab-row{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.85rem}
.communications-tab-pill{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;border-radius:999px;background:#eef5fb;color:var(--pt-blue);text-decoration:none;font-weight:700;border:1px solid #d7e4f0}
.communications-tab-pill.active{background:var(--pt-blue);color:#fff;border-color:var(--pt-blue)}
.communications-push-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.communications-recipient-list{max-height:820px;overflow:auto}
.communications-recipient-item,.hub-message-list-item{justify-content:space-between;gap:1rem;align-items:flex-start}
.communications-channel-badges{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.communications-log-stack{display:grid;gap:1rem;max-height:1180px;overflow:auto;padding-right:.1rem}
.communications-log-card{padding:1rem;border:1px solid var(--border);border-radius:16px;background:#fbfdff;display:grid;gap:.8rem}
.communications-log-meta{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.communications-log-badges{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.communications-log-delivery{margin:0}
.communications-log-push-preview{padding:.85rem 1rem;border-radius:14px;background:#f3f8fc;border:1px solid #dbe7f1;display:grid;gap:.35rem}
.communications-log-push-preview p{margin:0}
.communications-log-message{padding:1rem;border-radius:14px;background:#fff;border:1px solid #e2eaf2;overflow:auto}
.communications-log-message p:last-child{margin-bottom:0}
.inline-button-static{pointer-events:none}
.hub-message-list-item{text-decoration:none;color:inherit;border-radius:14px;border:1px solid transparent}
.hub-message-list-item:hover{background:#f7fafc;border-color:#d9e5ef}
.hub-message-list-item.is-unread{background:#f0f7ff;border-color:#c8ddef}
.hub-message-preview{margin:.35rem 0 0;color:#496277;line-height:1.45}
@media (max-width: 980px){
  .admin-nav-submenu{position:static;min-width:0;width:100%;margin-top:.45rem}
  .communications-push-preview-grid{grid-template-columns:1fr}
  .communications-recipient-item,.hub-message-list-item,.communications-log-meta{flex-direction:column}
  .communications-channel-badges,.communications-log-badges{justify-content:flex-start}
}

/* v1.9.31 admin hover menus + communications redesign */
.admin-nav-menu{position:relative;display:flex;align-items:center;padding-bottom:10px;margin-bottom:-10px}
.admin-nav-trigger{appearance:none;border:1px solid var(--border);background:#fff;color:var(--pt-blue-dark);padding:8px 11px;border-radius:999px;font-size:.92rem;line-height:1;white-space:nowrap;cursor:pointer;font-weight:700}
.admin-nav-menu:hover .admin-nav-trigger,.admin-nav-menu:focus-within .admin-nav-trigger,.admin-nav-menu.is-active .admin-nav-trigger{background:#f4f8fc;border-color:#bfd2e5}
.admin-nav-submenu{position:absolute;right:0;top:calc(100% - 2px);min-width:220px;padding:.55rem;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 42px rgba(15,76,129,.16);display:none;gap:.35rem;z-index:40}
.admin-nav-menu:hover .admin-nav-submenu,.admin-nav-menu:focus-within .admin-nav-submenu{display:grid}
.admin-nav-submenu a{display:block;margin-left:0;padding:.72rem .85rem;border-radius:12px;background:#fff;border:1px solid transparent;white-space:normal}
.admin-nav-submenu a:hover{background:#f4f8fc;border-color:#d6e2ee}

.communications-shell{gap:1rem}
.communications-hero-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.95fr);gap:1rem;align-items:stretch}
.communications-hero-copy h1{margin:.25rem 0 .45rem}
.eyebrow{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .7rem;border-radius:999px;background:#eef5fb;color:var(--pt-blue);font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.communications-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.communications-stat-card{padding:1rem 1.05rem;border-radius:18px;background:linear-gradient(180deg,#fbfdff 0%,#f3f8fc 100%);border:1px solid #dbe7f1;display:grid;gap:.28rem}
.communications-stat-card strong{font-size:1.65rem;line-height:1;color:var(--pt-blue-dark)}
.communications-stat-label{font-size:.84rem;color:#57718b;font-weight:700}
.communications-mode-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.communications-mode-copy h2{margin:0 0 .2rem}
.communications-tab-row{display:flex;gap:.7rem;flex-wrap:wrap}
.communications-tab-pill{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1rem;border-radius:999px;background:#eef5fb;color:var(--pt-blue);text-decoration:none;font-weight:700;border:1px solid #d7e4f0}
.communications-tab-pill.active{background:var(--pt-blue);color:#fff;border-color:var(--pt-blue)}
.communications-main-grid{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:1rem;align-items:start}
.communications-sidebar,.communications-content{min-width:0}
.communications-panel{display:grid;gap:1rem}
.communications-filter-form{gap:.85rem}
.communications-filter-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.communications-filter-summary{display:flex;gap:.5rem;flex-wrap:wrap}
.communications-recipient-summary-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}
.communications-recipient-list{display:grid;gap:.65rem;max-height:620px;overflow:auto;padding-right:.15rem}
.communications-recipient-item{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.8rem .9rem;border:1px solid var(--border);border-radius:14px;background:#fbfdff}
.communications-recipient-choice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;cursor:pointer}
.communications-recipient-choice.is-selected{border-color:var(--pt-blue);background:#f5faff;box-shadow:0 8px 18px rgba(15,76,129,.06)}
.communications-recipient-check{display:flex;align-items:flex-start;padding-top:.15rem}
.communications-recipient-check input{width:18px;height:18px;margin:0}
.communications-recipient-copy{display:grid;gap:.2rem;min-width:0}
.communications-selected-hidden{display:none}
.hub-message-open-link{display:block;flex:1;min-width:0;color:inherit;text-decoration:none}
.hub-message-open-link:hover{text-decoration:none}
.hub-compact-card{width:100%;max-width:680px}
.communications-channel-badges{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.communications-compose-card{display:grid;gap:1rem}
.communications-compose-heading{align-items:center}
.communications-send-target{display:flex;align-items:center}
.communications-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.communications-option-card{padding:1rem;border-radius:16px;background:#f7fbff;border:1px solid #dce8f2}
.communications-shortcode-card{padding:1rem;border-radius:16px;background:#f8fbfe;border:1px dashed #c6d8e8;display:grid;gap:.8rem}
.communications-shortcode-head{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;flex-wrap:wrap}
.communications-shortcode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.communications-shortcode-chip{display:grid;gap:.2rem;text-align:left;padding:.7rem .8rem;border-radius:14px;border:1px solid #d6e2ee;background:#fff;color:var(--pt-blue-dark);font-weight:700;box-shadow:none}
.communications-shortcode-chip:hover{background:#f3f8fc;border-color:#bfd2e5}
.communications-shortcode-chip small{display:block;font-size:.78rem;font-weight:500;color:#6b7b8f}
.communications-editor-block{display:grid;gap:.45rem}
.communications-push-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.communications-send-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}
.communications-send-row-inline{align-items:end}
.communications-log-hub{display:grid;gap:1rem}
.communications-log-grid{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:1rem;align-items:start}
.communications-log-list{display:grid;gap:.7rem;max-height:760px;overflow:auto;padding-right:.15rem}
.communications-log-list-item{display:grid;gap:.35rem;padding:.95rem 1rem;border:1px solid var(--border);border-radius:16px;background:#fbfdff;text-decoration:none;color:inherit;transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease}
.communications-log-list-item:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(15,76,129,.08);border-color:#bfd2e5}
.communications-log-list-item.active{border-color:var(--pt-blue);box-shadow:0 14px 28px rgba(15,76,129,.12);background:#f5faff}
.communications-log-list-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}
.communications-log-list-meta{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;color:#57718b;font-size:.88rem}
.communications-log-detail{padding:1rem;border:1px solid var(--border);border-radius:18px;background:#fbfdff;display:grid;gap:1rem;min-height:280px}
.communications-log-detail-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.communications-log-detail-head h3{margin:0 0 .25rem}
.communications-log-badges{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.communications-log-delivery{margin:0}
.communications-log-push-preview{padding:.85rem 1rem;border-radius:14px;background:#f3f8fc;border:1px solid #dbe7f1;display:grid;gap:.35rem}
.communications-log-push-preview p{margin:0}
.communications-log-message{padding:1rem;border-radius:14px;background:#fff;border:1px solid #e2eaf2;overflow:auto;max-height:640px}
.communications-log-message p:last-child{margin-bottom:0}
.inline-button-static{pointer-events:none}
.rich-editor-shell{display:grid;gap:.55rem}
.rich-editor-toolbar{display:flex;gap:.45rem;flex-wrap:wrap;padding:.7rem;border:1px solid #d9e5ef;border-radius:16px;background:#f7fbff}
.rich-editor-toolbar button{width:auto;padding:.52rem .72rem;border-radius:10px;border:1px solid #d6e2ee;background:#fff;color:var(--pt-blue-dark);font-weight:700;box-shadow:none}
.rich-editor-toolbar button:hover{background:#f3f8fc;border-color:#bfd2e5}
.rich-editor-surface{min-height:260px;border:1px solid var(--border);border-radius:16px;padding:1rem;background:#fff;line-height:1.6;outline:none}
.rich-editor-surface:focus{border-color:#98b5d0;box-shadow:0 0 0 3px rgba(49,79,111,.08)}
.rich-editor-textarea{min-height:260px;font-family:Avenir, Avenir Next, Arial, sans-serif}
.rich-editor-shell.is-html-mode .rich-editor-toolbar button[data-action="html"]{background:var(--pt-blue);color:#fff;border-color:var(--pt-blue)}
.rich-editor-shell.is-html-mode .rich-editor-textarea{display:block !important}

@media (max-width: 1040px){
  .communications-hero-card,.communications-main-grid,.communications-log-grid{grid-template-columns:1fr}
  .communications-mode-bar{align-items:flex-start;flex-direction:column}
}
@media (max-width: 760px){
  .admin-nav-menu{display:block;width:100%}
  .admin-nav-trigger{width:100%;text-align:left;cursor:pointer}
  .admin-nav-menu:hover .admin-nav-submenu,.admin-nav-menu:focus-within .admin-nav-submenu,.admin-nav-menu.is-active .admin-nav-submenu{display:grid;position:static;min-width:0;width:100%;margin-top:.45rem}
  .communications-stat-grid,.communications-form-grid,.communications-push-preview-grid,.communications-shortcode-grid{grid-template-columns:1fr}
  .communications-recipient-item,.communications-log-detail-head,.communications-log-list-head,.communications-send-row{flex-direction:column;align-items:flex-start}
  .communications-recipient-choice{grid-template-columns:auto minmax(0,1fr)}
  .hub-compact-card{max-width:none}
  .communications-channel-badges,.communications-log-badges{justify-content:flex-start}
}
.status-pill.secondary{background:#eef5fb;color:#184b73}


/* v1.9.34 communications recipient chips and rota add fallback */
.communications-recipient-list.compact-chip-picker{display:flex;flex-wrap:wrap;gap:.45rem;max-height:320px;overflow:auto;padding:.1rem .1rem .25rem}
.communications-recipient-chip{display:inline-flex;align-items:center;justify-content:flex-start;gap:.4rem;padding:.38rem .62rem;border:1px solid rgba(49,79,111,.14);border-radius:999px;background:#fff;min-height:0;width:auto;max-width:100%;box-shadow:none}
.communications-recipient-chip.is-selected{border-color:var(--pt-blue);background:#f5faff;box-shadow:none}
.communications-recipient-chip .communications-recipient-check{padding-top:0;display:flex;align-items:center}
.communications-recipient-chip .communications-recipient-check input{width:14px;height:14px}
.communications-recipient-name-only{display:block;min-width:0}
.communications-recipient-name-only strong{display:block;font-size:.82rem;line-height:1.15;font-weight:700;color:#21384d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.communications-recipient-chip .communications-channel-badges,.communications-recipient-chip .muted{display:none !important}
@media (max-width: 720px){
  .communications-recipient-list.compact-chip-picker{max-height:280px}
  .communications-recipient-name-only strong{max-width:150px}
}

/* Past rota shifts */
.rota-compact-shift-wrap.is-past, .rota-row-past { opacity: .68; }
.rota-row-past td { background: rgba(15, 23, 42, 0.03); }
.rota-inline-past-pill { margin-left: .45rem; }
.rota-readonly-card { border-style: dashed; }
.rota-settings-card fieldset[disabled], .rota-side-card fieldset[disabled], .rota-requirement-actions fieldset[disabled] { opacity: .72; }


/* v1.9.69 volunteer inbox compacting + settings push diagnostics */
.settings-mini-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.mini-stat-card{padding:1rem 1.05rem;border-radius:16px;border:1px solid #dbe7f1;background:#f8fbff;display:grid;gap:.28rem}
.mini-stat-card-error{background:#fff7f7;border-color:#efcaca}
.mini-stat-label{font-size:.84rem;color:#5b748b;font-weight:700}
.mini-stat-value{font-size:1.05rem;line-height:1.35;color:var(--pt-blue-dark);word-break:break-word}
.hub-message-list-item{display:flex;gap:.85rem;align-items:center;padding:.8rem .95rem;border:1px solid #d8e4ee;border-radius:16px;background:#fbfdff}
.hub-message-list-item:hover{background:#f7fafc;border-color:#d1dfeb}
.hub-message-list-item.is-unread{background:#f4f9ff;border-color:#c7dbee;box-shadow:0 6px 16px rgba(15,76,129,.05)}
.hub-message-open-link{display:grid;gap:.2rem;flex:1;min-width:0}
.hub-message-open-link strong{font-size:1.02rem;line-height:1.2}
.hub-message-preview{margin:.12rem 0 0;color:#5a7085;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rich-editor-surface,.rich-editor-textarea{text-align:left;direction:ltr;unicode-bidi:plaintext}
@media (max-width: 980px){
  .settings-mini-stat-grid{grid-template-columns:1fr}
  .hub-message-list-item{align-items:flex-start}
}

/* v1.9.71 communications inbox, preview, and tracking */
.communications-send-actions-inline{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.communications-log-folder{display:grid;gap:.8rem;min-width:0}
.communications-log-search input{width:100%}
.communications-log-list-inbox{gap:.45rem;max-height:760px}
.communications-log-list-item{padding:.75rem .85rem;border-radius:14px}
.communications-log-list-topline{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}
.communications-log-list-title{font-weight:800;color:#21384d;line-height:1.2}
.communications-log-list-preview{font-size:.9rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.communications-log-list-meta.compact{font-size:.8rem;gap:.55rem}
.communications-log-detail-inbox{min-height:420px}
.communications-empty-inbox{display:grid;place-items:center;min-height:260px;text-align:center}
.communications-recipient-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}
.communications-recipient-bucket{padding:1rem;border:1px solid #dce8f2;border-radius:16px;background:#fff}
.communications-recipient-bucket h4{margin:0 0 .55rem}
.communications-recipient-status-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.communications-recipient-status-list li{display:grid;gap:.15rem;padding:.55rem .65rem;border-radius:12px;background:#f8fbfe;border:1px solid #e0e8f0}
.communications-recipient-status-list .muted{font-size:.85rem}
.communications-recipient-status-list small{color:#6b7b8f}
.communications-tracking-section{gap:.8rem}
.communications-preview-modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:18px}
.communications-preview-modal[hidden]{display:none !important}
.communications-preview-backdrop{position:absolute;inset:0;background:rgba(12,24,38,.55)}
.communications-preview-dialog{position:relative;z-index:1;width:min(980px,100%);max-height:90vh;overflow:auto;display:grid;gap:1rem}
.communications-preview-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.communications-preview-head h3{margin:0 0 .2rem}
.communications-preview-body{display:grid;gap:1rem}
.communications-preview-phone{display:grid;gap:.9rem;max-width:360px}
.communications-preview-banner{background:#1d1d1f;color:#fff;border-radius:22px;padding:.95rem 1rem;box-shadow:0 12px 24px rgba(0,0,0,.18)}
.communications-preview-banner p,.communications-preview-appcard p,.communications-preview-secondary p{margin:.35rem 0 0}
.communications-preview-appcard,.communications-preview-secondary{padding:1rem;border-radius:16px;border:1px solid #dbe7f1;background:#f8fbfe}
@media (max-width: 980px){
  .communications-recipient-buckets{grid-template-columns:1fr}
}

.communications-stepper-card { padding: 1rem 1.2rem; }
.communications-stepper { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.8rem; }
.communications-stepper-item { display:flex; align-items:center; gap:.7rem; padding:.8rem 1rem; border:1px solid rgba(49,79,111,.14); border-radius:16px; background:#f7f9fc; }
.communications-stepper-item span { width:28px; height:28px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:#314f6f; color:#fff; font-weight:700; }
.communications-stepper-item.is-active { background:#edf3f9; border-color:rgba(49,79,111,.28); }
.communications-step-block { border:1px solid rgba(49,79,111,.12); border-radius:18px; padding:1rem; background:#fbfcfe; }
.communications-step-block-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.communications-review-card { background:#f7f9fc; }
.communications-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.communications-log-toolbar { display:flex; align-items:flex-start; justify-content:flex-end; }
.communications-log-filter-row { display:grid; grid-template-columns:minmax(0,1fr) 160px auto; gap:.75rem; margin-bottom:1rem; }
.communications-log-teaser-list { display:flex; flex-direction:column; gap:.65rem; }
.communications-log-teaser-item { display:flex; flex-direction:column; gap:.2rem; padding:.8rem .9rem; border-radius:14px; border:1px solid rgba(49,79,111,.12); background:#fbfcfe; text-decoration:none; color:inherit; }
.communications-log-teaser-item:hover { border-color:rgba(49,79,111,.26); background:#f5f8fc; }
.settings-template-submenu { margin-top:1rem; }
#hub-message-detail-wrap .communications-log-message { position:relative; }
@media (max-width: 980px) {
  .communications-stepper { grid-template-columns:1fr 1fr; }
  .communications-review-grid, .communications-log-filter-row { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
  .communications-stepper { grid-template-columns:1fr; }
}

/* v1.9.74 communications wizard + hub swipe delete */
.hub-swipe-delete-item{transition:transform .18s ease,opacity .18s ease,background .18s ease}
.hub-swipe-delete-item.is-delete-armed{opacity:.58;background:#fff5f5}
.hub-swipe-actions{align-items:center}
.hub-message-undo-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:1rem;background:#163a5c;color:#fff;padding:.9rem 1rem;border-radius:16px;box-shadow:0 18px 38px rgba(0,0,0,.18);max-width:min(92vw,680px)}
.hub-message-undo-bar .muted{color:#dfeaf5}
.communications-recipient-choice input[type="radio"]{width:18px;height:18px}
.communications-recipient-choice input[type="checkbox"]{width:18px;height:18px}
.rich-editor-shell{display:grid;gap:.45rem}
.rich-editor-surface{min-height:220px;padding:.9rem 1rem;border:1px solid #d6e2ee;border-radius:14px;background:#fff;outline:none;direction:ltr;text-align:left}
.modal-shell{position:fixed;inset:0;background:rgba(17,24,39,.42);display:grid;place-items:center;padding:1.5rem;z-index:100}
.modal-shell[hidden]{display:none !important}
.modal-card{width:min(900px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:20px;padding:1rem 1rem 1.2rem;box-shadow:0 22px 48px rgba(0,0,0,.22)}
body.modal-open{overflow:hidden}
@media (max-width: 700px){
  .hub-message-undo-bar{left:12px;right:12px;transform:none;max-width:none;bottom:12px}
}


/* Communications refresh */
.communications-refresh-shell{gap:1rem}
.communications-refresh-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.communications-header-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.communications-refresh-grid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1rem;align-items:start}
.communications-refresh-sidebar,.communications-stage-card{min-width:0}
.communications-sidebar-card{display:grid;gap:.9rem}
.communications-sidebar-title{font-weight:800;color:#21384d}
.communications-stepper-vertical{grid-template-columns:1fr !important}
.communications-stepper-vertical .communications-stepper-item{text-decoration:none;color:inherit}
.communications-stepper-item.is-disabled{opacity:.5;pointer-events:none}
.communications-stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.communications-mini-summary{display:flex;flex-wrap:wrap;gap:.45rem}
.communications-stage-card{padding:1.15rem 1.2rem;display:grid;gap:1rem}
.communications-stage-header h2{margin:0 0 .2rem}
.communications-step-form{display:grid;gap:1rem}
.communications-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.communications-filter-grid label,.communications-step-form label{display:grid;gap:.35rem;font-weight:700;color:#294159}
.communications-filter-grid label span,.communications-step-form label span{font-weight:700}
.communications-filter-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.communications-recipient-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;border:1px solid #dce8f2;border-radius:16px;background:#f8fbfe}
.communications-recipient-scroll{max-height:560px}
.communications-step-note{font-size:.92rem}
.communications-channel-grid .communications-option-card{position:relative;padding:1.1rem 1rem 1rem}
.communications-option-top{display:flex;justify-content:space-between;gap:.75rem;align-items:center}
.communications-option-card input[type="radio"]{justify-self:flex-start;margin-top:.3rem}
.communications-empty-state{padding:1.3rem;border:1px dashed #c9d9e8;border-radius:16px;background:#fbfdff}
.communications-header-actions .communications-tab-pill{margin-top:0}
@media (max-width: 980px){
  .communications-refresh-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .communications-filter-grid,.communications-filter-split,.communications-stat-grid.compact,.communications-review-grid{grid-template-columns:1fr}
  .communications-recipient-toolbar,.communications-send-row{align-items:flex-start}
}

/* v1.9.77 communications polish + dashboard custom layout */
#communications-name-search{min-height:48px;font-size:1rem}
.communications-filter-grid input[type="search"],
.communications-log-search-box{width:100%;font-size:1rem;min-height:48px;border-radius:14px}
.communications-log-filter-row-wide{grid-template-columns:minmax(260px,1.6fr) 170px 170px 160px auto;align-items:end}
.communications-option-card.js-channel-card{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,transform .12s ease}
.communications-option-card.js-channel-card:hover{transform:translateY(-1px);border-color:#8fc59e;background:#f7fcf8}
.communications-option-card.js-channel-card input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.communications-option-card.js-channel-card.is-selected{border-color:#3d8b53;background:#eefaf0;box-shadow:0 14px 28px rgba(61,139,83,.12)}
.communications-option-card.js-channel-card.is-selected .status-pill{border-color:#b8dbbf}
.communications-stage-card{box-shadow:0 18px 34px rgba(15,76,129,.06)}
.communications-recipient-toolbar,.communications-step-block,.communications-sidebar-card{box-shadow:0 10px 24px rgba(15,76,129,.04)}
.communications-log-folder .communications-log-search{margin-bottom:.25rem}
.communications-log-search-box{padding:0 .95rem}
.communications-log-list-meta.compact span:first-child{font-weight:700;color:#36526d}
@media (max-width: 980px){
  .communications-log-filter-row-wide{grid-template-columns:1fr 1fr}
}
@media (max-width: 700px){
  .communications-log-filter-row-wide{grid-template-columns:1fr}
}

.dashboard-layout-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.dashboard-layout-toolbar h2{margin:.25rem 0 .35rem}
.dashboard-layout-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}
.dashboard-custom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}
.dashboard-layout-tile{position:relative;display:grid;gap:1rem}
.dashboard-layout-tile.tile-size-small{grid-column:span 1}
.dashboard-layout-tile.tile-size-wide{grid-column:span 2}
.dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
.dashboard-tile-controls{position:absolute;top:.8rem;right:.8rem;z-index:5;display:none;gap:.45rem;align-items:center;background:rgba(255,255,255,.96);border:1px solid #d8e4ee;border-radius:999px;padding:.35rem .4rem;box-shadow:0 10px 22px rgba(15,76,129,.12)}
.dashboard-layout-editing .dashboard-tile-controls{display:flex}
.dashboard-tile-handle{border:0;background:transparent;color:#4c6781;font-weight:800;padding:.3rem .45rem;cursor:grab}
.dashboard-tile-size-group{display:flex;gap:.25rem}
.dashboard-tile-size-group button{min-width:30px;padding:.35rem .5rem;border-radius:999px;border:1px solid #d6e2ee;background:#fff;color:#294159;font-weight:800}
.dashboard-tile-size-group button.is-active{background:#314f6f;color:#fff;border-color:#314f6f}
.dashboard-layout-tile.is-dragging{opacity:.55}
.dashboard-layout-editing .dashboard-layout-tile{outline:2px dashed rgba(49,79,111,.14);outline-offset:6px;border-radius:24px}
@media (max-width: 1080px){
  .dashboard-custom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
}
@media (max-width: 760px){
  .dashboard-custom-grid{grid-template-columns:1fr}
  .dashboard-layout-tile.tile-size-small,.dashboard-layout-tile.tile-size-wide,.dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
  .dashboard-layout-toolbar{align-items:flex-start}
}

/* v1.9.78 communications and dashboard refinement */
.communications-log-hero{padding:1.15rem 1.25rem}
.communications-log-hub.inbox-shell{padding:1rem}
.communications-log-grid.inbox-grid{display:grid;grid-template-columns:minmax(360px,430px) minmax(0,1fr);gap:1rem;align-items:start}
.inbox-folder{min-width:0;display:grid;gap:.85rem}
.communications-log-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:center}
.communications-log-filter-panel{display:grid;grid-template-columns:minmax(130px,1fr) minmax(130px,1fr) minmax(150px,1.15fr) auto;gap:.8rem;align-items:end;margin:0}
.communications-log-filter-panel label{display:grid;gap:.35rem;font-weight:700;color:#294159}
.communications-log-filter-panel label span{font-size:.82rem;color:#5b738d}
.communications-log-filter-actions{display:flex;justify-content:flex-end;align-items:end;height:100%}
.communications-log-search-box{min-height:52px;font-size:1rem;border-radius:16px}
.communications-log-list-inbox{gap:.2rem;max-height:76vh;padding-right:0}
.communications-log-list-item.inbox-row{padding:.8rem .95rem;border-radius:14px;border:1px solid rgba(49,79,111,.10);background:#fff;box-shadow:none}
.communications-log-list-item.inbox-row:hover{transform:none;box-shadow:none;border-color:#9eb6cc;background:#f8fbfe}
.communications-log-list-item.inbox-row.active{background:#eef5fb;border-color:#5f87ab;box-shadow:inset 3px 0 0 #314f6f}
.communications-log-list-topline,.communications-log-list-subject-row{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}
.communications-log-list-sender{font-weight:800;color:#1f3850}
.communications-log-list-date{font-size:.83rem;color:#647c95;white-space:nowrap}
.communications-log-list-subject-row{align-items:center}
.communications-log-list-title{font-size:.96rem;line-height:1.2}
.communications-log-list-preview{margin-top:.1rem}
.communications-log-list-meta.compact{display:flex;gap:.7rem;flex-wrap:wrap;color:#667f98;font-size:.79rem}
.inbox-detail{min-height:76vh;max-height:76vh;overflow:auto;padding:1.15rem;border-radius:20px;background:linear-gradient(180deg,#fbfdff 0%,#f7fbff 100%)}
.inbox-detail .communications-log-message{max-height:none;min-height:180px}
.inbox-tracking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.dashboard-layout-toolbar.compact-toolbar{padding:.9rem 1rem;align-items:center}
.dashboard-layout-toolbar.compact-toolbar h2{margin:.2rem 0 0}
.dashboard-layout-helper{margin:.15rem 0 .85rem;padding:0 .35rem}
.dashboard-customise-trigger{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .85rem;border-radius:999px;border:1px solid #d6e2ee;background:#fff;color:#294159;font-weight:800;box-shadow:0 8px 18px rgba(15,76,129,.08)}
.dashboard-customise-trigger span{font-size:.92rem}
.dashboard-customise-trigger.is-active{background:#314f6f;color:#fff;border-color:#314f6f}
.dashboard-custom-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-layout-tile.tile-size-quarter{grid-column:span 1}
.dashboard-layout-tile.tile-size-half{grid-column:span 2}
.dashboard-layout-tile.tile-size-threequarter{grid-column:span 3}
.dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
.dashboard-tile-controls{top:.6rem;right:.6rem;padding:.28rem .35rem;gap:.35rem}
.dashboard-tile-size-group button{min-width:34px;padding:.3rem .45rem}
.dashboard-tile-size-group button.is-disabled,.dashboard-tile-size-group button:disabled{background:#eef3f7;color:#90a3b5;border-color:#d8e1ea;cursor:not-allowed;opacity:1}
.dashboard-layout-editing .dashboard-layout-tile{outline:2px dashed rgba(49,79,111,.16);outline-offset:5px}
@media (max-width: 1260px){
  .dashboard-custom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-layout-tile.tile-size-threequarter,.dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
}
@media (max-width: 1080px){
  .communications-log-grid.inbox-grid{grid-template-columns:1fr}
  .inbox-detail{min-height:unset;max-height:none}
  .inbox-tracking-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .dashboard-custom-grid{grid-template-columns:1fr}
  .dashboard-layout-tile.tile-size-quarter,.dashboard-layout-tile.tile-size-half,.dashboard-layout-tile.tile-size-threequarter,.dashboard-layout-tile.tile-size-full{grid-column:1 / -1}
  .communications-log-search-row,.communications-log-filter-panel{grid-template-columns:1fr}
}

/* Build v1.9.80 dashboard + backup schedule refinements */
.hub-message-undo-bar[hidden]{display:none !important}
.hub-pending-banner{display:grid;gap:.25rem;margin:.8rem 0 0;padding:.85rem 1rem;border-radius:16px;background:#fff7e8;border:1px solid #f2d39d;color:#6a4b14}
.hub-pending-banner strong{font-family:'Raleway', Arial, sans-serif;font-size:.98rem;color:#7a4b00}
.hub-pending-inline{display:inline-flex;align-items:center;gap:.35rem;font-weight:800;color:#7a4b00}

.dashboard-shell{display:grid;gap:1rem}
.dashboard-toolbar-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff 0%,#f5f9fc 52%,#edf4fb 100%);border:1px solid #d7e4ef;box-shadow:0 18px 40px rgba(18,49,80,.08)}
.dashboard-toolbar-card::after{content:"";position:absolute;inset:auto -30px -40px auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(49,79,111,.13),rgba(49,79,111,0));pointer-events:none}
.dashboard-toolbar-copy{margin:.35rem 0 0;max-width:72ch}
.dashboard-toolbar-badges{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
.dashboard-toolbar-badge{display:inline-flex;align-items:center;padding:.52rem .9rem;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid #d7e4ef;color:#294159;font-weight:800;box-shadow:0 10px 24px rgba(17,46,78,.06)}
.dashboard-spotlight-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.dashboard-spotlight-card{position:relative;overflow:hidden;display:grid;gap:.35rem;min-height:132px;padding:1rem 1.05rem;background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);border:1px solid #d8e4ee;box-shadow:0 14px 30px rgba(16,46,78,.07);transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.dashboard-spotlight-card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(16,46,78,.11);border-color:#bdd1e3}
.dashboard-spotlight-card strong{font-family:'Raleway', Arial, sans-serif;font-size:2rem;line-height:1;color:#123456}
.dashboard-spotlight-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:#55708b}
.dashboard-custom-grid > .dashboard-layout-tile{animation:dashboardFadeUp .45s ease both}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(1){animation-delay:.05s}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(2){animation-delay:.1s}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(3){animation-delay:.15s}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(4){animation-delay:.2s}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(5){animation-delay:.25s}
.dashboard-custom-grid > .dashboard-layout-tile:nth-child(6){animation-delay:.3s}
@keyframes dashboardFadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.dashboard-hero-card-rich{position:relative;overflow:hidden;background:linear-gradient(135deg,#214262 0%,#314f6f 56%,#496987 100%);border-color:#314f6f;box-shadow:0 24px 44px rgba(20,50,82,.18)}
.dashboard-hero-card-rich::before{content:"";position:absolute;inset:-80px auto auto -60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),rgba(255,255,255,0));pointer-events:none}
.dashboard-hero-card-rich .dashboard-kicker,.dashboard-hero-card-rich h1,.dashboard-hero-card-rich .dashboard-hero-copy,.dashboard-hero-card-rich .dashboard-hero-meta span{color:#fff}
.dashboard-hero-card-rich .dashboard-hero-copy{opacity:.92}
.dashboard-hero-card-rich .dashboard-hero-meta span{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18)}
.dashboard-quick-link{position:relative;overflow:hidden;min-height:92px;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.dashboard-quick-link::after{content:"";position:absolute;inset:auto -24px -24px auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(49,79,111,.08),rgba(49,79,111,0));pointer-events:none}
.dashboard-quick-link:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(15,45,79,.12)}
.dashboard-quick-link strong{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.dashboard-quick-link strong em{font-style:normal;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .5rem;border-radius:999px;background:rgba(49,79,111,.08);color:#3b5876}
.dashboard-quick-link.primary strong em{background:rgba(255,255,255,.18);color:#fff}
.dashboard-metric-card,.dashboard-panel,.dashboard-alert-card{transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease}
.dashboard-metric-card:hover,.dashboard-panel:hover,.dashboard-alert-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(17,47,79,.09);border-color:#c7d9ea}
.dashboard-panel{background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)}
.dashboard-table tr{transition:background .15s ease}
.dashboard-table tr:hover{background:#f6fbff}
.dashboard-action-item{border-radius:18px}
.dashboard-action-counter{min-width:46px;min-height:46px;border-radius:14px}
@media (max-width: 1100px){
  .dashboard-spotlight-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 720px){
  .dashboard-toolbar-badges{width:100%}
  .dashboard-spotlight-row{grid-template-columns:1fr}
  .dashboard-spotlight-card{min-height:118px}
}
.dashboard-quick-link em{font-style:normal;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .5rem;border-radius:999px;background:rgba(49,79,111,.08);color:#3b5876;align-self:flex-start;margin-top:.35rem;display:inline-flex}
.dashboard-quick-link.primary em{background:rgba(255,255,255,.18);color:#fff}

/* Build v1.9.81 dashboard masonry tidy */
.topbar{
  z-index:120;
  overflow:visible;
  box-shadow:0 10px 28px rgba(12,36,62,.06);
}
.container.dashboard-container{
  max-width:1460px;
}
.dashboard-shell{
  gap:.9rem;
}
.dashboard-shell .card,
.dashboard-shell .dashboard-panel,
.dashboard-shell .dashboard-metric-card,
.dashboard-shell .dashboard-toolbar-card,
.dashboard-shell .dashboard-spotlight-card,
.dashboard-shell .dashboard-alert-card,
.dashboard-shell .dashboard-quick-actions-band{
  margin-bottom:0;
}
.dashboard-toolbar-card,
.dashboard-alert-banner,
.dashboard-quick-actions-band,
.dashboard-spotlight-card,
.dashboard-metric-card,
.dashboard-panel{
  min-width:0;
}
.dashboard-alert-banner{
  align-items:center;
}
.dashboard-custom-grid{
  gap:.9rem;
  grid-auto-flow:dense;
  align-items:start;
}
.dashboard-layout-tile{
  min-width:0;
  gap:.9rem;
}
.dashboard-spotlight-row{
  gap:.9rem;
}
.dashboard-toolbar-card{
  padding:1rem 1.1rem;
}
.dashboard-toolbar-copy{
  max-width:60ch;
}
.dashboard-spotlight-card{
  min-height:122px;
  padding:.95rem 1rem;
}
.dashboard-quick-actions-band{
  grid-template-columns:minmax(240px,.75fr) minmax(0,1.55fr);
  gap:1rem;
  padding:1.05rem 1.1rem;
}
.dashboard-quick-actions-band h1{
  margin:.2rem 0 .4rem;
  font-size:1.75rem;
}
.dashboard-quick-actions-band .dashboard-hero-copy{
  margin:0;
  max-width:50ch;
}
.dashboard-hero-actions-grid{
  align-content:start;
}
.dashboard-quick-link{
  min-height:0;
  padding:.92rem 1rem;
}
.dashboard-quick-link strong{
  font-size:.98rem;
}
.dashboard-metric-grid{
  gap:.9rem;
  grid-template-columns:repeat(auto-fit,minmax(165px,1fr));
}
.dashboard-metric-card{
  min-height:134px;
  padding:1rem;
}
.dashboard-main-grid-balanced{
  grid-template-columns:minmax(0,1.6fr) minmax(300px,.85fr);
}
.dashboard-chart-grid-primary{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.dashboard-chart-grid-sidebar{
  grid-template-columns:1fr;
}
.dashboard-chart-grid-sidebar .dashboard-status-layout{
  grid-template-columns:minmax(104px,118px) minmax(0,1fr);
  gap:.75rem;
  align-items:center;
}
.dashboard-chart-grid-sidebar .dashboard-status-chart-wrap{
  min-height:118px;
  max-width:118px;
  margin:0;
}
.dashboard-chart-grid-sidebar .dashboard-chart-canvas.doughnut{
  height:118px !important;
}
.dashboard-chart-grid-sidebar .dashboard-status-copy{
  min-width:0;
}
.dashboard-chart-grid-sidebar .dashboard-status-key{
  display:grid;
  grid-template-columns:1fr;
  gap:.38rem;
}
.dashboard-chart-grid-sidebar .dashboard-status-key .status-key-item{
  width:100%;
  min-width:0;
  padding:.28rem .42rem;
  border-radius:12px;
  line-height:1.2;
  font-size:.82rem;
}
.dashboard-chart-grid-sidebar .dashboard-key-note{
  margin:.42rem 0 0;
  font-size:.78rem;
  line-height:1.3;
}
.dashboard-panel{
  padding:1rem 1.05rem;
}
.dashboard-panel-head{
  margin-bottom:.9rem;
}
.dashboard-action-stack,
.dashboard-mini-list,
.dashboard-chart-grid{
  gap:.9rem;
}
.dashboard-action-item,
.dashboard-mini-list-item{
  padding:.88rem .95rem;
}
.dashboard-mini-list-activity .dashboard-mini-list-item{
  align-items:center;
}
.compact-top-volunteers{
  gap:.55rem;
}
.compact-top-volunteers .dashboard-mini-list-item{
  padding:.68rem .75rem;
}
.compact-top-volunteers .dashboard-mini-list-item p{
  margin:.2rem 0 0;
  font-size:.84rem;
}
.compact-top-volunteers .dashboard-mini-badge{
  min-width:34px;
  height:34px;
  font-size:1rem;
}
.dashboard-activity-panel{
  height:100%;
}
.dashboard-chip-row{
  margin-top:.85rem;
}
.dashboard-status-key .status-key-item{
  align-items:flex-start;
}
@media (max-width: 900px){
  .dashboard-chart-grid-sidebar .dashboard-status-layout{
    grid-template-columns:1fr;
    gap:.6rem;
    align-items:start;
  }
  .dashboard-chart-grid-sidebar .dashboard-status-chart-wrap{
    max-width:190px;
    min-height:160px;
    margin:0 auto;
  }
  .dashboard-chart-grid-sidebar .dashboard-chart-canvas.doughnut{
    height:170px !important;
  }
}
@media (max-width: 1280px){
  .container.dashboard-container{
    max-width:1280px;
  }
  .dashboard-quick-actions-band{
    grid-template-columns:1fr;
  }
}
@media (max-width: 1100px){
  .dashboard-main-grid-balanced,
  .dashboard-chart-grid-primary{
    grid-template-columns:1fr;
  }
}
@media (max-width: 720px){
  .dashboard-toolbar-card,
  .dashboard-alert-banner,
  .dashboard-quick-actions-band,
  .dashboard-panel,
  .dashboard-metric-card,
  .dashboard-spotlight-card{
    padding:.95rem 1rem;
  }
}


fieldset{border:0;padding:0;margin:0;min-width:0}

.dashboard-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:.9rem;align-items:start}
.dashboard-bottom-main,.dashboard-bottom-side{display:grid;gap:.9rem;align-content:start}
.dashboard-bottom-side .dashboard-panel{height:auto}
.dashboard-push-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.8rem}
.dashboard-push-overview-card .dashboard-summary-item strong{font-size:1.15rem;line-height:1.15;word-break:break-word}
.dashboard-push-status.is-error{border-color:#efc2c2;background:#fff7f7}
.dashboard-push-status.is-error strong{color:#8f1d1d}
.dashboard-bottom-side .dashboard-status-layout{grid-template-columns:minmax(104px,118px) minmax(0,1fr);gap:.75rem;align-items:center}
.dashboard-bottom-side .dashboard-status-chart-wrap{min-height:118px;max-width:118px;margin:0}
.dashboard-bottom-side .dashboard-chart-canvas.doughnut{height:118px !important}
.dashboard-bottom-side .dashboard-status-key{display:grid;grid-template-columns:1fr;gap:.38rem}
.dashboard-bottom-side .dashboard-status-key .status-key-item{width:100%;min-width:0;padding:.28rem .42rem;border-radius:12px;line-height:1.2;font-size:.82rem}
.dashboard-bottom-side .dashboard-key-note{margin:.42rem 0 0;font-size:.78rem;line-height:1.3}
@media (max-width: 1180px){.dashboard-bottom-grid{grid-template-columns:1fr}.dashboard-bottom-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.dashboard-push-overview-card{grid-column:span 1}}
@media (max-width: 900px){.dashboard-bottom-side{grid-template-columns:1fr}.dashboard-bottom-side .dashboard-status-layout{grid-template-columns:1fr;gap:.6rem;align-items:start}.dashboard-bottom-side .dashboard-status-chart-wrap{max-width:190px;min-height:160px;margin:0 auto}.dashboard-bottom-side .dashboard-chart-canvas.doughnut{height:170px !important}}


.admin-volunteer-avatar{display:inline-grid;place-items:center;border-radius:999px;overflow:hidden;flex:0 0 auto;font-weight:800;letter-spacing:.02em;border:1px solid rgba(49,79,111,.12);box-shadow:0 6px 16px rgba(15,76,129,.08)}
.admin-volunteer-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.admin-volunteer-avatar-sm{width:38px;height:38px;font-size:.9rem}
.admin-volunteer-avatar-lg{width:84px;height:84px;font-size:1.45rem}
.admin-volunteer-avatar.tone-blue{background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);color:#1d4ed8}
.admin-volunteer-avatar.tone-pink{background:linear-gradient(135deg,#fce7f3 0%,#fbcfe8 100%);color:#db2777}
.admin-volunteer-avatar.tone-grey{background:linear-gradient(135deg,#eef2f7 0%,#dbe4ef 100%);color:#5b7086}
.admin-volunteer-avatar.has-photo{background:#fff;color:transparent}
.volunteer-name-cell{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}
.volunteer-name-stack{display:grid;gap:.1rem;min-width:0}
.volunteer-name-stack small{line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.volunteer-hero-identity{display:flex;align-items:center;gap:1rem;min-width:0}
@media (max-width: 720px){.volunteer-hero-identity{align-items:flex-start}.admin-volunteer-avatar-lg{width:72px;height:72px;font-size:1.25rem}.volunteer-name-stack small{max-width:180px}}

.communications-log-hub.inbox-shell{padding:0;overflow:hidden;border:1px solid rgba(49,79,111,.1);background:linear-gradient(180deg,#f8fbfe 0%,#f4f8fc 100%)}
.communications-log-grid.inbox-grid{grid-template-columns:minmax(370px,430px) minmax(0,1fr);gap:0;align-items:stretch}
.inbox-folder,.inbox-detail{min-width:0}
.inbox-folder{background:#f7fbff;border-right:1px solid rgba(49,79,111,.1);padding:1rem}
.inbox-folder-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.2rem 0 .35rem}
.inbox-folder-header h2{margin:.2rem 0 0;font-size:1.25rem}
.inbox-count-pill{display:inline-flex;align-items:center;justify-content:center;min-width:2.15rem;height:2.15rem;padding:0 .7rem;border-radius:999px;background:#e6eef7;color:#314f6f;font-weight:800}
.communications-log-search{display:grid;gap:.8rem;padding:.9rem;border:1px solid rgba(49,79,111,.08);border-radius:18px;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.communications-log-filter-panel{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:.15rem}
.communications-log-filter-panel label:last-of-type{grid-column:1 / -1}
.communications-log-filter-actions{grid-column:1 / -1;justify-content:flex-start}
.communications-log-list-inbox{gap:.35rem;max-height:calc(76vh - 160px);padding:.25rem 0 0}
.communications-log-list-item.inbox-row{border-radius:16px}
.inbox-detail{padding:1rem 1.1rem;min-height:76vh;max-height:76vh;overflow:auto;background:linear-gradient(180deg,#fcfdff 0%,#f7fbff 100%)}
.inbox-detail-shell{display:grid;gap:1rem;min-width:0}
.inbox-detail-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding-bottom:.2rem;border-bottom:1px solid rgba(49,79,111,.08)}
.inbox-detail-toolbar h2{margin:.2rem 0 0;font-size:1.2rem}
.inbox-message-shell{padding:0;border-radius:18px;overflow:hidden}
.communications-log-message-inner{padding:1rem 1.05rem;background:#fff;max-width:100%;overflow:auto}
.communications-log-message-inner,.communications-log-message-inner *{box-sizing:border-box;max-width:100%}
.communications-log-message-inner img,.communications-log-message-inner video,.communications-log-message-inner iframe{max-width:100% !important;height:auto !important}
.communications-log-message-inner table{max-width:100% !important;display:block;overflow:auto;border-collapse:collapse}
.communications-log-message-inner pre,.communications-log-message-inner code{white-space:pre-wrap;word-break:break-word}
.communications-log-message-inner a{word-break:break-word}
@media (max-width: 980px){.communications-log-grid.inbox-grid{grid-template-columns:1fr}.inbox-folder{border-right:none;border-bottom:1px solid rgba(49,79,111,.1)}.communications-log-filter-panel{grid-template-columns:1fr}.communications-log-filter-panel label:last-of-type,.communications-log-filter-actions{grid-column:auto}.communications-log-list-inbox{max-height:none}.inbox-detail{min-height:unset;max-height:none}}


/* v1.9.88 settings sidebar alignment hardening */
@media (min-width: 981px){
  .settings-layout{display:grid !important;grid-template-columns:minmax(0,7fr) minmax(320px,3fr) !important;align-items:start;}
  .settings-panels{grid-column:1;min-width:0;}
  .settings-info-column{grid-column:2;display:grid;gap:18px;align-content:start;min-width:0;}
}


.reports-checks{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding-top:24px}
.reports-checks .checkline{display:flex;align-items:center;gap:10px;margin-top:0;line-height:1.35}
.reports-checks .checkline input[type=checkbox]{margin:0;flex:0 0 auto}
@media (max-width: 1100px){
  .reports-checks{padding-top:0}
}

/* v1.9.91 reports filter tidy + volunteer ajax picker */
#reports-page-wrap{display:grid;gap:18px}
.reports-filter-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px 20px;align-items:start}
.reports-field{min-width:0}
.reports-field-range,.reports-field-start,.reports-field-end,.reports-field-sources,.reports-field-projects,.reports-field-roles{grid-column:span 2}
.reports-volunteer-filter{grid-column:span 4}
.reports-checks{grid-column:span 4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end;padding-top:0;min-height:132px}
.report-toggle-btn{display:flex;align-items:center;gap:12px;justify-content:flex-start;min-height:56px;width:100%;padding:14px 16px;border-radius:18px;border:1px solid var(--border);background:#f8fbfe;color:var(--text);font:inherit;font-weight:700;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease,color .14s ease}
.report-toggle-btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(33,43,54,.08)}
.report-toggle-btn:focus-visible{outline:2px solid rgba(49,79,111,.35);outline-offset:2px}
.report-toggle-btn.is-on{background:rgba(78,162,110,.12);border-color:rgba(78,162,110,.34);color:#245b37}
.report-toggle-btn.is-off{background:rgba(185,65,65,.08);border-color:rgba(185,65,65,.28);color:#8f2323}
.report-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,.8);font-size:1rem;line-height:1;box-shadow:inset 0 0 0 1px rgba(49,79,111,.08)}
.report-toggle-label{line-height:1.2;text-align:left}
.reports-submit-wrap{grid-column:span 2;display:flex;align-items:end;justify-content:flex-start;padding-top:0;min-height:132px}
.reports-submit-wrap button{min-width:180px}
.reports-volunteer-search-wrap{margin-bottom:10px}
.reports-volunteer-selected{display:flex;gap:8px;flex-wrap:wrap;min-height:44px;padding:10px 12px;border:1px solid var(--border);border-radius:16px;background:#fbfdff}
.reports-volunteer-selected .muted{margin:0}
.reports-volunteer-selected .info-pill{margin:0}
.reports-filter-grid select[multiple]{min-height:132px}
.reports-filter-note{margin:4px 0 0 0}
@media (max-width: 1200px){
  .reports-filter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .reports-field-range,.reports-field-start,.reports-field-end,.reports-field-sources,.reports-field-projects,.reports-field-roles{grid-column:span 2}
  .reports-volunteer-filter,.reports-checks{grid-column:span 3}
  .reports-checks{grid-template-columns:1fr}
  .reports-submit-wrap{grid-column:span 6;min-height:auto}
}
@media (max-width: 760px){
  .reports-filter-grid{grid-template-columns:1fr}
  .reports-field-range,.reports-field-start,.reports-field-end,.reports-field-sources,.reports-field-projects,.reports-field-roles,.reports-volunteer-filter,.reports-checks,.reports-submit-wrap{grid-column:span 1}
  .reports-checks,.reports-submit-wrap{min-height:auto}
  .reports-checks{grid-template-columns:1fr;align-items:stretch}
  .reports-submit-wrap button{width:100%}
}
