.scf-portal-admin,
.scf-portal-frontend {
	--portal-dark: #3a3432;
	--portal-ink: #3a3432;
	--portal-aqua: #3fb5c9;
	--portal-mist: #e7f6f9;
	--portal-line: #cfdee2;
	color: var(--portal-ink);
	font-family: Montserrat, Arial, sans-serif;
}

.scf-portal-frontend { min-height: 72vh; background:#f7fbfc; }
.portal-app { display:grid; grid-template-columns:14rem minmax(0,1fr); min-height:72vh; }
.portal-sidebar { position:relative; display:flex; min-height:72vh; padding:1.5rem 1rem; background:#3a3432; color:#fff; flex-direction:column; }
.portal-brand { display:grid; gap:.65rem; padding:.3rem .65rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.16); color:#fff !important; text-decoration:none; }
.portal-brand img { width:100%; max-width:10.5rem; height:auto; }
.portal-brand span { color:#81d2e4; font-size:.72rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.portal-profile { display:flex; gap:.7rem; margin:1rem .35rem; align-items:center; }
.portal-profile>span { display:grid; width:2.25rem; height:2.25rem; border:1px solid #81d2e4; border-radius:50%; background:#504e4d; color:#81d2e4; place-items:center; font-weight:800; }
.portal-profile strong,.portal-profile small { display:block; color:#fff; }
.portal-profile small { margin-top:.15rem; color:#dbe8ea; font-size:.72rem; }
.portal-sidebar nav { display:grid; gap:.25rem; }
.portal-sidebar nav a,.portal-signout { padding:.72rem .75rem; border-radius:.45rem; color:#edf7f9 !important; font-size:.86rem; font-weight:650; text-decoration:none; }
.portal-sidebar nav a:hover,.portal-sidebar nav a.is-current { background:#504e4d; color:#81d2e4 !important; }
.portal-sidebar nav a:focus-visible,
.portal-sidebar summary:focus-visible,
.portal-signout:focus-visible { outline:3px solid #81d2e4; outline-offset:2px; }
.portal-signout { margin-top:auto; }
.portal-workspace { min-width:0; padding:clamp(1.25rem,4vw,3rem); }
.portal-quick-actions { margin:0 0 1.4rem; }
.portal-quick-actions>div:last-child { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.8rem; }
.portal-quick-actions a { display:grid; grid-template-columns:2rem 1fr; gap:.1rem .65rem; min-height:5.5rem; padding:1rem; border:1px solid #cfdee2; border-radius:.7rem; background:#fff; color:#3a3432 !important; text-decoration:none; box-shadow:0 .4rem 1.2rem rgba(58,52,50,.04); }
.portal-quick-actions a>span { grid-row:1/3; display:grid; width:2rem; height:2rem; border:1.5px solid #3b8b9f; border-radius:50%; color:#3b8b9f; place-items:center; }
.portal-quick-actions a strong,.portal-quick-actions a small { display:block; }
.portal-quick-actions a small { color:#61767b; line-height:1.35; }
.portal-heading { display:flex; justify-content:space-between; gap:2rem; align-items:flex-start; margin:0 0 2rem; }
.portal-heading--compact { align-items:center; padding-bottom:1.4rem; border-bottom:1px solid var(--portal-line); }
.portal-heading h1 { margin:.25rem 0; max-width:18ch; font-size:clamp(2rem,5vw,3.5rem); line-height:1; }
.portal-heading p { max-width:48rem; }
.portal-eyebrow { margin:0; color:#206778; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.portal-button { display:inline-flex; align-items:center; justify-content:center; min-height:2.75rem; padding:.72rem 1.05rem; border:0; border-radius:.55rem; background:var(--portal-dark); color:#fff !important; font:inherit; font-weight:750; line-height:1.2; text-align:center; text-decoration:none; cursor:pointer; }
.portal-button:hover { filter:brightness(.94); }
.portal-button:focus-visible,
.portal-link-button:focus-visible,
.portal-table a:focus-visible { outline:3px solid var(--portal-aqua); outline-offset:3px; }
.portal-button--quiet { background:#e4f1f4; color:#173d48 !important; }
.portal-button--publish { background:#1f7250; }
.portal-button--danger { background:#8b2f2f; }
.portal-boundary { display:grid; grid-template-columns:10rem 1fr; gap:1rem; margin:1rem 0 2rem; padding:1rem 1.25rem; border-left:.3rem solid var(--portal-aqua); background:var(--portal-mist); }
.portal-module-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.portal-module-grid article { display:flex; min-height:13rem; padding:1.4rem; border:1px solid var(--portal-line); border-radius:.8rem; background:#fff; box-shadow:0 .5rem 1.8rem rgba(20,45,52,.06); flex-direction:column; }
.portal-module-grid article>span { color:#527078; font-size:.85rem; font-weight:700; }
.portal-module-grid h2 { margin:.45rem 0; }
.portal-module-grid article>div { display:flex; gap:1rem; margin-top:auto; padding-top:1rem; }
.portal-module-grid article>div a { color:#145d6c; font-weight:750; }
.portal-panel,
.portal-approvals { margin-top:2rem; padding:clamp(1rem,3vw,2rem); border:1px solid var(--portal-line); border-radius:.8rem; background:#fff; box-shadow:0 .5rem 1.8rem rgba(20,45,52,.04); }
.portal-panel-heading,
.portal-approval-list article { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.portal-panel-heading h2 { margin:.25rem 0; }
.portal-panel-heading>span { color:#557078; font-weight:700; }
.portal-approval-list article { padding:1rem 0; border-top:1px solid #dce6e8; }
.portal-review-actions,
.portal-row-actions { display:flex; flex-wrap:wrap; gap:.5rem .9rem; align-items:center; }
.portal-review-actions form,
.portal-row-actions form { margin:0; }
.portal-row-actions button,
.portal-link-button { padding:0; border:0; background:transparent; color:#145d6c; font:inherit; font-weight:700; text-decoration:underline; cursor:pointer; }
.portal-admin-link { margin-top:2rem; }
.scf-portal-login form { max-width:30rem; padding:1.5rem; border:1px solid var(--portal-line); border-radius:.8rem; background:#fff; }
.scf-portal-login__logo { display:block; width:min(20rem,100%); height:auto; margin-bottom:2rem; }
.scf-portal-login input:not([type=checkbox]) { width:100%; }
.portal-breadcrumbs { display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 1.5rem; color:#597177; font-size:.92rem; }
.portal-breadcrumbs a { color:#145d6c; font-weight:700; }
.portal-current-status { display:flex; gap:.7rem; align-items:center; margin-top:.8rem; }
.portal-current-status>span:first-child { color:#5c7379; font-size:.9rem; }
.portal-status { display:inline-flex; width:max-content; padding:.28rem .62rem; border-radius:999px; font-size:.78rem; font-weight:800; line-height:1.2; white-space:nowrap; }
.portal-status--draft { background:#eef0f1; color:#465358; }
.portal-status--pending { background:#fff1c8; color:#6e4c00; }
.portal-status--future { background:#e5ecff; color:#294f91; }
.portal-status--publish { background:#ddf3e8; color:#145d3e; }
.portal-status--error { background:#fceaea; color:#8b2f2f; }
.portal-notice { margin:1rem 0; padding:.85rem 1rem; border-radius:.5rem; }
.portal-notice p { margin:0; }
.portal-notice > .portal-eyebrow { color:#174f5b; }
.portal-notice--success { border-left:.3rem solid #1f7250; background:#e6f6ee; }
.portal-notice--error { border-left:.3rem solid #a23131; background:#fceaea; }
.portal-table-wrap { max-width:100%; overflow:auto; }
.portal-table { width:100%; border-collapse:collapse; text-align:left; }
.portal-table th,
.portal-table td { padding:.9rem .7rem; border-top:1px solid #dce6e8; vertical-align:top; }
.portal-table thead th { color:#536b72; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; }
.portal-table tbody th a { color:#173d48; font-weight:800; }
.portal-table tbody th small { display:block; margin-top:.25rem; color:#62767b; font-weight:500; }
.portal-library-toolbar { display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0; padding:.8rem; border:1px solid #dce6e8; border-radius:.55rem; background:#f8fbfb; }
.portal-library-toolbar label { display:grid; gap:.25rem; min-width:min(100%,15rem); color:#465d63; font-size:.72rem; font-weight:750; }
.portal-library-toolbar input,
.portal-library-toolbar select { box-sizing:border-box; min-height:2.55rem; padding:.55rem .65rem; border:1px solid #9eb1b6; border-radius:.4rem; background:#fff; color:#26363b; font:inherit; }
.portal-library-toolbar input:focus,
.portal-library-toolbar select:focus { border-color:#167188; outline:3px solid rgba(63,181,201,.25); }
.portal-empty { padding:2rem 0 .5rem; text-align:center; }
.portal-recent__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.portal-recent__list>a { display:flex; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid #dce6e8; border-radius:.6rem; color:inherit; text-decoration:none; }
.portal-recent__list small,
.portal-recent__list strong { display:block; }
.portal-recent__list small { margin-bottom:.2rem; color:#597177; }
.portal-editor { display:grid; grid-template-columns:minmax(0,1fr) minmax(15rem,20rem); gap:clamp(1rem,3vw,2rem); align-items:start; }
.portal-editor__main,
.portal-editor__actions { padding:clamp(1rem,3vw,2rem); border:1px solid var(--portal-line); border-radius:.8rem; background:#fff; box-shadow:0 .5rem 1.8rem rgba(20,45,52,.04); }
.portal-editor__actions { position:sticky; top:calc(32px + 1.5rem); display:grid; gap:.75rem; }
.portal-editor__actions h2 { margin:.2rem 0; }
.portal-editor__secondary { padding-top:.5rem; border-top:1px solid var(--portal-line); }
.portal-editor__section-heading { display:flex; gap:.9rem; margin:2rem 0 1rem; align-items:flex-start; }
.portal-editor__section-heading:first-child { margin-top:0; }
.portal-editor__section-heading>span { display:grid; width:2rem; height:2rem; border-radius:.5rem; background:var(--portal-dark); color:#fff; place-items:center; font-size:.8rem; font-weight:800; }
.portal-editor__section-heading h2,
.portal-editor__section-heading p { margin:0; }
.portal-editor__section-heading p { margin-top:.2rem; color:#5b7177; }
.portal-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.portal-field { min-width:0; margin-bottom:1rem; }
.portal-field>label:not(.portal-checkbox) { display:block; margin-bottom:.38rem; color:#26363b; font-size:.92rem; font-weight:800; }
.portal-field input:not([type=checkbox]),
.portal-field select,
.portal-field textarea { box-sizing:border-box; width:100%; min-height:2.8rem; padding:.7rem .75rem; border:1px solid #9eb1b6; border-radius:.45rem; background:#fff; color:#26363b; font:inherit; }
.portal-field textarea { min-height:7rem; resize:vertical; }
.portal-field input:focus,
.portal-field select:focus,
.portal-field textarea:focus { border-color:#167188; outline:3px solid rgba(63,181,201,.25); }
.portal-field small { display:block; margin-top:.38rem; color:#61767b; line-height:1.4; }
.portal-checkbox { display:flex; gap:.65rem; align-items:flex-start; line-height:1.4; }
.portal-checkbox input { width:1.1rem; height:1.1rem; margin-top:.18rem; flex:0 0 auto; }
.portal-media-picker { display:grid; grid-template-columns:minmax(11rem,18rem) 1fr; gap:1rem; align-items:center; margin-bottom:1rem; padding:1rem; border:1px dashed #9eb1b6; border-radius:.7rem; background:#f8fbfb; }
.portal-media-picker__preview { display:grid; aspect-ratio:4/3; overflow:hidden; border-radius:.65rem; background:#e8eff0; color:#465b60; place-items:center; text-align:center; }
.portal-media-picker__preview img { width:100%; height:100%; object-fit:cover; }
.portal-media-picker>.portal-checkbox { grid-column:1/-1; }
.portal-advanced { margin-top:1.5rem; border:1px solid var(--portal-line); border-radius:.65rem; }
.portal-advanced summary { padding:1rem; font-weight:800; cursor:pointer; }
.portal-advanced__content { padding:0 1rem 1rem; }
.portal-recurrence[hidden] { display:none; }
.portal-reading-days { display:grid; gap:1rem; margin:0; padding:0; list-style:none; counter-reset:reading-day; }
.portal-reading-day { padding:1rem; border:1px solid #d6e3e6; border-radius:.65rem; background:#f9fcfc; }
.portal-reading-day__heading { display:flex; gap:1rem; margin-bottom:.75rem; align-items:flex-start; justify-content:space-between; }
.portal-reading-day__heading span,
.portal-reading-day__heading strong,
.portal-reading-day__heading small { display:block; }
.portal-reading-day__heading span { color:#206778; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.portal-reading-day__heading small { margin-top:.15rem; color:#697a7e; font-size:.65rem; overflow-wrap:anywhere; }
.portal-reading-day__heading>div:last-child { display:flex; gap:.7rem; }
.portal-reading-day label { display:grid; gap:.35rem; font-size:.8rem; font-weight:750; }
.portal-reading-day textarea { box-sizing:border-box; width:100%; min-height:5.5rem; padding:.65rem; border:1px solid #9eb1b6; border-radius:.4rem; font:inherit; resize:vertical; }
.portal-plan-preview { margin-top:1.25rem; border:1px solid #d6e3e6; border-radius:.6rem; }
.portal-plan-preview summary { padding:1rem; font-weight:800; cursor:pointer; }
.portal-plan-preview__content { padding:0 1rem 1rem; }
.portal-plan-preview__content ol { display:grid; gap:.35rem; padding-left:1.35rem; }
.portal-plan-preview__content li span { display:block; color:#52696f; }

@media (max-width:900px) {
	.portal-app { grid-template-columns:1fr; }
	.portal-sidebar { min-height:0; padding:1rem; }
	.portal-brand { grid-template-columns:minmax(8rem,10rem) 1fr; align-items:center; padding-bottom:.8rem; }
	.portal-profile { display:none; }
	.portal-sidebar nav { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:.8rem; }
	.portal-signout { position:absolute; top:1rem; right:1rem; }
	.portal-quick-actions>div:last-child { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-editor { grid-template-columns:1fr; }
  .portal-editor__actions { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-editor__actions>div:first-child,
  .portal-editor__secondary { grid-column:1/-1; }
}

@media (max-width:640px) {
	.portal-workspace { padding:1rem; }
	.portal-sidebar nav { display:flex; overflow-x:auto; }
	.portal-sidebar nav a { white-space:nowrap; }
	.portal-signout { position:static; margin:.5rem 0 0; }
	.portal-quick-actions>div:last-child { grid-template-columns:1fr; }
  .portal-heading,
  .portal-panel-heading,
  .portal-approval-list article { align-items:stretch; flex-direction:column; }
  .portal-module-grid,
  .portal-field-grid,
  .portal-recent__list,
  .portal-editor__actions { grid-template-columns:1fr; }
  .portal-editor__actions>div:first-child,
  .portal-editor__secondary { grid-column:auto; }
  .portal-boundary { grid-template-columns:1fr; }
  .portal-media-picker { grid-template-columns:1fr; }
  .portal-table { min-width:42rem; }
}

/* Approved Team Portal application shell (Figma frames 4:2, 5:105 and 6:2). */
.scf-team-portal-page .service-ribbon,
.scf-team-portal-page .site-header,
.scf-team-portal-page .site-footer { display:none; }
.scf-team-portal-page { max-width:100vw; overflow-x:hidden; }
.scf-team-portal-page #main-content { min-height:100vh; padding:0; background:#f7fbfc; }
.scf-team-portal-page .scf-portal-frontend { min-height:100vh; }
.scf-team-portal-page.admin-bar .scf-portal-frontend { min-height:calc(100vh - 32px); }
.scf-team-portal-page .skip-link:focus { z-index:100001; }

.portal-app { grid-template-columns:14rem minmax(0,1fr); min-height:100vh; background:#f7fbfc; }
.admin-bar .portal-app { min-height:calc(100vh - 32px); }
.portal-sidebar { position:sticky; top:0; height:100vh; min-height:0; box-sizing:border-box; padding:1.5rem 1rem 1rem; overflow:auto; background:#3a3432; }
.admin-bar .portal-sidebar { top:32px; height:calc(100vh - 32px); }
.portal-brand { gap:.75rem; padding:.25rem .55rem 1.35rem; border-bottom:1px solid rgba(255,255,255,.14); }
.portal-brand img { width:10.75rem; max-width:100%; }
.portal-brand span { color:#81d2e4; font-size:.66rem; letter-spacing:.19em; }
.portal-sidebar nav { display:grid; gap:.28rem; margin-top:1.25rem; }
.portal-sidebar nav>a,
.portal-nav-disabled,
.portal-nav-more>summary { display:flex; gap:.75rem; min-height:2.75rem; box-sizing:border-box; padding:.68rem .75rem; border-radius:.5rem; align-items:center; color:#edf7f9; font-size:.83rem; font-weight:650; line-height:1.25; text-decoration:none; }
.portal-sidebar nav>a:hover,
.portal-sidebar nav>a.is-current,
.portal-nav-more>summary:hover,
.portal-nav-more.is-current>summary { background:#504946; color:#81d2e4 !important; }
.portal-sidebar nav>a.is-current { box-shadow:inset 3px 0 0 #81d2e4; }
.portal-icon { width:1.15rem; height:1.15rem; flex:0 0 auto; }
.portal-nav-disabled { color:#a9a3a0; cursor:not-allowed; }
.portal-nav-disabled small { display:inline-flex; margin-left:.35rem; padding:.08rem .32rem; border:1px solid rgba(255,255,255,.2); border-radius:999px; font-size:.55rem; letter-spacing:.06em; text-transform:uppercase; }
.portal-nav-more { border-top:1px solid rgba(255,255,255,.11); margin-top:.55rem; padding-top:.55rem; }
.portal-nav-more>summary { cursor:pointer; list-style:none; }
.portal-nav-more>summary:focus-visible { outline:3px solid #81d2e4; outline-offset:2px; }
.portal-nav-more.is-current>summary { box-shadow:inset 3px 0 0 #81d2e4; }
.portal-nav-more>summary::-webkit-details-marker { display:none; }
.portal-nav-submenu { display:grid; min-width:0; gap:.2rem; margin:.25rem 0 0 1.9rem; }
.portal-nav-submenu>a { display:block; min-width:0; min-height:2.25rem; box-sizing:border-box; padding:.48rem .65rem; border-radius:.42rem; overflow-wrap:anywhere; color:#edf7f9; font-size:.76rem; font-weight:650; line-height:1.25; text-decoration:none; }
.portal-nav-submenu>a:hover,
.portal-nav-submenu>a.is-current { background:#504946; color:#81d2e4 !important; }
.portal-nav-submenu>a.is-current { box-shadow:inset 3px 0 0 #81d2e4; }
.portal-sidebar__footer { margin-top:auto; padding-top:1rem; }
.portal-profile { margin:0 0 .5rem; padding:.75rem .4rem; border-top:1px solid rgba(255,255,255,.14); }
.portal-signout { display:inline-flex; min-height:2rem; margin:0; padding:.4rem; align-items:center; color:#c9d8da !important; font-size:.75rem; }

.portal-workspace { width:100%; max-width:90rem; box-sizing:border-box; padding:clamp(1.5rem,3.2vw,3.25rem); }
.portal-heading { margin-bottom:1.7rem; }
.portal-heading h1 { max-width:24ch; margin:.3rem 0 .45rem; color:#3a3432; font-size:clamp(2rem,4vw,3.25rem); letter-spacing:-.035em; line-height:1.03; }
.portal-heading p { margin:.2rem 0 0; color:#607277; font-size:.94rem; }
.portal-heading--compact { padding-bottom:1.25rem; }
.portal-heading--compact h1 { font-size:clamp(1.9rem,3.3vw,2.65rem); }
.portal-eyebrow { color:#2b7b8e; font-size:.68rem; letter-spacing:.16em; }
.portal-button { min-height:2.6rem; border-radius:.38rem; background:#3a3432; font-size:.82rem; }
.portal-button--quiet { border:1px solid #bdd6dc; background:#fff; color:#244c56 !important; }
.portal-button--danger { background:#883c3c; }
.portal-button--publish { background:#236f54; }

.portal-quick-actions { margin-bottom:1.5rem; }
.portal-quick-actions>.portal-panel-heading { display:none; }
.portal-quick-actions>div:last-child { gap:.75rem; }
.portal-quick-actions a { min-height:4.65rem; padding:.85rem 1rem; border-radius:.55rem; box-shadow:none; }
.portal-quick-actions a>span { width:1.8rem; height:1.8rem; border-color:#3fb5c9; color:#247a8d; }
.portal-quick-actions a strong { font-size:.86rem; }
.portal-quick-actions a small { font-size:.7rem; }

.portal-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.portal-module-grid article { min-height:19rem; padding:1.2rem; border-radius:.65rem; box-shadow:0 .3rem 1rem rgba(20,45,52,.035); }
.portal-module-grid article>.portal-home-card__heading { display:flex; min-height:3rem; gap:.75rem; margin-top:0; padding-top:0; padding-bottom:.85rem; border-bottom:1px solid #dbe7e9; align-items:center; }
.portal-home-card__heading>strong,
.portal-home-card__heading>a { margin-left:auto; }
.portal-home-card__heading h2 { margin:.15rem 0 0; font-size:1.08rem; }
.portal-home-card__icon { display:grid; width:2.35rem; height:2.35rem; border-radius:50%; background:#e7f6f9; color:#236f81; place-items:center; font-size:1.1rem; font-weight:800; }
.portal-home-card__heading>a { color:#176579; font-size:.75rem; font-weight:750; }
.portal-task-list,
.portal-event-list { margin:0; padding:0; list-style:none; }
.portal-task-list li,
.portal-event-list li { border-bottom:1px solid #e2eaec; }
.portal-task-list li:last-child,
.portal-event-list li:last-child { border-bottom:0; }
.portal-task-list a { display:flex; gap:.75rem; padding:.8rem .15rem; align-items:center; justify-content:space-between; color:inherit; text-decoration:none; }
.portal-task-list strong,
.portal-task-list small,
.portal-event-list strong,
.portal-event-list small { display:block; }
.portal-task-list small,
.portal-event-list small { margin-top:.15rem; color:#4f6267; font-size:.7rem; }
.portal-event-list li { display:flex; gap:.8rem; padding:.72rem .15rem; align-items:center; }
.portal-event-list time { display:grid; width:2.65rem; height:2.65rem; border-radius:.4rem; background:#e7f6f9; color:#275d69; place-items:center; line-height:1; }
.portal-event-list time strong { font-size:.58rem; letter-spacing:.08em; }
.portal-event-list time span { font-size:1.05rem; font-weight:800; }
.portal-empty--compact { margin:auto 0; padding:2rem .5rem; }
.portal-empty--compact h3 { margin:0 0 .35rem; font-size:1rem; }
.portal-empty--compact p { margin:0; color:#65777b; font-size:.8rem; }

.portal-panel,
.portal-approvals { margin-top:1rem; border-radius:.65rem; box-shadow:0 .3rem 1rem rgba(20,45,52,.035); }
.portal-content-overview .portal-panel-heading { padding-bottom:.8rem; border-bottom:1px solid #dbe7e9; }
.portal-stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.portal-stat-grid>div { display:flex; min-height:4.8rem; padding:1rem; border:1px solid #d9e6e8; border-radius:.5rem; background:#fbfdfd; flex-direction:column; justify-content:center; }
.portal-stat-grid strong { color:#29515b; font-size:1.7rem; line-height:1; }
.portal-stat-grid span { margin-top:.35rem; color:#506368; font-size:.72rem; }
.portal-stat-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.portal-stat-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.portal-life-group-dashboard-stats>a { display:flex; min-height:4.8rem; padding:1rem; border:1px solid #b9d6db; border-radius:.5rem; background:#f1fafb; color:inherit; flex-direction:column; justify-content:center; text-decoration:none; }
.portal-life-group-dashboard-stats>a:hover,
.portal-life-group-dashboard-stats>a:focus-visible { border-color:#2b7b8e; box-shadow:0 0 0 3px rgba(43,123,142,.12); }
.portal-life-group-dashboard-stats>a strong { color:#29515b; font-size:1.7rem; line-height:1; }
.portal-life-group-dashboard-stats>a span { margin-top:.35rem; color:#506368; font-size:.72rem; }
.portal-life-group-dashboard-stats>a small { margin-top:.4rem; color:#176579; font-size:.68rem; font-weight:750; }
.portal-area-links { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:1rem; }
.portal-area-links a { color:#176579; font-size:.78rem; font-weight:750; }
.portal-boundary { grid-template-columns:8.5rem 1fr; margin:1rem 0; border-left:0; border-radius:.55rem; background:#e7f6f9; font-size:.78rem; }
.portal-boundary b { color:#31535b; }
.portal-recent { margin-top:1rem; }
.portal-approvals { background:#fff; }
.portal-approval-list article { align-items:flex-start; }
.portal-review-actions { max-width:31rem; justify-content:flex-end; }
.portal-change-request { display:grid; grid-template-columns:minmax(12rem,1fr) auto; gap:.4rem; width:100%; }
.portal-change-request label { grid-column:1/-1; color:#4e6267; font-size:.7rem; font-weight:750; }
.portal-change-request textarea { box-sizing:border-box; width:100%; min-height:2.6rem; padding:.55rem .65rem; border:1px solid #9eb1b6; border-radius:.4rem; font:inherit; font-size:.75rem; resize:vertical; }
.portal-notice--changes { border-left:.3rem solid #b06a12; background:#fff4dc; }

.portal-section-tabs { display:flex; gap:.35rem; margin:0 0 1.2rem; padding:.3rem; border:1px solid #d3e1e4; border-radius:.5rem; background:#eef6f7; width:max-content; max-width:100%; }
.portal-section-tabs a { padding:.48rem .8rem; border-radius:.32rem; color:#476167; font-size:.78rem; font-weight:750; text-decoration:none; }
.portal-section-tabs a.is-current { background:#fff; color:#225f6d; box-shadow:0 1px 4px rgba(20,45,52,.09); }
.portal-sync-strip { display:flex; flex-wrap:wrap; gap:.65rem 1rem; margin:0 0 1rem; padding:.85rem 1rem; border:1px solid #d2e2e5; border-radius:.55rem; background:#fff; align-items:center; font-size:.76rem; }
.portal-sync-strip>div { display:grid; grid-template-columns:auto 1fr; gap:.08rem .55rem; align-items:center; }
.portal-sync-strip small { grid-column:2; color:#4f6267; }
.portal-sync-strip>span { margin-left:auto; color:#61757a; }
.portal-sync-strip>a { color:#176579; font-weight:750; }
.portal-sync-dot { width:.62rem; height:.62rem; border-radius:50%; background:#9ca7a9; }
.portal-sync-dot--connected { background:#2b8a68; }
.portal-sync-dot--stale { background:#d4932e; }
.portal-sync-dot--error { background:#a94141; }
.portal-table--life-groups td small,
.portal-table--life-groups th small { display:block; margin-top:.25rem; color:#66797e; font-size:.68rem; }
.portal-life-groups-tabs { display:flex; gap:.4rem; margin:1rem 0; overflow-x:auto; padding-bottom:.15rem; }
.portal-life-groups-tabs button { display:inline-flex; min-height:2.5rem; gap:.45rem; padding:.52rem .72rem; border:1px solid #c8dadd; border-radius:.42rem; background:#fff; color:#405b62; align-items:center; white-space:nowrap; font:inherit; font-size:.76rem; font-weight:750; cursor:pointer; }
.portal-life-groups-tabs button span { display:inline-grid; min-width:1.35rem; min-height:1.35rem; padding:0 .2rem; border-radius:999px; background:#edf5f6; color:#526b71; place-items:center; font-size:.65rem; }
.portal-life-groups-tabs button.is-current { border-color:#2b7b8e; background:#e7f6f9; color:#175b6b; }
.portal-life-groups-filters { display:grid; grid-template-columns:minmax(14rem,1.6fr) repeat(3,minmax(9rem,1fr)); }
.portal-life-groups-filters label { min-width:0; }
.portal-life-groups-filters>.portal-button { align-self:end; }
.portal-library-toolbar--search-only { grid-template-columns:minmax(14rem,32rem); }
.portal-add-life-group { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem 2rem; align-items:center; scroll-margin-top:1rem; }
.portal-add-life-group h2 { margin:.2rem 0 .45rem; }
.portal-add-life-group p { margin:.25rem 0; color:#53676c; }
.portal-add-life-group__actions { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:flex-end; }
.portal-add-life-group>small { grid-column:1/-1; color:#53676c; }
.portal-group-detail-tabs { margin-bottom:1rem; overflow-x:auto; }
.portal-stat-grid--six { grid-template-columns:repeat(3,minmax(0,1fr)); }
.portal-classification-form { display:flex; gap:.4rem; margin-top:.55rem; align-items:center; }
.portal-classification-form select { min-width:10rem; }
.portal-classification-form .portal-button { min-height:2.25rem; padding:.35rem .65rem; }
.portal-classification-form--detail { align-items:end; }
.portal-classification-form--detail label { display:grid; gap:.35rem; color:#26363b; font-weight:750; }
.portal-life-groups-bulk { display:flex; flex-wrap:wrap; gap:.65rem 1rem; margin:1rem 0; padding:.8rem 1rem; border:1px solid #c8dadd; border-radius:.5rem; background:#f4f9fa; align-items:center; }
.portal-life-groups-bulk>label:not(.portal-checkbox) { display:flex; gap:.45rem; align-items:center; font-size:.76rem; font-weight:750; }
.portal-life-groups-bulk>.portal-checkbox { max-width:30rem; font-size:.72rem; }
.portal-life-groups-bulk .portal-button { min-height:2.4rem; }
.portal-detail-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1rem; margin:0; }
.portal-detail-list>div { padding:.7rem; border:1px solid #dce6e8; border-radius:.42rem; background:#f8fbfb; }
.portal-detail-list dt { margin-bottom:.2rem; color:#5d7176; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.portal-detail-list dd { margin:0; color:#26363b; }
.portal-reporting-access-list { display:grid; gap:.65rem; }
.portal-reporting-access-list form { display:flex; gap:1rem; padding:.75rem; border:1px solid #d5e2e5; border-radius:.45rem; align-items:center; justify-content:space-between; }
.portal-reporting-access-list label { display:flex; gap:.65rem; align-items:flex-start; }
.portal-reporting-access-list label span { display:grid; gap:.15rem; }
.portal-reporting-access-list small { color:#607277; }
.portal-attention { color:#8a5214; font-size:.75rem; font-weight:700; }
.portal-link-button--danger { color:#8a3434; }
.portal-membership-confirm { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1.25rem; border:2px solid #d49c55; background:#fffaf1; align-items:end; }
.portal-membership-confirm h2 { margin:.2rem 0 .8rem; }
.portal-membership-confirm dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:0; }
.portal-membership-confirm dl>div { padding:.65rem; border:1px solid #eadac3; border-radius:.4rem; background:#fff; }
.portal-membership-confirm dt { color:#64757a; font-size:.65rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.portal-membership-confirm dd { margin:.2rem 0 0; overflow-wrap:anywhere; font-size:.78rem; font-weight:700; }
.portal-membership-confirm form { max-width:18rem; }
.portal-request-list { display:grid; gap:1rem; margin-top:1rem; }
.portal-request-card { margin-top:0; }
.portal-request-card>header { display:flex; gap:1rem; align-items:flex-start; justify-content:space-between; }
.portal-request-card h2 { margin:.2rem 0; font-size:1.08rem; }
.portal-request-card header p:last-child { margin:.2rem 0; color:#61757a; font-size:.76rem; }
.portal-request-card>dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.portal-request-card>dl>div { padding:.7rem; border:1px solid #dce6e8; border-radius:.42rem; background:#fbfdfd; }
.portal-request-card dt { color:#65777b; font-size:.65rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.portal-request-card dd { margin:.25rem 0 0; overflow-wrap:anywhere; font-size:.76rem; }
.portal-request-review { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.8rem; margin-top:1rem; padding-top:1rem; border-top:1px solid #dce6e8; align-items:end; }
.portal-request-review>div:last-child { display:flex; gap:.5rem; }
.portal-request-card>details { margin-top:1rem; border-top:1px solid #dce6e8; padding-top:.75rem; }
.portal-request-card>details summary { color:#315a64; font-size:.75rem; font-weight:750; cursor:pointer; }
.portal-request-card>details ol { display:grid; gap:.5rem; padding-left:1.2rem; color:#53676c; font-size:.72rem; }
.portal-diagnostics>summary { display:flex; gap:1rem; padding:1rem 1.2rem; align-items:center; justify-content:space-between; cursor:pointer; list-style:none; }
.portal-diagnostics>summary::-webkit-details-marker { display:none; }
.portal-diagnostics>summary span:first-child { display:grid; gap:.2rem; }
.portal-diagnostics>summary small { color:#2b7b8e; font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.portal-diagnostics>summary strong { color:#334f56; }
.portal-diagnostics__content { padding:0 1.2rem 1.2rem; border-top:1px solid #dce6e8; }
.portal-diagnostics__content>section { padding-top:1rem; }
.portal-enquiry-summary { display:flex; gap:2rem; align-items:center; justify-content:space-between; }
.portal-enquiry-summary h2 { margin:.2rem 0; }
.portal-enquiry-summary p:last-child { margin-bottom:0; color:#65787d; font-size:.8rem; }

/* Private Life Group reporting. */
.portal-reporting-layout,
.portal-report-preview { display:grid; grid-template-columns:minmax(0,2fr) minmax(17rem,.8fr); gap:1rem; align-items:start; }
.portal-reporting-layout>.portal-panel,
.portal-report-preview>.portal-panel { margin-top:0; }
.portal-reporting-create { position:sticky; top:1rem; }
.portal-reporting-form>.portal-field,
.portal-reporting-form>fieldset,
.portal-reporting-question-form>.portal-editor__actions { margin-top:1.25rem; }
.portal-reporting-form fieldset { padding:1rem; border:1px solid #d5e2e5; border-radius:.5rem; }
.portal-reporting-form legend { padding:0 .35rem; color:#334f56; font-size:.82rem; font-weight:800; }
.portal-reporting-form fieldset>p { margin:.2rem 0 1rem; color:#607277; font-size:.76rem; }
.portal-reporting-group-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.portal-reporting-group-list>label { display:flex; min-width:0; gap:.55rem; padding:.7rem; border:1px solid #dce6e8; border-radius:.42rem; align-items:flex-start; font-size:.75rem; }
.portal-reporting-group-list strong,
.portal-reporting-group-list small { display:block; overflow-wrap:anywhere; }
.portal-reporting-group-list small { margin-top:.2rem; color:#66797e; font-size:.65rem; }
.portal-reporting-question-form>.portal-panel-heading { padding:1rem 1.2rem; border:1px solid #d5e2e5; border-radius:.55rem; background:#fff; }
.portal-reporting-sections { display:grid; gap:1rem; }
.portal-report-section { margin-top:0; }
.portal-report-section>header,
.portal-report-question>header { display:flex; gap:.7rem; align-items:center; }
.portal-report-section>header>.portal-field { flex:1; margin:0; }
.portal-report-order { display:flex; gap:.2rem; }
.portal-report-order button { width:2rem; height:2rem; padding:0; border:1px solid #b9cdd1; border-radius:.3rem; background:#fff; color:#315a64; cursor:pointer; }
.portal-report-questions { display:grid; gap:.75rem; margin:1rem 0; }
.portal-report-question { padding:1rem; border:1px solid #d7e4e6; border-radius:.5rem; background:#f9fcfc; }
.portal-report-question>header strong { flex:1; color:#334f56; }
.portal-report-inline-options { display:grid; align-content:center; gap:.35rem; }
.portal-report-inline-options label { display:flex; gap:.4rem; align-items:flex-start; font-weight:650; }
.portal-report-inline-options input { width:auto; min-height:auto; margin-top:.15rem; }
.portal-report-preview-section { margin-top:1rem; padding-top:1rem; border-top:1px solid #dce6e8; }
.portal-report-preview-section>h3 { margin:.2rem 0; }
.portal-report-answer-preview { margin-top:1rem; }
.portal-report-answer-preview>small { display:block; margin:.2rem 0 .5rem; }
.portal-report-choice { display:flex; flex-wrap:wrap; gap:.55rem 1rem; margin-top:.4rem; }
.portal-report-choice label { display:flex; gap:.35rem; align-items:center; font-size:.78rem; }
.portal-report-choice input { width:auto; min-height:auto; }
.portal-report-rating { align-items:center; }
.portal-report-version-list { display:grid; gap:.8rem; }
.portal-report-version-list>article { padding:1rem; border:1px solid #dce6e8; border-radius:.5rem; }
.portal-report-version-list>article>div:first-child { display:flex; justify-content:space-between; }
.portal-report-version-list dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem; }
.portal-report-version-list dl>div { padding:.55rem; background:#f5f9f9; }
.portal-report-version-list dt { color:#63767b; font-size:.62rem; font-weight:800; text-transform:uppercase; }
.portal-report-version-list dd { margin:.2rem 0 0; font-size:.78rem; font-weight:750; }
.portal-report-version-list details { margin-top:.8rem; }
.portal-report-version-list summary { color:#176579; font-size:.75rem; font-weight:750; cursor:pointer; }
.portal-report-assignment-list { display:grid; gap:.8rem; margin-top:1rem; }
.portal-report-assignment-list>.portal-panel-heading { margin-bottom:.2rem; }
.portal-report-assignment { display:flex; gap:1rem; margin-top:0; align-items:center; justify-content:space-between; }
.portal-report-assignment h3 { margin:.2rem 0; color:#334f56; font-size:1.05rem; }
.portal-report-assignment p:last-child { margin:.2rem 0 0; color:#61757a; font-size:.75rem; }
.portal-report-assignment>div:last-child { display:flex; gap:.6rem; align-items:center; }
.portal-report-assignment form { margin:0; }
.portal-report-progress { display:grid; grid-template-columns:minmax(10rem,1fr) auto; gap:.35rem .75rem; margin:0 0 1rem; padding:.8rem 1rem; border:1px solid #d5e2e5; border-radius:.5rem; background:#fff; align-items:center; }
.portal-report-progress>div { height:.55rem; border-radius:999px; overflow:hidden; background:#dfeaed; }
.portal-report-progress>div>span { display:block; height:100%; border-radius:inherit; background:#2b8a68; }
.portal-report-progress strong { color:#315a64; }
.portal-report-progress small { grid-column:1/-1; color:#61757a; }
.portal-report-step-nav { display:flex; gap:.35rem; margin-bottom:1rem; overflow-x:auto; }
.portal-report-step-nav a { display:flex; min-width:max-content; gap:.4rem; padding:.5rem .65rem; border:1px solid #c8dadd; border-radius:.4rem; align-items:center; color:#405b62; font-size:.72rem; font-weight:750; text-decoration:none; }
.portal-report-step-nav a span { display:grid; width:1.3rem; height:1.3rem; border-radius:50%; background:#edf5f6; place-items:center; }
.portal-report-step-nav a.is-current { border-color:#2b7b8e; background:#e7f6f9; color:#175b6b; }
.portal-leader-report-form { margin-top:0; }
.portal-report-answer { margin:1rem 0 0; padding:1rem; border:1px solid #dce6e8; border-radius:.5rem; }
.portal-report-answer legend { max-width:52rem; padding:0 .3rem; color:#334f56; font-size:.82rem; font-weight:800; }
.portal-report-answer>p { margin:.15rem 0 .65rem; color:#607277; font-size:.74rem; }
.portal-report-answer>input,
.portal-report-answer>textarea { box-sizing:border-box; width:100%; max-width:54rem; padding:.65rem; border:1px solid #9eb1b6; border-radius:.4rem; font:inherit; }
.portal-report-readonly-section { padding:1rem 0; border-top:1px solid #dce6e8; }
.portal-report-readonly-section:first-of-type { border-top:0; }
.portal-report-readonly-section dl { display:grid; gap:.7rem; }
.portal-report-readonly-section dl>div { padding:.7rem; border:1px solid #e0e9eb; border-radius:.4rem; background:#fbfdfd; }
.portal-report-readonly-section dt { color:#4d6267; font-size:.72rem; font-weight:800; }
.portal-report-readonly-section dd { margin:.3rem 0 0; color:#334f56; font-size:.82rem; white-space:pre-wrap; }
.portal-reporting-stats { grid-template-columns:repeat(6,minmax(0,1fr)); }
.portal-reporting-stats strong { font-size:1.5rem; }
.portal-report-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:.65rem; margin:1rem 0; align-items:end; }
.portal-report-filters .portal-field { margin:0; }
.portal-report-table th small,
.portal-report-table td small { display:block; margin-top:.2rem; color:#66797e; font-size:.67rem; }
.portal-report-insights .portal-stat-grid { margin-bottom:1rem; }
.portal-report-trends { padding-top:1rem; border-top:1px solid #dce6e8; }
.portal-report-trends>h3 { margin:0 0 .8rem; }
.portal-report-trends>article { display:grid; grid-template-columns:minmax(10rem,1fr) minmax(0,3fr); gap:1rem; padding:.7rem 0; border-top:1px solid #e3ebec; align-items:center; }
.portal-report-trends>article>div { display:flex; gap:.4rem; overflow-x:auto; }
.portal-report-trends span { display:grid; min-width:5.6rem; padding:.5rem; border-radius:.35rem; background:#f4f9f9; text-align:center; }
.portal-report-trends small,
.portal-report-trends b { display:block; }
.portal-report-trends small { color:#61757a; font-size:.62rem; }
.portal-report-trends b { margin-top:.2rem; color:#315a64; }
.portal-report-header-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; }
.portal-pastoral-flag { border:2px solid #d49c55; background:#fffaf1; }
.portal-pastoral-flag>p { max-width:70ch; }
.portal-pastoral-flag dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem; }
.portal-pastoral-flag dl>div { padding:.6rem; border:1px solid #eadac3; border-radius:.35rem; background:#fff; }
.portal-pastoral-flag dt { color:#6a6258; font-size:.62rem; font-weight:800; text-transform:uppercase; }
.portal-pastoral-flag dd { margin:.2rem 0 0; font-size:.72rem; }
.portal-pastoral-flag form { display:flex; gap:.5rem; }
.portal-review-history { display:grid; gap:.6rem; padding:0; list-style:none; }
.portal-review-history li { padding:.7rem; border:1px solid #dce6e8; border-radius:.4rem; background:#fbfdfd; }
.portal-review-history strong,
.portal-review-history small { display:block; }
.portal-review-history small { margin-top:.15rem; color:#66797e; font-size:.67rem; }
.portal-review-history p { margin:.5rem 0 0; white-space:pre-wrap; }
.portal-review-form { margin-top:1rem; padding-top:1rem; border-top:1px solid #dce6e8; }
.portal-review-form>div:last-child { display:flex; gap:.5rem; }

.portal-team-list { margin-top:1.5rem; }
.portal-team-list>.portal-panel-heading { margin-bottom:.25rem; }
.portal-team-card { padding:1.2rem; }
.portal-team-card__heading { display:flex; gap:1rem; align-items:center; justify-content:space-between; }
.portal-team-card__heading>div { display:flex; gap:.7rem; align-items:center; }
.portal-team-card__heading h3,
.portal-team-card__heading p { margin:0; }
.portal-team-card__heading p { margin-top:.15rem; color:#66797e; font-size:.72rem; }
.portal-avatar { display:grid; width:2.25rem; height:2.25rem; border-radius:50%; background:#e7f6f9; color:#276779; place-items:center; font-weight:800; }
.portal-access-table { max-width:100%; margin:.75rem 0; overflow:auto; }
.portal-access-table .form-table { width:100%; border-collapse:collapse; }
.portal-access-table .form-table th,
.portal-access-table .form-table td { padding:.75rem; border-top:1px solid #dce6e8; vertical-align:top; text-align:left; }
.portal-access-table .form-table th { width:10rem; color:#445b61; font-size:.75rem; }
.portal-access-table fieldset { display:grid; grid-template-columns:repeat(2,minmax(11rem,1fr)); gap:.2rem .8rem; }
.portal-access-table label { font-size:.76rem; }
.portal-access-table select { min-height:2.4rem; padding:.35rem; border:1px solid #9eb1b6; border-radius:.35rem; font:inherit; }
.portal-team-invite form>small { display:block; margin-top:.55rem; color:#6b7578; }

.portal-enquiry-list { display:grid; gap:1rem; }
.portal-enquiry-card { margin-top:0; }
.portal-enquiry-card__heading { display:flex; gap:1rem; justify-content:space-between; }
.portal-enquiry-card__heading h2 { margin:.2rem 0; font-size:1.1rem; }
.portal-enquiry-card__heading p:last-child { margin:.2rem 0; color:#64767a; font-size:.75rem; }
.portal-enquiry-card pre { padding:1rem; border:1px solid #dce6e8; border-radius:.45rem; background:#f8fbfb; white-space:pre-wrap; font:inherit; font-size:.8rem; }
.portal-enquiry-status-form { display:flex; gap:.6rem; align-items:center; }
.portal-enquiry-status-form label { font-size:.78rem; font-weight:750; }
.portal-enquiry-status-form select { min-height:2.6rem; padding:.5rem; border:1px solid #9eb1b6; border-radius:.4rem; font:inherit; }
.portal-enquiry-archive-form { display:flex; flex-wrap:wrap; gap:.45rem .75rem; margin-top:.8rem; padding-top:.8rem; border-top:1px solid #dce6e8; align-items:center; }
.portal-enquiry-archive-form .portal-link-button { color:#8a3434; }
.portal-enquiry-archive-form small { color:#53676c; font-size:.7rem; }
.portal-integration-status dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; }
.portal-integration-status dl>div { padding:.8rem; border:1px solid #dce6e8; border-radius:.45rem; }
.portal-integration-status dt { color:#65777b; font-size:.67rem; font-weight:750; text-transform:uppercase; }
.portal-integration-status dd { margin:.3rem 0 0; font-size:.78rem; font-weight:750; }
.portal-integration-status form { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.portal-integration-status form small { color:#6b797c; }
.portal-elvanto-search { max-width:52rem; }
.portal-search-status { min-height:1.4rem; color:#52676c; font-size:.82rem; }
.portal-flow-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.portal-flow-steps article { padding:1rem; border:1px solid #dce6e8; border-radius:.5rem; background:#fbfdfd; }
.portal-flow-steps h3 { margin:0 0 .4rem; font-size:.95rem; }
.portal-flow-steps p { margin:.25rem 0; color:#536a70; font-size:.78rem; }
.portal-flow-steps small { color:#5f7378; }

@media (max-width:900px) {
	.scf-team-portal-page.admin-bar .scf-portal-frontend,
	.admin-bar .portal-app { min-height:calc(100vh - 46px); }
	.portal-app { grid-template-columns:minmax(0,1fr); max-width:100vw; overflow-x:hidden; }
	.portal-sidebar,
	.admin-bar .portal-sidebar { position:relative; top:auto; height:auto; min-height:0; overflow:visible; }
	.portal-sidebar nav { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.portal-sidebar__footer { display:flex; gap:1rem; align-items:center; justify-content:space-between; }
	.portal-profile { display:flex; margin:.7rem 0 0; border-top:0; }
	.portal-signout { position:static; margin-top:.7rem; }
	.portal-nav-more { margin:0; padding:0; border-top:0; }
	.portal-nav-submenu { margin-left:0; }
	.portal-integration-status dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.portal-flow-steps { grid-template-columns:1fr; }
	.portal-life-groups-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.portal-life-groups-bulk { align-items:flex-start; }
	.portal-stat-grid--six { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.portal-add-life-group { grid-template-columns:1fr; }
	.portal-add-life-group__actions { justify-content:flex-start; }
	.portal-add-life-group>small { grid-column:1; }
	.portal-membership-confirm { grid-template-columns:1fr; }
	.portal-request-card>dl { grid-template-columns:1fr; }
	.portal-request-review { grid-template-columns:1fr; }
	.portal-reporting-layout,
	.portal-report-preview { grid-template-columns:1fr; }
	.portal-reporting-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
	.portal-report-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.portal-pastoral-flag dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.portal-reporting-create { position:static; }
}

@media (max-width:640px) {
	html:has(body.scf-team-portal-page),
	body.scf-team-portal-page { width:100%; max-width:100vw; overflow-x:hidden !important; }
	body.scf-team-portal-page { position:relative; }
	.scf-team-portal-page #wpadminbar { position:fixed; top:0; width:100%; min-width:0; max-width:100vw; height:46px; overflow:hidden; white-space:nowrap; }
	.portal-sidebar { padding:.85rem; }
	.portal-brand { grid-template-columns:minmax(8rem,10rem) 1fr; }
	.portal-sidebar nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:none; margin-top:.7rem; overflow:visible; padding-bottom:.3rem; }
	.portal-sidebar nav>a,
	.portal-nav-disabled,
	.portal-nav-more>summary { min-width:0; white-space:normal; }
	.portal-nav-more { display:block; grid-column:1 / -1; }
	.portal-nav-more[open] { display:block; }
	.portal-nav-submenu { display:grid; grid-template-columns:1fr; width:100%; margin:.25rem 0 0; }
	.portal-sidebar__footer { display:none; }
	.portal-workspace { max-width:100vw; min-width:0; padding:1rem; }
	.portal-panel,
	.portal-table-wrap { box-sizing:border-box; width:100%; min-width:0; max-width:100%; }
	.portal-table-wrap { contain:inline-size; overflow-x:auto; }
	.portal-table--life-groups { display:block; width:100%; min-width:0; }
	.portal-table--life-groups thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
	.portal-table--life-groups tbody { display:block; width:100%; }
	.portal-table--life-groups tbody tr { display:grid; grid-template-columns:1fr 1fr; width:100%; padding:.8rem 0; border-top:1px solid #dce6e8; }
	.portal-table--life-groups tbody th,
	.portal-table--life-groups tbody td { display:block; min-width:0; padding:.5rem .65rem; border-top:0; overflow-wrap:anywhere; }
	.portal-table--life-groups tbody th { grid-column:1/-1; }
	.portal-table--life-groups tbody td:last-child { grid-column:1/-1; }
	.portal-heading { gap:1rem; }
	.portal-heading h1 { font-size:2rem; }
	.portal-module-grid,
	.portal-stat-grid,
	.portal-stat-grid--four { grid-template-columns:1fr 1fr; }
	.portal-life-group-dashboard-stats { grid-template-columns:1fr; }
	.portal-quick-actions>div:last-child { grid-template-columns:1fr; }
	.portal-module-grid article { min-height:auto; }
	.portal-change-request { grid-template-columns:1fr; }
	.portal-change-request label { grid-column:auto; }
	.portal-section-tabs { width:100%; box-sizing:border-box; }
	.portal-section-tabs a { flex:1; text-align:center; }
	.portal-enquiry-summary,
	.portal-team-card__heading,
	.portal-enquiry-card__heading { align-items:stretch; flex-direction:column; }
	.portal-access-table .form-table { min-width:38rem; }
	.portal-integration-status dl { grid-template-columns:1fr; }
	.portal-enquiry-status-form { align-items:stretch; flex-direction:column; }
	.portal-life-groups-filters { grid-template-columns:1fr; }
	.portal-stat-grid--six { grid-template-columns:1fr; }
	.portal-classification-form { align-items:stretch; flex-direction:column; }
	.portal-life-groups-bulk { align-items:stretch; flex-direction:column; }
	.portal-life-groups-bulk>label:not(.portal-checkbox) { align-items:stretch; flex-direction:column; }
	.portal-detail-list { grid-template-columns:1fr; }
	.portal-reporting-access-list form { align-items:stretch; flex-direction:column; }
	.portal-request-card>header { flex-direction:column; }
	.portal-request-review>div:last-child { align-items:stretch; flex-direction:column; }
	.portal-reporting-tabs { overflow-x:auto; }
	.portal-reporting-tabs a { flex:0 0 auto; }
	.portal-reporting-group-list,
	.portal-report-version-list dl { grid-template-columns:1fr; }
	.portal-report-section>header { align-items:stretch; flex-wrap:wrap; }
	.portal-report-section>header>.portal-field { flex-basis:100%; order:-1; }
	.portal-report-assignment,
	.portal-report-assignment>div:last-child { align-items:stretch; flex-direction:column; }
	.portal-reporting-stats,
	.portal-report-filters,
	.portal-pastoral-flag dl { grid-template-columns:1fr; }
	.portal-report-trends>article { grid-template-columns:1fr; }
	.portal-report-header-actions,
	.portal-pastoral-flag form,
	.portal-review-form>div:last-child { align-items:stretch; flex-direction:column; }
}

@media print {
	.scf-portal-frontend .portal-sidebar,
	.portal-no-print,
	.portal-staff-report+.portal-admin-link { display:none !important; }
	.scf-portal-frontend,
	.scf-portal-frontend .portal-app,
	.scf-portal-frontend .portal-workspace { display:block; min-height:0; max-width:none; padding:0; background:#fff; }
	.portal-staff-report .portal-panel,
	.portal-staff-report .portal-boundary { break-inside:avoid; box-shadow:none; }
	.portal-staff-report .portal-heading h1 { font-size:1.8rem; }
}
