/* SIPC portal components. Reference: Legacy Lane couple-portal/css/{tokens,design-system,mobile}.css
   and staff-portal/css/styles.css, shared UI pass. All surfaces use tokens.css.
   Layout Studio has its own compact canvas controls in editor-portal.css. */
body { font-size: var(--t-md); }
:where(button,a,input,select,textarea,summary) { -webkit-tap-highlight-color: transparent; }
:where(button,.button,input,select,textarea) { transition: background-color var(--dur), border-color var(--dur), box-shadow var(--dur); }
:where(button,.button) { font-weight:600; }
:where(button,.button):disabled { cursor:not-allowed; }
:where(input,select,textarea) { accent-color:var(--brand); }
:where(input,select,textarea):not([type=checkbox]):not([type=radio]) { border-color:var(--rule-strong); background:var(--surface); }
:where(input,select,textarea):focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
:where(button,.button):not(.primary):hover { border-color:var(--brand); }
:where(.lede,.lead,.prose,.help,.hint,.empty) { max-width:72ch; }
:where(.card,.panel,.state-panel,.login-card) { box-shadow:none; }
:where(.card,.panel,.heading,.page-heading,.two-fields,.account-grid,.user-cards) > * { min-width:0; }
:where(h1,h2,h3,p,dd,.help,.hint,.empty,.form-error,.account-feedback) { overflow-wrap:break-word; }
:where(.eyebrow) { font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
:where(.heading,.page-heading,.designer-heading) h1,
.sign-in-app h1 { font-family:var(--f-display); font-weight:600; font-size:clamp(1.875rem,2.5vw,2.375rem); line-height:1.15; letter-spacing:-.015em; }
:where(.card,.panel) h2 { font-size:1.125rem; line-height:1.4; font-weight:700; }
.portal-icon { width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* One frame across church pages and ministry tools. The desktop navigation is
   a persistent rail, following the portals; tablets retain the full top row. */
.global-bar { background:var(--surface); }
.global-inner { max-width:none; min-height:64px; padding:0 var(--page-gutter); gap:20px; }
.global-brand { gap:16px; }
.global-brand-title { display:flex; flex-direction:column; border-left:1px solid var(--rule); padding-left:16px; }
.global-brand-title strong { font:600 1.5rem/1.15 var(--f-display); color:var(--ink); }
.global-brand-title small { font-size:.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.global-nav { gap:4px; align-items:center; }
.global-nav a { gap:10px; min-height:44px; margin:0; border:0; border-radius:var(--r-md); padding:10px 12px; font-size:.875rem; }
.global-nav a { --nav-ink:var(--brand); --nav-soft:var(--sel-soft); }
.global-nav a[data-section=events] { --nav-ink:var(--nav-calendar); --nav-soft:var(--nav-calendar-soft); }
.global-nav a[data-section=archive] { --nav-ink:var(--nav-library); --nav-soft:var(--nav-library-soft); }
.global-nav a[data-section=members] { --nav-ink:var(--nav-people); --nav-soft:var(--nav-people-soft); }
.global-nav a .portal-icon { color:var(--nav-ink); }
.global-nav a:hover { background:var(--surface-2); color:var(--ink); }
.global-nav a[aria-current=page] { background:var(--sel-soft); color:var(--brand); box-shadow:inset 3px 0 var(--brand); }
.global-profile { text-decoration:none; font-weight:600; border-radius:var(--r-md); padding:0 8px; }
.global-profile:hover { background:var(--sel-soft); color:var(--brand); }
.global-signout { min-height:44px; border-color:var(--rule); }
.global-role { font-size:.75rem; max-width:180px; }
.church-app main { max-width:none; padding:var(--page-block) var(--page-gutter) 40px; }
.church-app .site-footer { max-width:none; margin-inline:var(--page-gutter); padding-inline:0; }
.ministry-app { --shell-pad:var(--page-gutter); }
.ministry-app main,.ministry-app.calendar-active main,.ministry-app.designer-active main { max-width:none; padding:0 var(--page-gutter) 40px; }
.ministry-app>.sidebar { padding:8px var(--page-gutter); background:var(--surface); gap:8px 16px; }
.ministry-app .sidebar .nav.active { color:var(--brand); background:var(--sel-soft); box-shadow:none; }
.ministry-app .sidebar .nav,.ministry-app .sidebar-note .text-button { min-height:44px; font-size:.875rem; }
.ministry-app .sidebar-note { margin-left:auto; }

@media(min-width:1200px) {
  .global-bar { position:relative; z-index:20; margin:0; border:0; border-bottom:1px solid var(--rule); border-radius:0; box-shadow:none; }
  .global-inner { min-height:64px; padding-inline:var(--page-gutter); }
  .global-nav { position:fixed; top:84px; max-height:calc(100dvh - 104px); left:16px; width:var(--rail-width); display:flex; flex-direction:column; align-items:stretch; gap:4px; padding:4px; overflow:auto; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .global-nav::before { content:'Church hub'; padding:8px 12px; font-size:.6875rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
  .global-nav a { flex:none; white-space:normal; min-height:44px; }
  .global-nav .label-long { display:inline; }
  .global-nav .label-short { display:none; }
  .global-nav a .portal-icon { box-sizing:border-box; padding:0; border-radius:0; background:transparent; width:20px; height:20px; }
  .global-account { margin-left:auto; }
  .church-app main,.ministry-app main,.ministry-app.calendar-active main,.ministry-app.designer-active main { margin-left:calc(var(--rail-width) + 32px); margin-right:0; }
  .church-app .site-footer { margin-left:calc(var(--rail-width) + 32px + var(--page-gutter)); }
  .ministry-app>.sidebar { margin-left:calc(var(--rail-width) + 32px); }
}
@media(min-width:761px) and (max-width:1199px) {
  .global-inner { flex-wrap:wrap; gap:0 20px; }
  .global-account { margin-left:auto; }
  .global-nav { order:3; flex-basis:100%; padding:8px 0; border-top:1px solid var(--rule); }
  .global-nav a { flex:1; justify-content:center; padding:10px 8px; }
  .global-brand-title { display:flex; }
}

/* Congregation pages: more space for actual content, a readable main column,
   compact date tiles, quiet sections, and one clear primary action. */
.church-app .heading { margin-bottom:var(--section-gap); align-items:center; }
.church-app .lede { font-size:.96875rem; line-height:1.7; }
.church-app .columns { grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); gap:var(--section-gap); }
.church-app .columns.even { grid-template-columns:repeat(2,minmax(0,1fr)); }
.church-app .card { padding:var(--panel-pad); border-radius:var(--r-lg); }
.church-app .card:not(.hero)>h2:first-child { padding-bottom:0; margin-bottom:16px; border-bottom:0; }
.church-app .hero { background:var(--surface); border-top:1px solid var(--rule); border-left:4px solid var(--brand); padding:var(--panel-pad); }
.church-app .hero h2 { font:600 clamp(1.75rem,2.4vw,2.5rem)/1.15 var(--f-display); max-width:28ch; }
.church-app .hero-ref { color:var(--brand); font-size:1.0625rem; }
.church-app .service-meta { gap:12px 28px; padding:12px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.church-app .service-meta dt { font-size:.6875rem; letter-spacing:.09em; }
.church-app .service-meta dd { font-size:.9375rem; }
.church-app .prep-banner { border-left-width:3px; box-shadow:none; }
.church-app .prep-banner h2 { font-size:1.0625rem; }
.church-app .event-date { background:var(--sel-soft); color:var(--brand); padding:10px 4px; border-radius:var(--r-md); }
.church-app .event-date strong { color:var(--brand); font-size:1.625rem; }
.church-app .event-row h3 { font-size:.9375rem; }
.church-app .archive-row h2 { font-size:1.125rem; }
.church-app .archive-row p,.church-app .event-row p { font-size:.875rem; }
.church-app .event-row h3 a,.church-app .archive-row h2 a { text-decoration:none; color:var(--ink); }
.church-app .event-row:hover h3 a,.church-app .archive-row:hover h2 a { color:var(--brand); }
.church-app .calendar { box-shadow:none; }
.church-app .calendar-day { min-height:104px; }
.church-app .calendar-heading { background:var(--surface-2); font-size:.6875rem; }
.church-app .chip-event { background:var(--sel-soft); padding-block:6px; }
.church-app .kind-birthday { --cat:var(--gold); }
.church-app .kind-event { --cat:var(--ok); }
.church-app .tool-group { --tool-color:var(--brand); --tool-soft:var(--sel-soft); }
.church-app .tools-settings { --tool-color:var(--muted); --tool-soft:var(--surface-2); }
.church-app .tools-grid { grid-template-columns:repeat(auto-fit,minmax(min(350px,100%),1fr)); gap:16px; }
.church-app .tools-building .tools-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.church-app .tool-card { border-radius:var(--r-lg); box-shadow:none; }
.church-app .tool-card:hover { border-color:var(--brand); box-shadow:var(--shadow-2); transform:none; }
.church-app .tool-card { grid-template-columns:46px minmax(0,1fr) 20px; grid-template-rows:auto; gap:16px; align-items:start; padding:var(--panel-pad); }
.church-app .tool-copy { grid-column:2; grid-row:1; }
.church-app .tool-arrow { grid-column:3; grid-row:1; align-self:start; padding-top:12px; }
.church-app .tool-card h3 { margin-bottom:6px; }
.church-app form.card>.dialog-actions { position:static; margin:var(--section-gap) 0 0; padding:16px 0 0; background:transparent; border-top:1px solid var(--rule); border-radius:0 0 var(--r-lg) var(--r-lg); }
.church-app .account-grid.onboarding { grid-template-columns:minmax(0,640px); }
.church-app .account-grid .service-meta { border-top:0; padding-top:0; }
.church-app .field { margin-bottom:var(--field-gap); }
.church-app .account-grid,.church-app .stack { gap:var(--section-gap); }
.church-app .tool-group { margin-bottom:var(--section-gap); }
.church-app .directory-contact { display:flex; flex-direction:row; flex-wrap:wrap; gap:0 16px; }
.church-app .directory-contact a { max-width:100%; overflow-wrap:anywhere; }
.church-app .account-pin-control { position:relative; }
.church-app .account-pin-control input { padding-right:76px; }
.church-app .account-pin-control button { position:absolute; inset:1px 1px 1px auto; min-height:42px; padding:6px 12px; border:0; background:transparent; font-size:.8125rem; }
.church-app .account-feedback[data-state=error] { color:var(--crit); border-left:3px solid currentColor; padding:10px 12px; background:var(--crit-soft); }
.church-app .account-feedback[data-state=success] { color:var(--ink); border-left:3px solid var(--ok); padding:10px 12px; background:var(--surface-2); }
.directory-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:8px 20px; margin-bottom:var(--section-gap); }
.directory-toolbar .field { flex:1 1 260px; max-width:560px; margin:0; }
.directory-toolbar nav { display:flex; flex-wrap:wrap; gap:8px 20px; }
.directory-toolbar nav a { display:inline-flex; align-items:center; min-height:44px; }
.directory-search-row { display:flex; gap:8px; }
.directory-search-row input { min-width:0; }
.directory-search-status { flex-basis:100%; color:var(--muted); margin:0; font-size:.875rem; }
.directory-children,.directory-leadership { scroll-margin-top:24px; }
.church-app .event-detail { max-width:960px; }
.church-app .event-detail .prose { max-width:70ch; }
.church-app .narrow { max-width:800px; }
.church-app .empty { max-width:none; padding:16px; background:var(--surface-2); border:0; font-size:.9375rem; line-height:1.7; }
.church-app .state-panel { padding:24px; box-shadow:none; }
.church-app .state-panel h1 { font:600 2rem/1.2 var(--f-display); }
.church-app .loading-state { padding:24px; min-height:120px; justify-content:center; background:var(--surface); border:1px solid var(--rule); border-radius:var(--r-lg); }
.church-app .directory-table td,.church-app .directory-table th { overflow-wrap:anywhere; }
.church-app .directory-members .directory-table tbody tr:hover { background:var(--surface-2); }
.church-app .directory-leaders p { max-width:56ch; }
.church-app .directory-contact a { min-height:44px; }
.church-app .role-guide { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); }
.church-app .user-cards { grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr)); }

/* Archive filters stay in reach while service cards use the available width. */
.church-app .archive-layout { display:grid; grid-template-columns:224px minmax(0,1fr); gap:var(--section-gap); align-items:start; }
.church-app .archive-search { position:sticky; top:24px; padding:20px; margin:0; }
.church-app .archive-search .search-row { flex-direction:column; align-items:stretch; }
.church-app .archive-search .filters { grid-template-columns:1fr; gap:12px; }
.church-app .archive-search .field { min-width:0; }
.church-app .archive-search label { font-size:.8125rem; }
.church-app .archive-results { min-width:0; }
.church-app .archive-results .results-bar { margin:0 0 16px; min-height:32px; }
.church-app .archive-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr)); gap:16px; }
.church-app .archive-grid .archive-row { grid-template-columns:56px minmax(0,1fr) 16px; align-items:start; gap:12px; padding:16px; border:1px solid var(--rule); border-radius:var(--r-lg); background:var(--surface); box-shadow:var(--shadow-1); transition:border-color var(--dur),box-shadow var(--dur); }
.church-app .archive-grid .archive-row:hover { border-color:var(--brand); box-shadow:var(--shadow-2); }
.church-app .archive-grid .archive-row:focus-within { outline:2px solid var(--brand); outline-offset:3px; }
.church-app .archive-copy { min-width:0; overflow-wrap:anywhere; }
.church-app .archive-grid h2 { font-size:1.0625rem; line-height:1.45; margin-bottom:8px; }
.church-app .archive-grid .event-date { width:auto; }
.church-app .archive-grid p { line-height:1.6; }
.church-app .archive-grid .archive-series { margin-top:8px; }
.church-app .archive-grid .tags { margin:14px 0 0; gap:6px; }
.church-app .archive-grid .tags:empty { display:none; }
.church-app .archive-grid .tag { background:var(--surface-2); border-color:var(--rule); color:var(--muted); }
.church-app .archive-arrow { color:var(--brand); font-size:1.125rem; line-height:1.5; }
.church-app .archive-grid>.empty { grid-column:1/-1; }
.church-app .archive-results .pagination { border-top:1px solid var(--rule); padding-top:20px; font-size:.875rem; }

/* Shared forms and overlays retain native dialog semantics and existing focus handling. */
.church-app dialog,.ministry-app dialog { border-radius:var(--r-panel); max-height:calc(100dvh - 32px); box-shadow:var(--shadow-3); }
.church-app .dialog-heading h2,.ministry-app dialog:not(#document-reader) h2 { font:600 1.75rem/1.2 var(--f-display); }
.church-app .dialog-heading { padding-bottom:16px; border-bottom:1px solid var(--rule); }
.church-app .dialog-actions { padding-top:16px; padding-bottom:16px; }
.church-app .status-pill,.church-app .tag { font-size:.75rem; }

/* Ministry planner, service details, designer, music and document libraries. */
.ministry-app .page-heading { padding-block:var(--page-block) var(--section-gap); }
.ministry-app .panel { border-radius:var(--r-lg); padding:var(--panel-pad); }
.ministry-app .designer-workspace { grid-template-columns:minmax(0,1fr) minmax(260px,300px); }
.ministry-app .designer-steps { border:0; border-bottom:1px solid var(--rule); border-radius:0; background:transparent; padding:0 0 8px; gap:4px; }
.ministry-app .designer-steps button { border:0; margin:0; border-radius:var(--r-md); }
.ministry-app .designer-steps button.active { background:var(--sel-soft); color:var(--brand); }
.ministry-app .designer-steps button.active>span { background:var(--brand); border-color:var(--brand); }
.ministry-app .designer-steps button small { font-size:.75rem; }
.ministry-app .collection-tabs a { border-radius:var(--r-md); }
.ministry-app #resources>.page-heading { padding-bottom:16px; }
.ministry-app #songs>.page-heading { padding-block:20px 16px; }
.ministry-app .resource-layout { grid-template-columns:minmax(240px,320px) minmax(0,1fr); gap:var(--section-gap); }
.ministry-app .library { grid-template-columns:minmax(240px,320px) minmax(0,1fr); gap:var(--section-gap); }
.ministry-app .resource-empty { min-height:160px; color:var(--muted); line-height:1.7; }
.ministry-app .table-scroll { border-radius:var(--r-lg); background:var(--surface); }
.ministry-app .settings-panel { max-width:960px; }
.ministry-app .button-row { flex-wrap:wrap; }
.ministry-app #reload-saved { max-width:100%; white-space:normal; overflow-wrap:break-word; }

/* Sign-in uses the reference portal's paired welcome and form panels. */
.sign-in-app { display:grid; place-items:center; background:var(--bg); }
.sign-in-app .welcome { width:calc(100% - 64px); max-width:960px; min-height:0; margin:24px auto; padding:0; gap:0; align-items:stretch; border:1px solid var(--rule); border-radius:var(--r-panel); background:var(--surface); box-shadow:var(--shadow-2); overflow:hidden; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.sign-in-app .welcome-intro { padding:32px; background:var(--sel-soft); display:flex; flex-direction:column; justify-content:center; gap:24px; }
.sign-in-app .welcome .intro { padding-top:0; padding-bottom:0; }
.sign-in-app .welcome h1 { font-size:clamp(2.25rem,3.5vw,3.5rem); letter-spacing:-.02em; }
.sign-in-app .welcome-access { padding:32px; }
.sign-in-app .login-card { padding:0; border:0; border-radius:0; box-shadow:none; }
.sign-in-app .login-help { border-top:1px solid var(--rule); padding-top:8px; font-size:.8125rem; }
.sign-in-app select { width:100%; min-height:48px; padding:10px 12px; font:inherit; border:1px solid var(--rule-strong); border-radius:var(--r-md); color:var(--ink); }
.sign-in-app .reveal { min-height:44px; top:2px; right:4px; }
.sign-in-app .wordmark strong { font:600 1.75rem/1.2 var(--f-display); }
.sign-in-app .login-help summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--brand); font-weight:600; }
.sign-in-app .login-help summary::after { content:'+'; margin-left:auto; }
.sign-in-app .login-help[open] summary::after { content:'−'; }
.sign-in-app .login-help p { margin:4px 0 0; max-width:48ch; }
.sign-in-app .form-field { margin-bottom:var(--field-gap); }
.sign-in-app .theme-toolbar { margin-bottom:12px; }
.sign-in-app #error:empty { display:none; }
.sign-in-app .login-help { margin-top:16px; }

@media(max-width:1000px) {
  .ministry-app .resource-layout,.ministry-app .library { grid-template-columns:240px minmax(0,1fr); }
  .church-app .archive-layout { grid-template-columns:1fr; gap:20px; }
  .church-app .archive-search { position:static; }
  .church-app .archive-search .search-row { flex-direction:row; align-items:flex-end; }
  .church-app .archive-search .filters { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .church-app .columns,.church-app .columns.even { grid-template-columns:1fr; }
  .ministry-app .designer-workspace { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ministry-app .designer-rail { position:static; }
  .ministry-app.designer-review-active .designer-workspace { display:flex; flex-direction:column; }
  .ministry-app.designer-review-active .designer-rail { order:-1; display:block; width:100%; }
  .ministry-app.designer-review-active .designer-main { width:100%; }
  .ministry-app.designer-review-active .utility-card { display:none; }
  .sign-in-app .welcome-intro,.sign-in-app .welcome-access { padding:32px; }
}
@media(max-width:760px) {
  .church-app .archive-search .search-row { flex-direction:column; align-items:stretch; }
  .church-app .archive-search .filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .church-app .archive-grid { grid-template-columns:1fr; }
  .church-app .archive-results .results-bar { flex-direction:column; align-items:flex-start; gap:8px; }
  .church-app .archive-results .results-bar p { margin:0; }
  .church-app .archive-grid .archive-row { grid-template-columns:48px minmax(0,1fr) 12px; gap:12px; padding:16px; box-shadow:none; }
  body { --page-gutter:16px; --panel-pad:16px; --section-gap:16px; --page-block:16px; --t-xs:.75rem; --t-sm:.8125rem; --t-base:.9375rem; --t-md:.9375rem; }
  .global-inner { min-height:0; padding:0 12px; gap:0; }
  .global-brand { min-height:56px; }
  .global-brand-title { display:none; }
  .global-account { gap:4px; }
  .global-profile { font-size:.75rem; padding:0 6px; }
  .global-signout { font-size:.75rem; padding:6px 8px; }
  .global-nav { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); width:100%; margin:0; padding:6px 0; gap:2px; align-items:stretch; overflow:visible; border-top:1px solid var(--rule); }
  .global-nav a { min-width:0; flex-direction:column; gap:4px; min-height:52px; padding:5px 2px; font-size:.75rem; line-height:1.3; text-align:center; white-space:normal; overflow-wrap:anywhere; }
  .global-nav a[aria-current=page] { box-shadow:inset 0 -2px var(--brand); }
  .global-nav .portal-icon { width:18px; height:18px; }
  .global-nav .label-short { display:inline; }
  .global-nav .label-long { display:none; }
  .church-app main { padding-top:var(--page-block); }
  .church-app .heading { align-items:stretch; }
  :where(.heading,.page-heading,.designer-heading) h1 { font-size:1.875rem; }
  .church-app .card { padding:var(--panel-pad); box-shadow:none; }
  .church-app .tool-card { padding:18px 16px; gap:12px; }
  .church-app form.card>.dialog-actions { margin:16px 0 0; padding:12px 0 0; }
  .church-app :where(input,select,textarea):not([type=checkbox]):not([type=radio]) { font-size:1rem; }
  .church-app .hero { padding:var(--panel-pad); }
  .church-app .columns { gap:16px; }
  .church-app .stack { gap:16px; }
  .church-app .calendar-day { min-height:64px; }
  .church-app .tool-card { box-shadow:none; }
  .church-app .tools-building .tools-grid { grid-template-columns:1fr; }
  .church-app .prep-banner { padding:16px; }
  .church-app .directory-layout { grid-template-columns:1fr; gap:16px; }
  .church-app .directory-families { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:16px; }
  .church-app .account-grid,.church-app .user-cards,.church-app .role-guide { grid-template-columns:1fr; }
  .church-app dialog,.ministry-app dialog { max-width:calc(100vw - 16px); width:calc(100% - 16px); max-height:calc(100dvh - 16px); padding:20px 16px; border-radius:var(--r-lg); }
  .church-app .dialog-actions { bottom:-20px; margin-inline:-16px; padding-inline:16px; gap:8px; }
  .church-app .dialog-actions button { flex:1 1 auto; white-space:normal; }
  .church-app .state-panel { padding:20px; }
  .ministry-app>.sidebar { padding:6px 12px; gap:0; flex-wrap:nowrap; overflow-x:auto; }
  .ministry-app .sidebar .nav,.ministry-app .sidebar-note .text-button { white-space:nowrap; font-size:.8125rem; padding:8px; }
  .ministry-app .sidebar-note { margin-left:0; flex:none; }
  .ministry-app .sidebar nav { flex:none; }
  .ministry-app .designer-workspace,.ministry-app .resource-layout,.ministry-app .library { grid-template-columns:1fr; }
  .ministry-app .panel { padding:16px; box-shadow:none; }
  .ministry-app .page-heading { padding-block:var(--page-block) var(--section-gap); }
  .ministry-app .page-heading,.ministry-app .designer-heading { flex-wrap:wrap; }
  .ministry-app .page-heading>div:last-child:not(:first-child) { flex:1 1 100%; }
  .ministry-app .designer-steps { padding:4px; gap:2px; }
  .ministry-app .designer-steps button { padding:10px 6px; gap:6px; }
  .ministry-app :where(input,select,textarea):not([type=checkbox]):not([type=radio]) { font-size:1rem; min-height:48px; }
  .ministry-app :where(button,summary,.text-button) { min-height:44px; }
  .sign-in-app .welcome { width:100%; grid-template-columns:1fr; grid-template-rows:auto 1fr; margin:0; min-height:100svh; border:0; border-radius:0; box-shadow:none; }
  .sign-in-app .welcome-intro { padding:20px 24px 16px; gap:12px; }
  .sign-in-app .welcome .brand { flex-direction:row; align-items:center; gap:16px; }
  .sign-in-app .welcome .brand .church-logo { width:140px; }
  .sign-in-app .wordmark strong { font-size:1.25rem; }
  .sign-in-app .welcome .intro { padding-bottom:0; margin-bottom:0; }
  .sign-in-app .welcome-access { padding:20px 24px; }
  .sign-in-app .welcome h1 { font-size:2rem; margin-block:0; }
  .sign-in-app .welcome .lead { font-size:.9375rem; }
}
@media(max-height:760px) { .church-app .archive-search,.ministry-app .designer-rail { position:static; } }
@media(max-height:600px) and (min-width:761px) { .sign-in-app .welcome { margin-block:16px; } .sign-in-app .welcome-access,.sign-in-app .welcome-intro { padding:24px; } }
@media(min-width:1600px) { .church-app .tools-prepare .tools-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print { .global-nav { display:none!important; } .church-app main,.ministry-app main,.ministry-app.calendar-active main,.ministry-app.designer-active main { margin:0!important; padding:0!important; } .church-app .archive-layout { display:block; } .church-app .archive-search { display:none; } .church-app .archive-row { break-inside:avoid; } }
