/* Citizen services: shared inner-page tokens, with local layouts and form rules. */
body.gh-public.portal-inner .citizen-services-page {color:var(--page-ink);}
body.gh-public.portal-inner .citizen-services-page :is(.card.portal-panel) {padding:0; overflow:hidden;}
body.gh-public.portal-inner .citizen-services-page :is(h2,h3) {color:var(--page-ink); line-height:1.45;}
body.gh-public.portal-inner .citizen-services-page h2 {font-size:1.125rem;}
body.gh-public.portal-inner .citizen-services-page h3 {font-size:1rem;}
body.gh-public.portal-inner .citizen-services-page :is(p,li,dd) {font-size:.875rem; line-height:1.7;}
body.gh-public.portal-inner .citizen-services-page .badge {max-width:100%; white-space:normal; line-height:1.45; font-size:.75rem; font-weight:600;}
body.gh-public.portal-inner .citizen-services-page .text-muted {color:var(--page-muted)!important;}
body.gh-public.portal-inner .citizen-services-page :is(.gh-detail-box,.gh-side-card,.gh-info-panel,.gh-related-content) {border-radius:var(--page-radius); box-shadow:var(--public-shadow);}

/* Service cards keep a steady icon column and matching fact cells. */
body.gh-public.portal-inner .citizen-charter-page .portal-filter-bar {display:block;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:18px!important;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-card {grid-template-columns:42px minmax(0,1fr)!important; gap:14px!important; padding:20px!important; border-radius:var(--page-radius)!important; box-shadow:var(--public-shadow)!important; transform:none;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-card:hover {border-color:#bacce3!important;}
body.gh-public.portal-inner .citizen-services-page :is(.gh-charter-icon,.gh-info-panel__icon) {width:42px; height:42px; flex:0 0 42px; border-radius:10px; background:#edf3fc; color:var(--page-primary);}
body.gh-public.portal-inner .portal-charter-icon {display:block; width:26px; height:26px; flex:none;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-body {display:flex; flex-direction:column; min-width:0;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-body h2 {margin:10px 0 8px; font-size:1.125rem!important; font-weight:700!important;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-body>p {margin:0 0 16px; color:var(--page-muted);}
body.gh-public.portal-inner .citizen-charter-page .gh-card-meta {gap:6px;}
body.gh-public.portal-inner .citizen-charter-page .gh-card-meta span {padding:3px 7px; border-radius:5px; background:#eef3fa; color:#496483; font-size:.6875rem; font-weight:600;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-mini {grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:8px; margin:0 0 16px; padding-top:12px; margin-top:auto;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-mini>div {padding:10px; border:1px solid #e8edf5; border-radius:7px; background:#f8fafd;}
body.gh-public.portal-inner .citizen-charter-page :is(.gh-charter-mini,.gh-side-card) dt {margin-bottom:5px; color:var(--page-muted); font-size:.6875rem; font-weight:500; letter-spacing:0; text-transform:none;}
body.gh-public.portal-inner .citizen-charter-page :is(.gh-charter-mini,.gh-side-card) dd {font-size:.8125rem; line-height:1.55; color:var(--page-ink); font-weight:600;}
body.gh-public.portal-inner .citizen-charter-page .gh-charter-body>.portal-button {align-self:flex-start;}
body.gh-public.portal-inner .citizen-charter-page .gh-info-panel {align-items:center; gap:14px;}
body.gh-public.portal-inner .citizen-charter-page .gh-info-panel h2 {margin:0;}
body.gh-public.portal-inner .citizen-charter-page .gh-side-card.sticky-lg-top {position:static;}
body.gh-public.portal-inner .citizen-charter-page .gh-side-card dl>div:last-child {border-bottom:0; padding-bottom:0;}
body.gh-public.portal-inner .citizen-charter-page .gh-clean-list {padding-left:20px;}
body.gh-public.portal-inner .citizen-charter-page .gh-link-list {margin:0; padding-left:18px;}
body.gh-public.portal-inner .citizen-charter-page .gh-link-list a {display:inline-block; padding:5px 0;}

/* Form fields and confirmations use the same panel/label scale. */
body.gh-public.portal-inner .citizen-services-page .citizen-form-panel {padding:24px!important;}
body.gh-public.portal-inner .citizen-form-page .form-label {margin-bottom:6px; font-weight:600;}
body.gh-public.portal-inner .citizen-form-page :is(input,select,textarea) {max-width:100%;}
body.gh-public.portal-inner .citizen-form-page small {display:block; margin-top:6px; font-size:.75rem; line-height:1.6;}
body.gh-public.portal-inner .citizen-form-page .public-captcha-box {border-color:var(--page-line)!important; background:#f8fafd!important;}
body.gh-public.portal-inner .citizen-form-page .public-captcha-box input {max-width:260px;}
body.gh-public.portal-inner .citizen-form-page .citizen-privacy-consent {display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px; align-items:start; padding:14px; margin:0; background:#f8fafd; border:1px solid var(--page-line); border-radius:8px;}
body.gh-public.portal-inner .citizen-form-page .citizen-privacy-consent .form-check-input {width:18px; height:18px; margin:3px 0 0; float:none; flex:none;}
body.gh-public.portal-inner .citizen-form-page .citizen-privacy-consent label {font-weight:400;}
body.gh-public.portal-inner .citizen-services-page .alert {border-radius:9px; font-size:.875rem; line-height:1.7;}
body.gh-public.portal-inner .citizen-services-page .alert ul {padding-left:20px;}
body.gh-public.portal-inner .citizen-confirmation-page .public-confirmation__icon {display:grid; place-items:center; width:50px; height:50px; margin:0 auto 16px; border-radius:50%; background:#e8f5ee; color:#227044; font-size:1.5rem;}
body.gh-public.portal-inner .citizen-confirmation-page .public-tracking-number {margin-top:8px; color:var(--page-primary); font-size:clamp(1rem,2vw,1.35rem); font-weight:700; overflow-wrap:anywhere;}
body.gh-public.portal-inner .citizen-grievance-result .card-header {padding:16px 20px;}
body.gh-public.portal-inner .citizen-grievance-result .portal-grievance-summary>div {display:grid!important; grid-template-columns:minmax(90px,.7fr) minmax(0,1fr); gap:16px; align-items:baseline; font-size:.8125rem;}
body.gh-public.portal-inner .citizen-grievance-result .portal-grievance-summary strong {text-align:right; font-weight:600;}
body.gh-public.portal-inner .citizen-grievance-result .public-timeline-mark {display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:50%; background:#eaf3fc; color:var(--page-primary);}

/* Directory search, contact rows and emergency details. */
body.gh-public.portal-inner .citizen-directory-summary {display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:18px;}
body.gh-public.portal-inner .citizen-directory-summary>p {flex:1 1 220px; margin:0 0 0 auto; text-align:right; color:var(--page-muted);}
body.gh-public.portal-inner .contact-directory-section .contact-directory-toolbar {position:static; display:grid; grid-template-columns:minmax(240px,1fr) auto!important; gap:14px; box-shadow:var(--public-shadow);}
body.gh-public.portal-inner .contact-directory-section .contact-directory-filter {display:flex; flex-wrap:wrap; gap:7px; overflow:visible;}
body.gh-public.portal-inner .contact-directory-section .contact-directory-filter button {border-radius:7px; min-height:40px; padding:8px 11px; font-size:.75rem; font-weight:600;}
body.gh-public.portal-inner .contact-directory-section .contact-directory-grid {gap:18px!important;}
body.gh-public.portal-inner .contact-directory-section .contact-directory-grid.is-single {grid-template-columns:1fr!important;}
body.gh-public.portal-inner .contact-directory-section .contact-department-card {border-radius:var(--page-radius)!important; overflow:hidden; transform:none;}
body.gh-public.portal-inner .contact-directory-section .contact-department-card__head {grid-template-columns:42px minmax(0,1fr) 40px; gap:12px; padding:18px;}
body.gh-public.portal-inner .contact-directory-section .contact-department-card__icon {width:42px; height:42px; font-size:.875rem;}
body.gh-public.portal-inner .contact-directory-section .contact-department-card__head h2 {font-size:1.0625rem; line-height:1.45;}
body.gh-public.portal-inner .contact-directory-section .contact-department-card__head>a {width:40px; height:40px;}
body.gh-public.portal-inner .contact-directory-section :is(.contact-department-card__meta small,.contact-person-row__type) {letter-spacing:0; text-transform:none; font-size:.6875rem; font-weight:500;}
body.gh-public.portal-inner .contact-directory-section .contact-person-row {grid-template-columns:minmax(110px,.8fr) minmax(0,1.2fr); gap:12px;}
body.gh-public.portal-inner .contact-directory-section .contact-person-row__actions :is(a,button) {min-height:40px; border-radius:7px; font-size:.75rem; font-weight:600;}
body.gh-public.portal-inner .contact-directory-section .contact-person-row__actions button {min-width:40px; justify-content:center;}
body.gh-public.portal-inner .contact-directory-section :is(.contact-directory-empty,.contact-directory-no-results) {padding:28px 20px; border:1px dashed #cedbea; border-radius:var(--page-radius);}
body.gh-public.portal-inner .citizen-emergency-page .card-body {display:flex; flex-direction:column; gap:8px;}
body.gh-public.portal-inner .citizen-emergency-page .card-body p {margin:0!important;}
body.gh-public.portal-inner .citizen-emergency-page .portal-emergency-phone {font-size:1.25rem!important; color:var(--page-primary);}
body.gh-public.portal-inner .citizen-emergency-page .citizen-contact-icon {display:grid; place-items:center; flex:0 0 38px; width:38px; height:38px; border-radius:9px; background:#fff1f2; color:#a42d39; font-size:1.2rem;}
body.gh-public.portal-inner .citizen-emergency-page .badge {align-self:flex-start;}

/* Blood stock and activity summaries share the card rhythm. */
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 {grid-template-columns:repeat(4,minmax(0,1fr)) minmax(180px,1.4fr)!important; gap:0; margin:0 0 24px; overflow:hidden; border-radius:var(--page-radius); box-shadow:var(--public-shadow);}
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39>div {padding:15px; border-right:1px solid var(--page-line);}
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39>div:last-child {border:0;}
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 small {font-size:.6875rem; text-transform:none; letter-spacing:0; color:var(--page-muted);}
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 strong {font-size:1.25rem; color:var(--page-primary);}
body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 .is-time strong {font-size:.8125rem; line-height:1.65;}
body.gh-public.portal-inner .citizen-services-page .blood-section-heading-v39 {align-items:center; flex-wrap:wrap; gap:12px;}
body.gh-public.portal-inner .citizen-services-page .blood-section-heading-v39 h2 {font-size:1.125rem; margin:0 0 6px;}
body.gh-public.portal-inner .citizen-services-page .blood-section-heading-v39 p {max-width:780px; color:var(--page-muted);}
body.gh-public.portal-inner .citizen-services-page .blood-section-heading-v39__note {border-radius:6px; font-size:.75rem; font-weight:500;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-grid-v39 {gap:16px!important;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39 {padding:18px; transform:none;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39__drop {width:19px;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39__status {font-size:.6875rem; letter-spacing:0; text-transform:none;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39__group {font-size:2rem;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39__facts small {text-transform:none; font-size:.6875rem;}
body.gh-public.portal-inner .citizen-services-page .blood-stock-card-v39 footer {font-size:.6875rem;}
body.gh-public.portal-inner .citizen-services-page.blood-contact-section-v39 {border:0;}
body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39 {overflow:hidden; border-radius:var(--page-radius); box-shadow:var(--public-shadow);}
body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39__option {border-radius:7px;}
body.gh-public.portal-inner .citizen-services-page .blood-contact-detail-v39__icon {flex:0 0 44px; width:44px; height:44px; border-radius:9px;}
body.gh-public.portal-inner .citizen-services-page .blood-contact-detail-v39__identity small {font-size:.6875rem; letter-spacing:0; text-transform:none;}
body.gh-public.portal-inner .citizen-services-page .blood-contact-detail-v39__identity h3 {font-size:1.0625rem;}
body.gh-public.portal-inner .citizen-services-page .blood-contact-detail-v39__actions a {border-radius:8px;}
body.gh-public.portal-inner .citizen-services-page .gh-empty-card {grid-column:1/-1; padding:24px; border:1px dashed #cedbea; border-radius:var(--page-radius); color:var(--page-muted); background:#fff; font-size:.875rem; text-align:center;}
body.gh-public.portal-inner .visit-dashboard-page .visit-dashboard-meta {margin:0; gap:8px;}
body.gh-public.portal-inner .visit-dashboard-page .visit-dashboard-meta span {padding:8px 11px; border:1px solid var(--page-line); color:var(--page-muted); font-size:.75rem!important; font-weight:500;}
body.gh-public.portal-inner .visit-dashboard-page .visit-summary-grid {gap:16px!important; margin-top:20px;}
body.gh-public.portal-inner .visit-dashboard-page .visit-summary-card {padding:18px;}
body.gh-public.portal-inner .visit-dashboard-page .visit-summary-card span {text-transform:none; letter-spacing:0; font-size:.75rem; font-weight:500; color:var(--page-muted);}
body.gh-public.portal-inner .visit-dashboard-page .visit-summary-card strong {font-size:1.875rem; color:var(--page-primary);}
body.gh-public.portal-inner .visit-dashboard-page .visit-summary-card small {font-size:.75rem; font-weight:400;}
body.gh-public.portal-inner .visit-dashboard-page .visit-panel-head {padding:18px 20px;}
body.gh-public.portal-inner .visit-dashboard-page .visit-panel-head h2 {font-size:1.125rem;}
body.gh-public.portal-inner .visit-dashboard-page .visit-panel-head p {font-weight:400;}
body.gh-public.portal-inner .visit-dashboard-page .visit-table-wrap {max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain;}

@media (max-width:1199.98px) {
  body.gh-public.portal-inner .contact-directory-section .contact-directory-toolbar {grid-template-columns:1fr!important;}
  body.gh-public.portal-inner .contact-directory-section .contact-person-row {grid-template-columns:1fr;}
  body.gh-public.portal-inner .contact-directory-section .contact-person-row__actions {justify-content:flex-start;}
  body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 {grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39>div {border-bottom:1px solid var(--page-line);}
  body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 .is-time {grid-column:span 2!important;}
}
@media (max-width:991.98px) {
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-grid {grid-template-columns:1fr!important;}
  body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39 {grid-template-columns:1fr!important;}
  body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39__list {display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-right:0; border-bottom:1px solid var(--page-line);}
  body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39__option {min-width:0;}
}
@media (max-width:575.98px) {
  body.gh-public.portal-inner .citizen-services-page .citizen-form-panel {padding:16px!important;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-card {grid-template-columns:36px minmax(0,1fr)!important; gap:10px!important; padding:15px!important;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-icon {width:36px; height:36px;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-mini {grid-template-columns:1fr!important; gap:6px;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-mini>div {display:grid; grid-template-columns:minmax(60px,.8fr) minmax(0,1fr); gap:8px; padding:8px;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-mini dt {margin:0;}
  body.gh-public.portal-inner .citizen-charter-page .gh-charter-body>.portal-button {width:100%;}
  body.gh-public.portal-inner .citizen-directory-summary>p {flex-basis:100%; text-align:left;}
  body.gh-public.portal-inner .contact-directory-section .contact-department-card__head {grid-template-columns:36px minmax(0,1fr) 36px; gap:9px; padding:14px;}
  body.gh-public.portal-inner .contact-directory-section .contact-department-card__icon {width:36px; height:36px;}
  body.gh-public.portal-inner .contact-directory-section .contact-department-card__head>a {width:36px; height:44px;}
  body.gh-public.portal-inner .contact-directory-section :is(.contact-directory-filter button,.contact-person-row__actions a,.contact-person-row__actions button) {min-height:44px;}
  body.gh-public.portal-inner .contact-directory-section .contact-person-row__actions button {min-width:44px;}
  body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 {grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.gh-public.portal-inner .citizen-services-page .blood-bank-summary-v39 .is-time {grid-column:1/-1!important;}
  body.gh-public.portal-inner .citizen-services-page .blood-contact-selector-v39__list {grid-template-columns:1fr!important;}
  body.gh-public.portal-inner .citizen-grievance-result .card-header {padding:14px 15px;}
  body.gh-public.portal-inner .visit-dashboard-page .visit-panel-head {padding:15px;}
}
@media print {
  body.gh-public.portal-inner .citizen-charter-page :is(.gh-charter-card,.gh-detail-box,.gh-side-card) {break-inside:avoid; box-shadow:none!important;}
}
