:root{font-family:Inter,Arial,sans-serif;color:#1d293e;background:#f6f8fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column}button,input{font:inherit}button{cursor:pointer;border:1px solid #1e3a8b;background:#1e3a8b;color:white;border-radius:6px;padding:12px 17px;font-weight:650;transition:background .15s}button:hover:not(:disabled){background:#294da7}button:disabled{opacity:.45;cursor:not-allowed}a{color:#1e3a8b}.topbar{background:#1e3a8b;color:#fff;box-shadow:0 2px 10px #10295e1f}.top-inner{max-width:1160px;margin:auto;min-height:95px;display:flex;align-items:center;justify-content:space-between;padding:15px 28px;gap:15px}.brand{display:flex;gap:14px;align-items:center}.brand img{border-radius:50%;background:#fff;width:57px;height:57px;object-fit:contain}.brand div{display:grid;gap:3px}.brand strong{font-size:23px;letter-spacing:.01em}.brand span{font-size:14px;color:#e9efff}.portal-link{color:white;text-decoration:none;font-size:14px;font-weight:650}.portal-link:hover{text-decoration:underline}.container{width:100%;max-width:1160px;margin:0 auto;padding:35px 28px 52px;flex:1}.intro{max-width:780px;margin-bottom:27px}.eyebrow{font-size:12px;text-transform:uppercase;font-weight:800;letter-spacing:.12em;color:#1e3a8b;margin:0 0 10px}.intro h1{font-size:clamp(26px,3vw,36px);line-height:1.15;letter-spacing:-.04em;margin:0 0 12px}.intro>p:last-child{font-size:15px;color:#5b687c;line-height:1.75;margin:0}.tools{background:#fff;padding:22px;border:1px solid #dfe6ef;border-radius:8px;box-shadow:0 5px 25px #21375a0a;margin-bottom:19px}.tools label{display:block;font-size:14px;font-weight:700;margin-bottom:9px}.toolbar{display:flex;gap:10px;align-items:center}.search-wrap{display:flex;align-items:center;border:1px solid #cbd6e5;border-radius:6px;min-width:0;flex:1;background:white}.search-wrap:focus-within{outline:2px solid #1e3a8b44;border-color:#1e3a8b}.search-wrap svg{margin-left:14px;flex:none;width:20px;height:20px;fill:none;stroke:#73839a;stroke-width:2;stroke-linecap:round}.search-wrap input{border:0;outline:0;width:100%;min-width:0;padding:13px;color:#1d293e;background:transparent}.outline{background:#fff;color:#1e3a8b}.outline:hover:not(:disabled){background:#eef2fa}.meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#607189;margin-top:15px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.contact{background:#fff;border:1px solid #dfe6ef;border-radius:8px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.contact-name{display:block;font-size:14px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.contact-number{margin-top:8px;display:block;color:#52647d;font-size:13px;font-variant-numeric:tabular-nums}.contact-dept{display:block;color:#6b7c91;font-size:12px;margin-top:5px}.call{display:flex;align-items:center;justify-content:center;text-decoration:none;background:#e7f4eb;color:#19643a;border-radius:5px;font-size:13px;font-weight:750;padding:10px;white-space:nowrap}.call:hover{background:#ccebd6}.call svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;margin-right:5px}.empty{padding:45px 18px;text-align:center;background:white;border:1px dashed #cbd6e5;border-radius:8px;color:#52647d}.empty strong{color:#263b60}.empty p{margin-bottom:0}.privacy{color:#6b7c91;font-size:12px;line-height:1.6;margin:24px 0 0}footer{text-align:center;background:#eef2f8;color:#64748b;font-size:12px;padding:21px 12px}.install-banner{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);width:min(92vw,800px);box-shadow:0 12px 55px #16264d35;border:1px solid #d7e2f2;border-radius:10px;background:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:18px;z-index:10}.install-banner[hidden],.empty[hidden]{display:none}.install-copy{display:grid;gap:5px}.install-copy strong{font-size:14px}.install-copy span{font-size:12px;line-height:1.5;color:#61718a}.install-actions{display:flex;align-items:center;gap:10px;flex:none}.install-actions .dismiss{background:transparent;color:#51627b;border:0;padding:8px}.install-actions .dismiss:hover{background:#f2f4f8}.help-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.help-head h2{margin:0;font-size:18px}.help-head button{border:0;background:transparent;color:#3c4a61;font-size:25px;padding:0 8px}dialog{border:1px solid #d4e0ee;border-radius:10px;box-shadow:0 20px 70px #0c26594a;max-width:min(440px,92vw);padding:24px;line-height:1.65}dialog::backdrop{background:#10213c80}dialog p{font-size:14px;color:#52647d}@media(max-width:940px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:610px){.top-inner{min-height:78px;padding:12px 17px}.brand img{width:46px;height:46px}.brand strong{font-size:18px}.brand span{font-size:12px}.container{padding:25px 16px 40px}.tools{padding:16px}.toolbar{flex-wrap:wrap}.search-wrap{flex-basis:100%}.toolbar button{flex:1}.grid{grid-template-columns:minmax(0,1fr)}.contact{padding:16px}.install-banner{width:calc(100% - 22px);bottom:11px;padding:16px;align-items:stretch;flex-direction:column}.install-actions{justify-content:space-between}.meta{flex-direction:column;gap:5px}.intro>p:last-child{font-size:14px}.portal-link{font-size:12px}}
/* Responsive directory refinements and sticky header. */
.topbar{position:sticky;top:0;z-index:40}
.contact-details{min-width:0}
.toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.button-icon{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.active-notice{background:#edf4ff;border-left:3px solid #1e3a8b;border-radius:4px;padding:11px 14px;margin:0 0 14px;color:#2a466c;font-size:13px;line-height:1.55}
.offline-note{background:#fff8df;border:1px solid #ead9a1;border-radius:5px;padding:12px 15px;margin:0 0 17px;color:#66511f;font-size:13px;line-height:1.6}
.offline-note[hidden]{display:none}
.call-person{font-weight:700;color:#1e3a8b;overflow-wrap:anywhere}
.call-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:19px}
.call-actions button{flex:1;white-space:nowrap;min-width:125px}
.call-footnote{font-size:12px!important;color:#6d788b!important;margin-bottom:0}
#call-notice{width:min(420px,calc(100% - 30px))}
#call-notice .help-head h2{color:#1e3a8b}
@media(max-width:610px){
 .intro>p:last-child,.privacy,.active-notice,.offline-note,.install-copy span{text-align:justify;text-justify:inter-word;hyphens:auto}
 .toolbar #refresh,.toolbar #download{flex:1;min-width:0;padding:11px 9px}
 .toolbar button .button-icon{width:18px;height:18px}
 .call-actions button{min-width:0}
}

/* Centred, accessible desktop-call notice with a visible 6.5-second countdown. */
#call-notice{max-width:min(460px,calc(100vw - 26px));padding:26px 27px 24px}
#call-notice .help-head{position:relative;justify-content:center;padding:1px 30px}
#call-notice .help-head h2{text-align:center;width:100%;font-size:19px;line-height:1.35;margin:0}
#call-notice .help-head button{position:absolute;right:-7px;top:50%;transform:translateY(-50%);line-height:1}
#call-notice .call-person{text-align:center;margin:20px 0 14px;font-size:15px;line-height:1.55;word-break:break-word}
#call-notice #call-message{text-align:justify;text-justify:inter-word;hyphens:auto;line-height:1.75;margin:12px 0 21px;font-size:14px}
#call-notice .call-actions{margin-top:16px}
#call-notice .call-footnote{margin:19px 0 8px;text-align:center;font-size:12px!important;line-height:1.45}
#call-notice .call-timer{height:4px;width:100%;overflow:hidden;background:#e5eaf3;border-radius:99px}
#call-notice .call-timer-fill{height:100%;width:100%;background:#1e3a8b;border-radius:inherit}
#call-notice[open] .call-timer-fill{animation:cug-call-autoclose 6.5s linear forwards}
@keyframes cug-call-autoclose{from{width:100%}to{width:0%}}
@media(max-width:610px){
 #call-notice{padding:23px 19px 19px}
 #call-notice .call-actions{gap:9px}
 #call-notice .call-actions button{font-size:13px;padding:11px 8px}
}
@media(prefers-reduced-motion:reduce){
 #call-notice[open] .call-timer-fill{animation:none;width:100%}
}

/* Consistent footer across the public CUG app and airtime emails. */
body>footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}

/* Installable CUG app: first-visit modal and always-available install control. */
.header-install{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:#fff;color:#1e3a8b;border:1px solid #fff;border-radius:5px;padding:9px 15px;font-size:13px}
.header-install:hover{background:#f1f5fd;color:#1e3a8b}
.header-install[hidden]{display:none!important}
.install-onboarding{width:min(470px,calc(100% - 30px));padding:26px;border-radius:12px;border:1px solid #d7e3f4}
.install-onboarding-content{text-align:center;display:grid;gap:12px;justify-items:center}
.install-onboarding-content img{width:84px;height:84px;object-fit:contain;border-radius:17px}
.install-onboarding-content h2{font-size:20px;color:#1e3a8b;line-height:1.35;margin:3px 0 0}
.install-onboarding-content p{color:#51627c;font-size:14px;line-height:1.65;margin:0}
.install-onboarding-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;margin-top:10px}
.install-onboarding-actions button{padding:12px 10px;min-width:0}
.install-onboarding-content small{font-size:11px;line-height:1.5;color:#71819a}
@media(max-width:610px){.header-install{font-size:12px;padding:8px 10px}.install-onboarding{padding:22px 17px}.install-onboarding-actions{grid-template-columns:1fr}}

/* Directory desktop layout: centered 960px shell including horizontal padding. */
.top-inner,.container{max-width:960px}
