/* Compact workspaces keep records and decisions ahead of decoration. */
body .faith-public-header { position:fixed; inset:0 0 auto; width:100%; z-index:40; }
body:has(.faith-public-header) { padding-top:76px; }
body .studio-shell .faith-topbar { position:sticky; top:0; z-index:40; }
body .faith-public-header .faith-brand strong { font-size:20px!important; font-weight:650; }
body .faith-public-header .faith-brand small { font-size:13px!important; line-height:1.4!important; letter-spacing:0!important; }
body .faith-public-header nav > a { font-size:13px!important; color:#344054; }
body .public-footer-refined { display:grid!important; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.1fr); gap:24px!important; background:#eeeaf7!important; padding:28px max(24px,calc((100vw - 1200px)/2))!important; }
body .public-footer-refined h2 { font:600 16px/1.4 sans-serif; color:#344054; margin:0 0 8px; }
body .public-footer-refined .faith-brand { display:grid!important; grid-template-columns:44px minmax(0,1fr) 44px!important; width:100%; max-width:420px!important; gap:10px!important; }
body .public-footer-refined .faith-brand small { display:block; max-width:none!important; white-space:normal!important; line-height:1.45!important; overflow-wrap:normal; }
body .public-footer-refined nav { display:grid; gap:2px; align-content:start; }
body .public-footer-refined :is(nav a,.public-footer-contact a) { display:flex; align-items:center; min-height:36px; font-size:13px; color:#57358e; text-decoration:none; overflow-wrap:anywhere; }
body .public-footer-refined a:hover { text-decoration:underline; text-underline-offset:3px; }
body .public-footer-refined .public-footer-identity > p,
body .public-footer-refined .public-footer-contact p { font-size:13px; line-height:1.6; color:#526176; margin:10px 0; max-width:360px; }
body .public-footer-refined .public-footer-copyright { grid-column:1/-1; font-size:12px; color:#667085; padding-top:14px; border-color:#d8d0e6; }
@media(max-width:760px) {
 body .faith-public-header .faith-brand strong { font-size:18px!important; }
 body .faith-public-header .faith-brand small { font-size:11px!important; }
 body .public-footer-refined { grid-template-columns:1fr 1fr; padding:24px 20px!important; gap:20px!important; }
 body .public-footer-refined .public-footer-identity { grid-column:1/-1; }
 body .public-footer-refined :is(nav a,.public-footer-contact a) { min-height:44px; }
}
@media(max-width:420px) { body .public-footer-refined { grid-template-columns:1fr; } }
body .studio-signin { min-height:calc(100dvh - 108px - env(safe-area-inset-bottom,0px)); display:flex; flex-direction:column; }
@media(pointer:coarse) {
 body .studio-signin { min-height:calc(100dvh - 120px - env(safe-area-inset-bottom,0px)); }
}
body .studio-signin .studio-auth-layout { width:100%; max-width:920px; margin:auto; padding:16px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
body .studio-signin .faith-auth-card { padding:24px!important; }
body .studio-signin .studio-signin-symbol { display:none; }
body .studio-signin .faith-auth-card h1 { font-size:24px!important; margin:6px 0!important; }
body .studio-signin .faith-auth-intro { margin-bottom:16px; }
body .studio-signin .faith-auth-fields { gap:12px; }
body .studio-signin .faith-auth-join { margin-top:16px; padding-top:12px; }
body .studio-signin .faith-auth-join a { min-height:44px; padding:8px; }
body .studio-signin .faith-auth-home { margin-top:10px; }
body .studio-signin .studio-signin-story-copy { padding:24px; }
body .studio-signin .studio-auth-story h2 { font-size:30px; }
body .studio-signin .studio-signin-story-bottom { display:none; }
body .studio-signin .studio-auth-story > img { flex:1 1 0; min-height:180px; height:200px; max-height:400px; }
body .studio-signin .faith-auth-demo { margin-top:8px; }
body .studio-landing .studio-home-hero { padding-block:36px; gap:32px; }
body .studio-landing .studio-home-picture { height:360px; }
body .studio-landing .studio-home-copy h1 { font-size:clamp(32px,4vw,48px); line-height:1.12; }
@media(max-width:760px) {
 body .studio-signin .studio-auth-layout { display:block; max-width:460px; padding:12px 16px; }
 body .studio-signin .studio-auth-story { display:none!important; }
 body .studio-signin .faith-auth-card { border:1px solid #dfd6eb!important; border-radius:16px!important; padding:20px!important; }
 body .studio-signin .faith-auth-card h1 { font-size:22px!important; }
 body .studio-signin .faith-auth-intro p { font-size:13px; }
 body .studio-landing .studio-home-hero { padding:24px 20px; gap:20px; }
 body .studio-landing .studio-home-picture { height:220px; }
}
body :is(.faith-public,.studio-shell,.faith-admissions,.studio-signin) {
    font-family: sans-serif;
}
body :is(.faith-public,.studio-shell,.faith-admissions,.studio-signin) :is(button,input,select,textarea) { font-family:inherit; }
body :is(.faith-public,.faith-admissions,.studio-signin) :is(h1,h2,h3,h4) { font-family: sans-serif !important; font-weight:600!important; }
body .studio-shell .faith-main :is(h1,h2,h3,h4) { font-family:inherit; font-weight:600!important; letter-spacing:-.015em; }
body .studio-shell .faith-main :is(p,dd) { font-weight:400; }
body .studio-shell .faith-main :is(label,dt,.fi-btn) { font-weight:500!important; }
body .studio-shell .faith-main :is(.fi-btn,.fi-tabs-item) { min-height:36px; border-radius:8px; }
body .studio-shell .msoc-user-status-card { --status-color:#7138d4; background:var(--status-color)!important; color:#fff!important; border-color:transparent!important; box-shadow:none!important; }
body .studio-shell .msoc-user-status-card.is-blue { --status-color:#1760d5; }
body .studio-shell .msoc-user-status-card.is-amber { --status-color:#b45309; }
body .studio-shell .msoc-user-status-card.is-indigo { --status-color:#7138d4; }
body .studio-shell .msoc-user-status-card.is-green { --status-color:#07805b; }
body .studio-shell .msoc-user-status-card.is-red { --status-color:#d12d55; }
body .studio-shell .msoc-user-status-card :is(strong,span,svg) { color:#fff!important; }
body .studio-shell .msoc-user-status-card.is-active { outline:2px solid var(--status-color); outline-offset:2px; }
body .studio-shell .msoc-user-status-card:focus-visible { outline:2px solid #243249; outline-offset:3px; }
@media(max-width:760px) {
    body .studio-shell .faith-main :is(.fi-btn,.fi-tabs-item) { min-height:44px; }
    body :is(.faith-admissions,.studio-signin) :is(input,select,textarea) { font-size:16px; }
}
body .studio-shell .faith-main { padding:18px 22px 28px!important; }
body .studio-shell .faith-main .fi-page { gap:14px!important; }
body .studio-shell .faith-main .portal-workspace { gap:12px!important; }
body .studio-shell .faith-main .fi-header-heading { font-size:22px!important; }
body .studio-shell .faith-main .fi-btn { font-size:13px; padding:8px 12px; }
body .studio-shell .faith-main .fi-section-header { padding:12px 16px!important; }
body .studio-shell .faith-main .fi-section-header-heading { font-size:15px!important; }
body .studio-shell .faith-main :is(.faith-collection-banner,.faith-editor-banner,.msoc-homework-hero,.msoc-offline-session-hero,.pm-hero) { padding:14px 16px!important; }
body .studio-shell .faith-main .faith-panel { padding:14px!important; }
body .studio-shell .msoc-users-center { gap:12px!important; }
body .studio-shell .msoc-users-hero { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0!important; border:0!important; background:transparent!important; }
body .studio-shell .msoc-users-hero h1 { font-size:22px!important; }
body .studio-shell .msoc-users-hero p { font-size:13px; margin-top:4px; }
body .studio-shell .msoc-users-primary-action { flex:none; min-height:40px; padding:9px 12px; font-size:13px; }
body .studio-shell .studio-review-guide { margin:0; padding:8px 12px; }
body .studio-shell .msoc-user-status-grid { display:grid!important; grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr)); gap:8px!important; }
body .studio-shell .msoc-user-status-card { flex:1 1 150px; flex-direction:row; align-items:center; gap:12px; min-height:48px!important; padding:10px 12px!important; font-size:12px; border-radius:8px; }
body .studio-shell .msoc-user-status-card strong { font-size:20px!important; }
body .studio-shell .msoc-users-panel { gap:10px; }
body .studio-shell .msoc-users-panel-header { display:none; }
body .studio-shell .msoc-users-filters { display:flex!important; flex-wrap:wrap; align-items:end; gap:10px!important; padding:12px!important; }
body .studio-shell .msoc-users-filters>label { flex:1 1 160px; min-width:0; }
body .studio-shell .msoc-users-filters>.msoc-users-search { flex:2 1 240px; }
body .studio-shell .msoc-users-list { gap:8px; }
body .studio-shell .msoc-user-row { padding:12px!important; gap:8px 12px!important; }
body .studio-shell .msoc-user-main h3 { font-size:15px!important; }
body .studio-shell .msoc-user-meta { gap:3px; font-size:12px; }
body .studio-shell .msoc-user-actions a { min-height:40px!important; padding:8px 12px!important; font-size:13px!important; }
body .studio-shell .msoc-user-actions a:first-child { background:transparent!important; color:#354c70!important; border:1px solid #cbd5e1; }
body .studio-shell .faith-dashboard.role-dashboard { gap:12px!important; }
body .studio-shell .faith-dashboard.role-dashboard .studio-welcome { min-height:112px; }
body .studio-shell .faith-dashboard.role-dashboard .studio-welcome-copy { padding:16px 20px; }
body .studio-shell .faith-dashboard.role-dashboard .studio-welcome-art { min-height:112px; }
body .studio-shell .faith-dashboard.role-dashboard .studio-welcome h1 { font-size:22px; margin:5px 0; }
body .studio-shell .faith-dashboard.role-dashboard .faith-chips { margin-top:8px; }
body .studio-shell .faith-dashboard.role-dashboard .faith-stat { padding:12px!important; }
body .studio-shell .faith-dashboard.role-dashboard .faith-launcher { padding:12px!important; }
body .studio-shell .faith-dashboard.role-dashboard .faith-panel { padding:14px!important; }
body .studio-shell .faith-dashboard.role-dashboard .role-focus-panel>header { padding:12px 16px; }
body .studio-shell .faith-dashboard.role-dashboard .role-focus-list article { padding:10px 0; }
@media(max-width:600px) {
 body .studio-shell .faith-main { padding:12px 14px 24px!important; }
 body .studio-shell .msoc-users-hero { flex-direction:row!important; }
 body .studio-shell .msoc-users-filter-actions { display:flex!important; flex-direction:row!important; width:100%; gap:8px; }
 body .studio-shell .msoc-users-filter-actions button { flex:0 0 auto; width:auto; }
 body .studio-shell .msoc-users-filter-actions a { flex:0 0 auto; }
 body .studio-shell .msoc-users-hero { align-items:flex-start; }
 body .studio-shell .msoc-users-hero h1 { font-size:20px!important; }
 body .studio-shell .msoc-user-status-card { flex-basis:calc(50% - 8px); min-width:0; }
 body .studio-shell .msoc-users-filters>label { flex-basis:100%; }
 body .studio-shell .msoc-user-actions a { min-height:44px!important; }
 body .studio-shell .msoc-user-row { grid-template-columns:36px minmax(0,1fr)!important; }
 body .studio-shell .msoc-user-row .msoc-user-meta, body .studio-shell .msoc-user-row .msoc-user-badges, body .studio-shell .msoc-user-row .msoc-user-actions { grid-column:2!important; }
 body .studio-shell .faith-dashboard.role-dashboard .studio-welcome { grid-template-columns:minmax(0,1fr) 90px; }
 body .studio-shell .faith-dashboard.role-dashboard .studio-welcome-copy { padding:14px; }
 body .studio-shell .faith-dashboard.role-dashboard .studio-welcome-art { display:block; min-height:110px; }
 body .studio-shell .faith-dashboard.role-dashboard .studio-welcome-art figcaption { display:none; }
 body .studio-shell .faith-dashboard.role-dashboard .studio-welcome h1 { font-size:20px; }
}
/* Role dashboards keep the next action ahead of secondary activity. */
body .studio-shell .role-dashboard { --role-accent:#65409c; --role-wash:#ece4f7; }
body .studio-shell .role-dashboard[data-portal-mode=student] { --role-accent:#465abb; --role-wash:#e6edff; }
body .studio-shell .role-dashboard[data-portal-mode=parent] { --role-accent:#287367; --role-wash:#def1e9; }
body .studio-shell .role-dashboard[data-portal-mode=teacher] { --role-accent:#925b25; --role-wash:#fff0d7; }
body .studio-shell .role-dashboard[data-portal-mode=exam-inspector] { --role-accent:#365ca2; --role-wash:#e4edfa; }
body .studio-shell .role-dashboard[data-portal-mode=magazine-editor] { --role-accent:#98436b; --role-wash:#f7e4ee; }
.role-dashboard-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; order:-2; }
.role-dashboard-heading h2 { font-size:23px; font-weight:750; color:#20354b; letter-spacing:-.025em; margin-top:4px; }
.role-dashboard-heading time { font-size:12px; color:#526477; }
body .studio-shell .role-dashboard .studio-welcome { min-height:150px; background:var(--role-wash); }
body .studio-shell .role-dashboard .studio-welcome-copy { padding:22px; }
body .studio-shell .role-dashboard .studio-welcome h1 { font-size:25px; }
body .studio-shell .role-dashboard .studio-welcome-art { min-height:150px; }
body .studio-shell .role-dashboard .studio-welcome-art::after { background:linear-gradient(90deg,var(--role-wash),transparent 40%); }
body .studio-shell .role-dashboard .faith-stat { background:var(--role-wash)!important; }
body .studio-shell .role-dashboard .faith-stat strong { overflow-wrap:anywhere; }
body .studio-shell .role-dashboard .faith-launcher { border-top:3px solid var(--role-accent); }
.role-child-picker { order:1; padding:16px; background:#e0f0e9; border:1px solid #bedacf; border-radius:12px; }
.role-child-picker label { display:block; font-size:12px; font-weight:700; margin-bottom:8px; color:#245c52; }
.role-child-picker>div { display:flex; gap:10px; }
.role-child-picker select { flex:1; min-width:0; padding:10px; border:1px solid #a9c9be; border-radius:8px; background:white; font-size:16px; }
.role-child-picker button { padding:10px 16px; min-height:44px; background:#287367; color:white; border-radius:8px; font-weight:650; }
.role-focus-panel { order:4; background:#fff; border:1px solid #d9d5e4; border-radius:14px; overflow:hidden; }
.role-focus-panel>header { display:flex; align-items:center; gap:12px; padding:16px 20px; background:var(--role-wash); }
.role-focus-panel h2 { font-size:17px; font-weight:700; color:#20354b; }
.role-focus-list { padding:0 20px; }
.role-focus-list article { display:flex; align-items:center; gap:14px; padding:16px 0; border-bottom:1px solid #e5e8ef; }
.role-focus-list article:last-child { border-bottom:0; }
.role-focus-list article>div { flex:1; min-width:0; }
.role-focus-list strong { font-size:14px; color:#20354b; overflow-wrap:anywhere; }
.role-focus-list p { font-size:12px; color:#526477; margin-top:4px; }
.role-status { font-size:11px; font-weight:650; color:var(--role-accent); background:var(--role-wash); padding:5px 8px; border-radius:6px; }
.role-focus-list a { min-height:44px; display:flex; align-items:center; gap:6px; font-size:13px; color:var(--role-accent); font-weight:700; }
.role-focus-list a svg { width:16px; height:16px; }
.role-focus-empty { display:flex; gap:12px; padding:24px 0; }
.role-focus-empty>svg { width:24px; height:24px; color:var(--role-accent); flex:none; }
.role-dashboard-more { order:7; border:1px solid #d5d9e5; border-radius:12px; background:#f7f7fc; padding:16px; }
.role-dashboard-more>summary { display:flex; justify-content:space-between; align-items:center; min-height:44px; cursor:pointer; font-size:14px; font-weight:700; color:#334661; }
.role-dashboard-more>summary svg { width:18px; height:18px; }
.role-dashboard-more>.faith-dash-columns { margin-top:16px; }
@media(max-width:600px) {
 body .studio-shell .role-dashboard .faith-stats { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 body .studio-shell .role-dashboard .faith-stat { min-width:0; padding:12px!important; }
 .role-dashboard-heading { align-items:flex-start; flex-direction:column; gap:6px; }
 .role-dashboard-heading h2 { font-size:21px; }
 body .studio-shell .role-dashboard .studio-welcome { grid-template-columns:minmax(0,1fr) 95px; min-height:140px; }
 body .studio-shell .role-dashboard .studio-welcome-copy { padding:16px; }
 body .studio-shell .role-dashboard .studio-welcome h1 { font-size:20px; }
 body .studio-shell .role-dashboard .studio-welcome-art { min-height:100%; height:100%; }
 body .studio-shell .role-dashboard .studio-welcome-art img { object-position:73% center; }
 body .studio-shell .role-dashboard .studio-welcome-art figcaption { display:none; }
 body .studio-shell .role-dashboard .faith-chips { margin-top:10px; }
 .role-child-picker>div { flex-wrap:wrap; }
 .role-child-picker select { flex-basis:100%; }
 .role-child-picker button { width:100%; }
 .role-focus-list article { flex-wrap:wrap; gap:8px; }
 .role-focus-list article>div { flex-basis:100%; }
 .role-focus-list article>a { margin-left:auto; }
}
/* Attendance: compact session setup, readable roster and touch-friendly choices. */
body .studio-shell .msoc-attendance-workspace { display:grid; gap:12px; min-width:0; }
body .studio-shell .msoc-attendance-hero { padding:14px 16px; border-radius:12px; background:#e3dcf5; border:1px solid #d1c4e9; gap:12px; }
body .studio-shell .msoc-attendance-hero h2 { font-size:21px; line-height:1.3; }
body .studio-shell .msoc-attendance-hero p { font-size:13px; margin-top:6px; }
body .studio-shell .msoc-attendance-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
body .studio-shell .msoc-attendance-stats article { padding:10px 12px; background:#e7eefb; border:1px solid #ccd9ee; border-radius:10px; }
body .studio-shell .msoc-attendance-stats article:nth-child(2) { background:#e3f2e8; border-color:#c6dfcf; }
body .studio-shell .msoc-attendance-stats article:nth-child(3) { background:#fff0d7; border-color:#e8d5b2; }
body .studio-shell .msoc-attendance-stats article:nth-child(4) { background:#f8e7ed; border-color:#e7cdd7; }
body .studio-shell .msoc-attendance-stats article div { display:grid; gap:3px; }
body .studio-shell .msoc-attendance-stats strong { font-size:23px; line-height:1.2; }
body .studio-shell .msoc-attendance-stats span { font-size:12px; color:#364a61; }
body .studio-shell .msoc-attendance-tabs { display:flex; gap:8px; }
body .studio-shell .msoc-attendance-tabs button { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 16px; font-size:13px; border-radius:10px; }
body .studio-shell .msoc-attendance-tabs button.is-active { background:#65409c; color:#fff; }
body .studio-shell :is(.msoc-roster-register,.msoc-register-panel) { padding:20px; border:1px solid #d7d1e5; border-radius:14px; box-shadow:none; min-width:0; }
body .studio-shell .msoc-roster-controls { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; padding:16px; background:#f0edf8; border:1px solid #dcd4ec; border-radius:12px; }
body .studio-shell .msoc-roster-controls select { width:100%; min-width:0; min-height:44px; font-size:14px; color:#24364e; background:#fff; }
body .studio-shell .msoc-simple-roster-row { padding:14px; gap:12px; border-bottom:1px solid #dce2eb; }
body .studio-shell .msoc-simple-roster-row>div:first-child { min-width:0; overflow-wrap:anywhere; }
body .studio-shell .msoc-attendance-toggle { min-height:44px; padding:10px; border:1px solid #ccd5e2; border-radius:9px; background:#f6f7fb; color:#33465d; display:flex; gap:8px; align-items:center; justify-content:center; }
body .studio-shell .msoc-attendance-toggle:has(input:checked) { background:#e0f1e6; border-color:#43865e; color:#174c2d; }
body .studio-shell .msoc-attendance-toggle.is-absent:has(input:checked) { background:#fbe5eb; border-color:#b74e67; color:#8d2943; }
body .studio-shell .msoc-attendance-toggle:focus-within { outline:3px solid #9476bd; outline-offset:2px; }
body .studio-shell .msoc-roster-footer { padding:16px 0 0; gap:12px; border-top:1px solid #dcd4ec; }
body .studio-shell .msoc-roster-footer button { min-height:46px; padding:12px 22px; background:#65409c; color:#fff; border-radius:10px; }
body .studio-shell .msoc-roster-footer button:disabled { opacity:.65; cursor:wait; }
.studio-roster-tools { display:flex; align-items:end; justify-content:space-between; gap:16px; padding:18px 0; }
.studio-roster-bulk-actions { display:flex; justify-content:flex-end; margin-bottom:10px; }
.studio-roster-bulk-actions .fi-btn { min-height:44px; }
.studio-roster-tools h3 { font-size:17px; font-weight:700; }
.studio-roster-tools p { font-size:12px; color:#526477; margin-top:5px; }
.studio-roster-tools label { display:grid; gap:6px; font-size:12px; font-weight:600; }
.studio-roster-tools input { width:100%; min-height:44px; border:1px solid #bbc7d7; border-radius:8px; padding:10px 12px; background:#fff; }
@media(max-width:600px) {
 body .studio-shell .msoc-attendance-hero { padding:16px; display:grid; grid-template-columns:minmax(0,1fr) 68px; align-items:center; }
 body .studio-shell .msoc-attendance-hero-score { width:68px; min-width:0; padding:10px 6px; }
 body .studio-shell .msoc-attendance-hero-score strong { font-size:24px; }
 body .studio-shell .msoc-attendance-hero-score span { font-size:11px; }
 body .studio-shell .msoc-attendance-hero h2 { font-size:21px; }
 body .studio-shell .msoc-attendance-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 body .studio-shell .msoc-attendance-tabs button { flex:1; padding:10px 8px; font-size:12px; }
 body .studio-shell :is(.msoc-roster-register,.msoc-register-panel) { padding:14px; }
 body .studio-shell .msoc-roster-controls { grid-template-columns:minmax(0,1fr); padding:12px; }
 body .studio-shell .msoc-roster-controls select,.studio-roster-tools input { font-size:16px; }
 body .studio-shell .msoc-simple-roster-head { display:none; }
 body .studio-shell .msoc-simple-roster-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:14px 0; }
 body .studio-shell .msoc-simple-roster-row>div:first-child { grid-column:1/-1; }
 body .studio-shell .msoc-roster-footer { flex-wrap:wrap; }
 body .studio-shell .msoc-roster-footer button { width:100%; }
 .studio-roster-tools { flex-direction:column; align-items:stretch; }
}
/* Shared portal foundations. Functional resource layouts remain in faith-workspaces. */
:root {
    --studio-ink: #172c40;
    --studio-muted: #526477;
    --studio-line: #dce3e8;
    --studio-paper: #fff;
    --studio-canvas: #eeeafa;
    --studio-blue: #215dc3;
    --studio-radius: 14px;
    --faith-ink: var(--studio-ink);
    --faith-muted: var(--studio-muted);
    --faith-line: var(--studio-line);
    --faith-canvas: var(--studio-canvas);
}
body { background: var(--studio-canvas); color: var(--studio-ink); }
.faith-brand { grid-template-columns:44px minmax(0,1fr) 44px!important; align-items:center!important; gap:10px!important; max-width:100%; }
.faith-brand > span { width:auto!important; min-width:0!important; overflow:visible!important; }
.faith-brand strong, .faith-brand small { white-space:normal!important; overflow:visible!important; text-overflow:clip!important; }
body .faith-brand img:is(.faith-brand-mjssa-logo,.faith-brand-msoc-emblem) { display:block; width:44px; height:44px; max-width:100%; object-fit:contain!important; object-position:center!important; aspect-ratio:1; border-radius:0!important; padding:0; flex-shrink:0; }
*, *::before, *::after { box-sizing: border-box; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #608fe0; outline-offset: 3px; }
[hidden], [x-cloak] { display: none !important; }
.studio-eyebrow { display:block; font-size:11px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; color:#4d657c; }
.studio-shell { --portal-ink:var(--studio-ink); --portal-muted:var(--studio-muted); --portal-line:var(--studio-line); background:var(--studio-canvas); font-size:14px; line-height:1.5; }
.studio-shell .faith-sidebar { width:248px!important; background:#152d40!important; border:0!important; color:#edf4fa!important; }
.studio-shell .faith-sidebar-brand { padding:24px 16px 20px!important; min-height:0!important; height:auto!important; flex-shrink:0; border-bottom:1px solid #ffffff18; margin-bottom:14px; }
.studio-shell .faith-sidebar .faith-brand { display:grid!important; grid-template-columns:32px minmax(0,1fr) 32px!important; gap:8px!important; max-width:none!important; width:100%!important; }
.studio-shell .faith-sidebar .faith-brand img { width:32px!important; height:32px!important; background:white; padding:1px; }
.studio-shell .faith-sidebar .faith-brand span { min-width:0; width:auto!important; max-width:none!important; }
.studio-shell .faith-sidebar .faith-brand strong { color:#fff!important; font-size:15px!important; line-height:1.3!important; white-space:normal!important; }
.studio-shell .faith-sidebar .faith-brand small { color:#b8cbd9!important; font-size:10px!important; line-height:1.45!important; max-width:none!important; white-space:normal!important; }
.studio-shell .faith-sidebar nav { padding:0 12px!important; flex-shrink:0; }
.studio-shell .faith-nav-section { --nav-accent:#b6a5f7; margin:0 0 4px!important; }
.studio-shell .faith-nav-section:nth-child(3n) { --nav-accent:#ffd080; }
.studio-shell .faith-nav-section:nth-child(3n+1) { --nav-accent:#87dec2; }
.studio-shell .faith-nav-label { padding:10px!important; min-height:44px; color:#d1dfe9!important; font-size:11px!important; letter-spacing:.045em!important; border-radius:8px; text-align:left; }
.studio-shell .faith-nav-label:hover { background:#ffffff08; }
.studio-shell .faith-nav-label>span { flex:1; }
.studio-shell .faith-nav-label { display:flex; align-items:center; gap:9px; width:100%; }
body .studio-shell .faith-sidebar .faith-nav-label .faith-nav-group-icon { width:18px; height:18px; flex:none; color:var(--nav-accent)!important; transform:none!important; }
body .studio-shell .faith-sidebar .faith-nav-label>span::before { display:none; }
.studio-shell .faith-nav-label svg { width:14px; height:14px; color:#a7bdce; transition:transform .15s ease; }
.studio-shell .faith-nav-section ul { margin:2px 0 8px!important; padding:0!important; list-style:none; }
.studio-shell .faith-nav-section .faith-nav-label + ul { margin-left:18px!important; padding-left:7px!important; border-left:1px solid #ffffff20; }
.studio-shell .faith-nav-section li { margin:2px 0; }
.studio-shell .faith-nav-label[aria-expanded=true] svg { transform:rotate(180deg); }
.studio-shell .faith-nav-link { display:flex; align-items:center; min-height:44px!important; padding:9px 10px!important; border-radius:8px!important; font-size:13px!important; line-height:1.4; color:#e0eaf2!important; background:transparent!important; box-shadow:none!important; gap:10px!important; }
.studio-shell .faith-nav-link span { flex:1; min-width:0; overflow-wrap:break-word; }
body .studio-shell .faith-sidebar .faith-nav-link svg { width:20px!important; height:20px!important; color:var(--nav-accent)!important; flex:none; }
.studio-shell .faith-nav-link small { flex:none; min-width:20px; padding:2px 6px; border-radius:6px; background:#ffffff15; color:#f3f7fb; text-align:center; font-size:11px; }
.studio-shell .faith-nav-child { margin-left:20px; border-left:1px solid #ffffff25; border-radius:0 8px 8px 0!important; }
.studio-shell .faith-nav-link:focus-visible,.studio-shell .faith-nav-label:focus-visible { outline:2px solid #90caff; outline-offset:2px; }
.studio-shell .faith-nav-link:hover { background:#ffffff0d!important; }
.studio-shell .faith-nav-link.is-active { background:#2457c5!important; color:#fff!important; font-weight:600; box-shadow:inset 3px 0 #91c9ff!important; }
body .studio-shell .faith-sidebar .faith-nav-link.is-active :is(span,svg) { color:#fff!important; opacity:1!important; }
.studio-shell .faith-nav-label>span::before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:#ad9bea; margin-right:8px; }
.studio-shell .faith-nav-section:nth-child(3n) .faith-nav-label>span::before { background:#f2bb64; }
.studio-shell .faith-nav-section:nth-child(3n+1) .faith-nav-label>span::before { background:#75ccae; }
.studio-shell .faith-nav-link.is-active svg { color:#fff!important; }
.studio-shell .faith-sidebar-art { min-height:120px!important; padding:18px 20px!important; text-align:left; opacity:.9; flex-shrink:0; }
.studio-shell .faith-sidebar-art p { font:italic 18px/1.4 sans-serif; color:#c4d6df; }
.studio-shell .faith-sidebar-art img { display:none; }
.studio-shell .faith-app-content { margin-left:248px!important; min-width:0; }
.studio-shell .faith-topbar { min-height:68px!important; padding:12px 28px!important; background:#e9e2f5!important; backdrop-filter:blur(12px); border-bottom:1px solid #d8cce8!important; gap:16px!important; }
.studio-shell .faith-search { max-width:360px; order:0!important; }
.studio-shell .msoc-topbar-actions { order:1!important; flex:0 0 auto!important; }
.studio-shell .faith-account-menu { order:2!important; }
.studio-shell .faith-search .fi-input-wrp { background:#f5f6f8!important; border:1px solid #e1e6eb!important; border-radius:9px!important; box-shadow:none!important; min-height:40px!important; }
.studio-shell .faith-main { padding:24px 28px 40px!important; max-width:1480px; color:var(--studio-ink); }
.studio-shell .fi-header-heading { font-size:24px!important; line-height:1.25!important; letter-spacing:-.025em; font-weight:750!important; color:var(--studio-ink)!important; }
.studio-shell .fi-header-heading::before { display:none!important; }
.studio-shell .fi-page { gap:20px!important; }
.studio-shell .fi-page-header-main-ctn { margin:0!important; }
.studio-shell .fi-page-content { gap:20px!important; }
.studio-shell .studio-page-header { display:flex!important; justify-content:space-between!important; align-items:center!important; flex-direction:row!important; flex-wrap:wrap; gap:14px!important; padding:0!important; width:100%; }
.studio-shell .studio-page-header:not(:has(h1,p,a,button)) { display:none!important; }
.studio-page-heading { min-width:0; }
.studio-page-title-row { text-align:left; }
.studio-page-actions { margin-left:auto; }
.studio-shell .fi-ta-header-toolbar { padding:16px!important; min-height:0!important; background:#fff!important; }
.studio-shell .fi-ta-header { padding:0!important; }
.studio-shell .fi-ta-search-field { width:min(100%,320px); }
.studio-shell .faith-dashboard { gap:18px; }
.studio-shell .faith-dashboard>.faith-role-switch { order:-1; }
.studio-shell .faith-dashboard>.studio-welcome { order:0; }
.studio-shell .faith-dashboard>:is(.studio-profile-details,.faith-child-select,.faith-panel) { order:1; }
.studio-shell .faith-dashboard>.faith-stats { order:2; }
.studio-shell .faith-dashboard>.faith-dashboard-actions { order:3; }
.studio-shell .faith-dashboard>.faith-session-bar { order:4; }
.studio-shell .faith-dashboard[data-portal-mode=student]>.faith-session-bar { order:2; }
.studio-shell .faith-dashboard>.faith-dash-columns { order:5; }
.studio-shell .faith-dashboard>.faith-dash-bottom { order:6; }
.studio-shell .faith-main:has(.faith-dashboard) .fi-header { display:none; }
.studio-shell :is(.faith-panel,.faith-stat,.faith-session-bar) { border:1px solid var(--studio-line)!important; border-radius:var(--studio-radius)!important; box-shadow:none!important; background:#fff!important; }
.studio-shell .faith-panel { padding:20px!important; }
.studio-shell .faith-panel>header h2 { font-size:16px; letter-spacing:-.015em; }
.studio-shell .faith-panel>header { padding-bottom:14px; border-color:#edf0f2; }
.studio-shell .faith-feed-item { padding:13px 0; border-color:#edf0f2; }
.studio-shell .faith-feed-item strong { font-size:13px; line-height:1.5; }
.studio-shell .faith-feed-item :is(p,small) { font-size:12px; color:var(--studio-muted); line-height:1.6; }
.studio-shell .faith-empty { min-height:138px; padding:24px 12px; }
.studio-shell .faith-empty svg { width:30px; height:30px; color:#6b85a0; }
.studio-shell .faith-empty p { color:var(--studio-muted); }
.studio-welcome { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr); background:#eee8ff; border:1px solid #ded3f6; border-radius:18px; overflow:hidden; min-height:210px; }
.studio-welcome-copy { padding:28px 30px; align-self:center; min-width:0; }
.studio-welcome h1 { margin:10px 0; color:#172f3e; font-size:clamp(24px,2.5vw,32px); font-weight:750; line-height:1.18; letter-spacing:-.035em; }
.studio-welcome p { font-size:14px; color:#445c61; }
.studio-welcome .faith-chips { margin-top:18px; gap:6px; }
.studio-welcome .faith-chip { font-size:11px; background:#ffffffb8; border:1px solid #d5ded4; color:#304f54; font-weight:600; padding:4px 9px; }
.studio-welcome-art { position:relative; min-width:0; margin:0; min-height:210px; }
.studio-welcome-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:77% center; }
.studio-welcome-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#eee8ff,transparent 35%); }
.studio-welcome-art figcaption { position:absolute; bottom:16px; right:20px; z-index:1; font:italic 18px sans-serif; background:#ffffffe6; padding:6px 12px; border-radius:20px; color:#304f54; }
.studio-profile-details { border:1px solid var(--studio-line); border-radius:12px; background:white; }
.studio-profile-details>summary { display:flex; gap:12px; align-items:center; padding:14px 18px; cursor:pointer; list-style:none; }
.studio-profile-details>summary::-webkit-details-marker { display:none; }
.studio-profile-details>summary>span:not(.portal-avatar) { flex:1; min-width:0; }
.studio-profile-details>summary strong { font-size:13px; display:block; }
.studio-profile-details>summary small { font-size:12px; color:var(--studio-muted); display:block; }
.studio-profile-details>summary>svg { width:18px; height:18px; }
.studio-profile-details[open]>summary>svg { transform:rotate(180deg); }
.studio-profile-content { display:grid; gap:16px; padding:0 18px 18px; }
.studio-profile-content>.faith-button { justify-self:start; }
.studio-shell .faith-profile-facts { margin:0; padding-top:16px; gap:16px; }
.studio-shell .faith-profile-facts>div { font-size:12px; }
.studio-shell .faith-session-bar { padding:16px 20px; gap:14px; }
.studio-shell .faith-session-copy h2 { font-size:15px; }
.studio-shell .faith-session-bar .faith-icon-tile { width:42px; height:42px; background:#e7effc; color:#215dc3; }
.studio-shell .faith-icon-tile { width:36px; height:36px; border-radius:10px; box-shadow:none; }
.studio-shell .faith-icon-tile svg { width:20px; height:20px; }
.studio-shell .faith-dashboard-actions { gap:12px; }
.studio-shell .faith-launcher { display:grid; grid-template-columns:36px minmax(0,1fr) 16px; align-items:center; gap:12px; padding:16px!important; background:#fff!important; border:1px solid var(--studio-line)!important; border-radius:12px!important; box-shadow:none!important; transition:border-color .15s,transform .15s; }
.studio-shell .faith-launcher:hover { border-color:#8faed3!important; transform:translateY(-2px); }
.studio-shell .faith-launcher>div:last-child { grid-column:2; grid-row:1; }
.studio-shell .faith-launcher>svg { grid-column:3; grid-row:1; width:16px; color:#728293; }
.studio-shell .faith-launcher strong { font-size:13px; line-height:1.3; display:block; }
.studio-shell .faith-launcher small { font-size:11px; color:var(--studio-muted); margin-top:5px; line-height:1.4; }
.studio-shell .faith-launcher:nth-child(1) .faith-icon-tile { background:#ece6fb; color:#7046ad; }
.studio-shell .faith-launcher:nth-child(2) .faith-icon-tile { background:#e2f3eb; color:#207957; }
.studio-shell .faith-launcher:nth-child(3) .faith-icon-tile { background:#fff0d6; color:#965a13; }
.studio-shell .faith-launcher:nth-child(4) .faith-icon-tile { background:#fbe6ec; color:#b33d61; }
.studio-shell .faith-launcher:nth-child(1) { background:#ede5ff!important; border-color:#dbcdf4!important; }
.studio-shell .faith-launcher:nth-child(2) { background:#ddf4ec!important; border-color:#bde4d5!important; }
.studio-shell .faith-launcher:nth-child(3) { background:#fff0d3!important; border-color:#eddaa9!important; }
.studio-shell .faith-launcher:nth-child(4) { background:#ffe3ec!important; border-color:#efc9d5!important; }
.studio-shell .faith-launcher:nth-child(1) .faith-icon-tile { background:#7750c6; color:white; }
.studio-shell .faith-launcher:nth-child(2) .faith-icon-tile { background:#24846a; color:white; }
.studio-shell .faith-launcher:nth-child(3) .faith-icon-tile { background:#b97716; color:white; }
.studio-shell .faith-launcher:nth-child(4) .faith-icon-tile { background:#c34b73; color:white; }
.studio-shell .faith-stats { gap:12px; }
.studio-shell .faith-stat { padding:18px; gap:12px; }
.studio-shell .faith-stat strong { font-size:26px; color:var(--studio-ink); }
.studio-shell .faith-stat span { font-size:12px; color:var(--studio-muted); }
.studio-shell .faith-stat .faith-icon-tile { background:#edf2fa; color:#215dc3; }
.studio-shell .faith-stat:nth-child(2) .faith-icon-tile { background:#e0f3e8; color:#22734e; }
.studio-shell .faith-stat:nth-child(3) .faith-icon-tile { background:#fff0d3; color:#995c17; }
.studio-shell .faith-stat:nth-child(4) .faith-icon-tile { background:#ede4fc; color:#7545aa; }
.studio-shell .faith-verse-panel { min-height:135px!important; padding:22px!important; }
.studio-shell .faith-verse-panel p { font-size:20px; }
.studio-shell .faith-dash-columns { gap:18px; }
.studio-shell .faith-workspace-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.studio-shell .faith-workspace-links .faith-feed-item { min-width:0; }
.studio-shell .faith-workspace-links svg { flex:none; width:18px; }
.studio-shell .faith-button { min-height:40px; padding:9px 14px; border-radius:8px; background:#215dc3; font-size:13px; box-shadow:none; }
.studio-shell .faith-button.outline { background:#fff; color:#284b7c; border:1px solid #c5d1df; }
.studio-shell .faith-main .fi-select-input-placeholder { color:#526477!important; font-weight:400!important; }
.studio-shell .faith-main .fi-select-input-btn { min-height:42px; font-weight:400!important; }
.studio-shell .faith-main .fi-input-wrp { border-radius:8px!important; }
.studio-shell :is(.fi-section,.fi-ta-ctn) { border-radius:12px!important; box-shadow:none!important; border:1px solid var(--studio-line)!important; background:white; }
.studio-shell .fi-section-content { padding:20px!important; }
.studio-shell :is(.fi-input-wrp,.fi-select-input-wrp) { border-radius:8px!important; min-height:40px; box-shadow:none; border:1px solid #c9d3df; }
.studio-shell :is(.fi-fo-field-wrp-label,.fi-input,.fi-select-input) { font-size:14px; }
.studio-shell .fi-fo-field-wrp-helper-text { font-size:12px; line-height:1.5; }
.studio-shell .fi-btn { min-height:40px; border-radius:8px; }
.studio-shell :is(.fi-modal-window,.msoc-photo-card) { border-radius:16px; max-height:calc(100dvh - 32px); }
.studio-shell .msoc-notification-dropdown { width:360px; max-width:calc(100vw - 24px); border-radius:12px; }
.studio-shell .msoc-notification-list { max-height:min(420px,65dvh); }
.studio-shell :is(.faith-collection-banner,.faith-editor-banner,.msoc-homework-hero,.msoc-offline-session-hero,.msoc-users-hero) { padding:20px!important; background:white!important; border:1px solid var(--studio-line)!important; border-radius:14px!important; min-height:0!important; }
.studio-shell :is(.faith-collection-banner,.faith-editor-banner,.msoc-homework-hero,.msoc-offline-session-hero,.msoc-users-hero) :is(h1,h2) { font-size:23px!important; line-height:1.3!important; letter-spacing:-.025em; }
.studio-shell :is(.faith-library-grid,.msoc-offline-session-grid) { gap:16px; }
.studio-shell :is(.faith-library-card,.msoc-offline-session-card,.msoc-user-row) { border-color:var(--studio-line)!important; box-shadow:none!important; border-radius:12px!important; }
.studio-shell .faith-popup { padding:20px; }
.studio-shell .faith-popup>.faith-panel { max-width:480px; max-height:calc(100dvh - 40px); overflow-y:auto; }
.studio-shell .faith-popup p { padding-top:16px; line-height:1.7; }
/* Compact management pages retain comfortable touch targets. */
body .studio-shell .faith-main :is(.fi-sc.fi-sc-has-gap,.fi-page-content) { gap:16px!important; }
body .studio-shell .faith-main .fi-section-content { padding:16px!important; }
body .studio-shell .faith-main .fi-sc-tabs.fi-contained { padding:0!important; }
body .studio-shell .faith-main .fi-sc-tabs-tab.fi-active { padding:16px!important; }
body .studio-shell .faith-main .fi-fo-field { row-gap:6px!important; min-width:0; }
body .studio-shell .faith-main .fi-tabs { padding:4px!important; gap:4px!important; }
body .studio-shell .faith-main .fi-tabs-item { min-height:40px; padding:8px 12px!important; font-size:13px!important; }
body .studio-shell .faith-main .fi-ta-content-grid { padding:12px!important; gap:12px!important; align-items:stretch; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-directory-card) { padding:0!important; min-height:0!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-directory-card) .fi-ta-record-content-ctn { padding:4px 0!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-directory-card) .fi-ta-actions { display:flex!important; flex-wrap:wrap!important; align-items:center; gap:8px 14px!important; padding:0 14px!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-directory-card) .fi-ta-actions :is(a,button) { min-height:44px; display:inline-flex; align-items:center; }
body .studio-shell .faith-main .fi-ta-header-toolbar { padding:12px!important; gap:8px!important; }
body .studio-shell .faith-main .fi-ta-header-toolbar > .fi-ta-actions:not(:has(> :not([style*="display: none"]))) { display:none!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-directory-card) .fi-ta-record-content { padding:14px!important; }
body .studio-shell .faith-main .portal-student-directory { gap:12px!important; width:100%; min-width:0; }
body .studio-shell .faith-main .portal-student-card-heading { display:flex!important; align-items:center!important; gap:10px!important; min-width:0; }
body .studio-shell .faith-main .portal-student-card-heading > * { min-width:0; }
body .studio-shell .faith-main .portal-student-card-heading .portal-avatar { width:36px; height:36px; font-size:12px; }
body .studio-shell .faith-main .portal-student-card-heading .fi-ta-text-item { font-size:14px!important; color:#20334d!important; }
body .studio-shell .faith-main .portal-student-card-facts { gap:10px 14px!important; border-top:1px solid #e2dfeb; padding-top:12px; }
body .studio-shell .faith-main .portal-directory-card .fi-ta-text { row-gap:2px!important; }
body .studio-shell .faith-main .portal-directory-card .fi-ta-text-description { font-size:11px!important; line-height:1.4!important; color:#526477!important; }
body .studio-shell .faith-main .portal-directory-card .fi-ta-text-item { font-size:13px!important; line-height:1.45!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) { border:1px solid #d8d6e5; border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 2px 5px #26354b06; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory):hover { border-color:#a8a2d4; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) > .fi-ta-record-checkbox { position:absolute; top:15px; right:12px; margin:0!important; z-index:2; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-record-content-ctn { gap:0!important; padding:0!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-record-content { padding:0!important; }
body .studio-shell .faith-main .portal-student-directory { gap:0!important; }
body .studio-shell .faith-main .portal-student-card-heading { padding:14px 42px 14px 14px; background:#f0ecfa; border-bottom:1px solid #e0d9ed; min-height:70px; }
body .studio-shell .faith-main .portal-student-card-heading .portal-avatar { background:#ded8f3; color:#4e3d83; }
body .studio-shell .faith-main .portal-student-card-heading .fi-ta-text-item { font-size:14px!important; font-weight:650; }
body .studio-shell .faith-main .portal-student-card-facts { padding:14px; border:0; gap:9px 16px!important; }
body .studio-shell .faith-main .portal-student-card-facts .fi-ta-text-item { color:#28394e!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions { padding:8px 14px!important; margin-top:auto; border-top:1px solid #e7e3ef; background:#faf9fd; display:flex!important; flex-wrap:wrap; gap:8px!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions :is(a,button) { width:auto; flex:0 0 auto; padding:8px 12px; justify-content:center; gap:7px; border:1px solid #d9d3e8; border-radius:8px!important; background:#fff; color:#4e3d83!important; font-size:13px; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions :is(a,button):hover { background:#ede8fa; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-link-label { align-self:center!important; line-height:1.2; }
/* Shared people directories: readable compact cards, not oversized profile panels. */
body .studio-shell .faith-main .portal-student-card-heading { padding:10px 36px 10px 12px; min-height:58px; background:#eef3fb; border-bottom-color:#dce5f2; flex-wrap:wrap; }
body .studio-shell .faith-main .portal-student-card-heading .portal-avatar { background:#dce8fa; color:#254878; }
body .studio-shell .faith-main .portal-student-card-heading .fi-ta-text-item { color:#183552!important; }
body .studio-shell .faith-main .portal-student-card-facts { padding:12px; gap:8px 12px!important; min-width:0; }
body .studio-shell .faith-main .portal-student-card-facts > * { min-width:0; }
body .studio-shell .faith-main .portal-directory-card .fi-ta-text-item { overflow-wrap:anywhere; }
body .studio-shell .faith-main .portal-directory-card .fi-ta-text-description { color:#536477!important; font-size:12px!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions { padding:6px 12px!important; background:#f8fafc; border-top-color:#e2e8f0; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions :is(a,button) { border-color:#d4dfed; color:#24518a!important; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions :is(a,button):hover { background:#eaf1fc; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions .fi-color-warning { color:#92510b!important; background:#fff7e5; border-color:#eed5a7; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions .fi-color-danger { color:#a52e43!important; background:#fff1f3; border-color:#ebc4cd; }
body .studio-shell .faith-main .fi-ta-record:has(.portal-student-directory) .fi-ta-actions .fi-color-success { color:#11664b!important; background:#edf9f3; border-color:#b5dfcd; }
body .studio-shell .portal-person-detail { color:#24374e; font-family:inherit; font-size:14px; }
body .studio-shell .portal-person-detail .portal-detail-content > div { display:grid; gap:12px; }
body .studio-shell .portal-person-detail .portal-detail-content > div > div:not(.grid),
body .studio-shell .portal-person-detail .portal-detail-content .grid > div { padding:14px; border:1px solid #dae3ef; border-radius:10px; background:#fff; min-width:0; }
body .studio-shell .portal-person-detail .portal-detail-content .grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body .studio-shell .portal-person-detail h2 { font-size:20px!important; font-weight:650; line-height:1.35; color:#193b60!important; margin:4px 0; }
body .studio-shell .portal-person-detail h3 { font-size:14px!important; font-weight:650; color:#254976!important; padding-bottom:8px; margin-bottom:6px; border-bottom:1px solid #e0e7f0; }
body .studio-shell .portal-person-detail p { line-height:1.5; overflow-wrap:anywhere; }
body .studio-shell .portal-person-detail dl > div { display:grid!important; grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr); gap:10px; padding:7px 0; border-bottom:1px solid #edf1f6; }
body .studio-shell .portal-person-detail dt { color:#617084; font-size:12px; }
body .studio-shell .portal-person-detail dd { margin:0; font-size:14px; font-weight:500; color:#24374e; overflow-wrap:anywhere; }
body .studio-shell .portal-person-detail .portal-detail-outline button { min-height:44px; }
@media(max-width:640px) {
 body .studio-shell .portal-person-detail .portal-detail-content .grid { grid-template-columns:minmax(0,1fr); }
 body .studio-shell .portal-person-detail dl > div { grid-template-columns:minmax(85px,.7fr) minmax(0,1.3fr)!important; gap:8px; }
 body .studio-shell .portal-person-detail dd { text-align:left!important; }
}
body .studio-shell .faith-main .studio-editor-heading { gap:6px 12px; margin-bottom:12px; }
body .studio-shell .faith-main .studio-editor-heading h1 { font-size:23px!important; margin-top:3px; }
body .studio-shell .faith-main .fi-sc-tabs.fi-contained { border:1px solid #d8d6e5; border-radius:12px; box-shadow:none; }
body .studio-shell .faith-main .fi-sc-tabs > .fi-tabs { background:#f0ecfa; border-bottom:1px solid #ddd5ec; border-radius:12px 12px 0 0; }
body .studio-shell .faith-main .fi-tabs-item.fi-active { background:#65449d; color:#fff; }
@media(max-width:767px) {
 body .studio-shell .faith-main .fi-sc-tabs-tab.fi-active,body .studio-shell .faith-main .fi-section-content { padding:12px!important; }
 body .studio-shell .faith-main .fi-tabs { flex-wrap:nowrap!important; overflow-x:auto; max-width:100%; }
 body .studio-shell .faith-main .fi-tabs-item { flex-shrink:0; min-height:44px; }
 body .studio-shell .faith-main :is(.fi-input,.fi-select-input-btn) { font-size:16px!important; min-height:44px; }
 body .studio-shell .faith-main .fi-ta-content-grid { padding:8px!important; }
}
/* Public identity and navigation use the same spacing and typography scale. */
body .studio-shell .faith-editor:has(.portal-registration-review) > .faith-section-tabs { display:none!important; }
body .studio-shell .portal-registration-review { display:grid; gap:16px; min-width:0; }
body .studio-shell .fi-fo-toggle.fi-toggle { width:44px!important; height:24px!important; min-height:24px!important; border-radius:999px!important; flex-shrink:0; }
body .studio-shell .fi-fo-toggle.fi-toggle::after { content:""; position:absolute; inset:-10px 0; }
body .studio-shell .fi-fo-field:has(.fi-fo-toggle) { min-height:44px; align-content:center; }
body .studio-shell .portal-registration-review .fi-section-header { padding:12px 16px!important; background:#f0ecfa!important; }
body .studio-shell .portal-registration-review .fi-section-header-heading { font-size:15px!important; line-height:1.4; }
body .studio-shell .portal-registration-review .fi-section-not-contained { border:0!important; background:transparent!important; box-shadow:none!important; }
body .studio-shell .portal-registration-review .fi-section-not-contained > .fi-section-content-ctn > .fi-section-content { padding:0!important; }
body .studio-shell .faith-main .fi-sc.fi-sc-has-gap { column-gap:16px!important; row-gap:12px!important; }
body .studio-shell .faith-main .fi-fo-field { row-gap:4px!important; }
body .studio-shell .faith-main .fi-fo-field-wrp-label { font-size:13px!important; }
@media(min-width:768px) {
 body .studio-shell .faith-main :is(.fi-fo-text-input.fi-input-wrp,.fi-select-input-wrp) { min-height:38px!important; }
 body .studio-shell .faith-main :is(.fi-input,.fi-select-input-btn) { min-height:36px!important; padding-top:6px!important; padding-bottom:6px!important; font-size:14px!important; }
}
@media(max-width:767px) {
 body .studio-shell .portal-registration-review .fi-section-header { padding:10px 12px!important; }
 body .studio-shell .portal-registration-review .fi-section-not-contained > .fi-section-content-ctn > .fi-section-content { padding:0!important; }
}
body:is(.faith-public,.faith-admissions), .studio-auth { background:linear-gradient(125deg,#eee6f8 0%,#e9f2fa 55%,#faf0dd 100%)!important; color:var(--studio-ink); }
.faith-public-header { background:#fffffff5!important; border-bottom:1px solid var(--studio-line)!important; box-shadow:none!important; padding:14px 28px!important; min-height:76px!important; gap:22px!important; }
.faith-public-header .faith-brand { flex:0 1 390px!important; }
.faith-public-header .faith-brand strong { font-size:18px!important; color:var(--studio-ink)!important; }
.faith-public-header .faith-brand small { white-space:normal!important; font-size:13px!important; line-height:1.4!important; max-width:none!important; color:#526477!important; }
@media(min-width:1440px) {
    .faith-public-header .faith-brand { flex:0 0 auto!important; }
    body .faith-public-header .faith-brand small { white-space:nowrap!important; font-size:14px!important; }
}
.faith-public-header .faith-brand img { width:44px!important; height:44px!important; }
.faith-public-header nav { gap:18px!important; margin-left:auto; }
.faith-public-header nav>a { font-size:12px!important; font-weight:550; }
.faith-public-header .faith-button { border-radius:8px!important; min-height:40px!important; padding:9px 12px!important; box-shadow:none!important; font-size:12px!important; }
.faith-public-header .faith-public-actions { gap:7px; }
.faith-footer { background:#e5e8f4!important; border-top:1px solid #ced6e6; padding:28px!important; gap:24px!important; }
.faith-footer .faith-brand { max-width:390px!important; }
.faith-footer .faith-brand img { width:44px!important; height:44px!important; }
.faith-footer .faith-brand small { font-size:12px!important; }
.faith-scripture { min-height:140px!important; padding:28px 20px!important; }
.faith-scripture p { font-size:24px!important; }
/* Sign in: one focused form, with artwork secondary to the task. */
.studio-auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(340px,440px); align-items:center; gap:64px; max-width:1160px; margin:auto; padding:48px 28px; }
.studio-auth-story h2 { font:600 clamp(30px,3.5vw,46px)/1.12 sans-serif; letter-spacing:-.025em; color:#453775; margin:14px 0; }
.studio-auth-story>p { font-size:15px; line-height:1.7; max-width:400px; color:#526477; }
.studio-auth-story>img { width:100%; height:230px; object-fit:cover; object-position:center 18%; margin-top:24px; border-radius:16px; }
.studio-auth-story blockquote { font:italic 18px/1.5 sans-serif; color:#49615b; margin:18px 0 0; }
.studio-auth-story cite { display:block; font:11px/1.8 sans-serif; }
.studio-auth .faith-auth-card { width:100%; max-width:none; padding:30px!important; border:1px solid var(--studio-line)!important; border-radius:16px!important; box-shadow:0 12px 40px #203b3706!important; background:#fff; }
.studio-auth .faith-auth-card h1 { font:750 27px/1.2 sans-serif!important; letter-spacing:-.035em; text-align:left!important; margin:10px 0!important; }
.studio-auth .faith-auth-intro { text-align:left!important; font-size:13px; color:var(--studio-muted); margin:0 0 24px!important; }
.studio-auth .faith-field>span { font-size:13px; font-weight:650; }
.studio-auth .faith-field>div { min-height:44px!important; border:1px solid #c5d1dd!important; background:white!important; border-radius:8px!important; }
.studio-auth .faith-field input { font-size:15px!important; min-width:0; padding:11px 8px!important; background:transparent; }
.studio-auth .faith-field button { min-width:44px; min-height:42px; }
.studio-auth .faith-auth-fields { display:grid; gap:18px; }
.studio-auth .faith-form-meta { font-size:12px; gap:12px; flex-wrap:wrap; }
.studio-auth .faith-auth-fields>.faith-button { min-height:44px; border-radius:8px; background:#215dc3; box-shadow:none; font-size:14px; }
.studio-auth .faith-auth-join { border-top:1px solid var(--studio-line); margin-top:24px; padding-top:20px; }
.studio-auth .faith-auth-join>p { font-size:12px; color:var(--studio-muted); margin-bottom:12px; }
.studio-auth .faith-auth-join>div { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.studio-auth .faith-auth-join a { padding:12px 8px; font-size:12px; line-height:1.4; border-radius:8px; background:#f5f7fa; border:1px solid var(--studio-line); text-align:center; display:grid; justify-items:center; gap:6px; }
.studio-auth .faith-auth-join svg { width:20px; height:20px; }
.studio-auth .faith-auth-home { margin-top:18px; font-size:12px; display:inline-flex; align-items:center; gap:8px; min-height:40px; }
.studio-auth .faith-auth-home svg { width:16px; height:16px; }
.studio-auth .faith-auth-demo { margin-top:18px; font-size:12px; }
.studio-auth .faith-scripture { display:none; }
.studio-auth .faith-footer { display:flex!important; }
/* Registration: retain every field and validation contract in a compact reading column. */
.faith-admissions .faith-admission-hero { min-height:0!important; padding:30px max(24px,calc((100vw - 1040px)/2))!important; background:#edf1e9!important; }
.faith-admissions .faith-admission-hero>div { max-width:740px!important; width:100%!important; }
.faith-admissions .faith-admission-hero h1 { font:750 30px/1.2 sans-serif!important; letter-spacing:-.035em; margin:8px 0!important; }
.faith-admissions .faith-admission-hero p { font-size:14px!important; margin:0!important; }
.faith-admissions .faith-admission-hero .faith-values { display:none!important; }
.faith-admissions .faith-admission-shell { width:calc(100% - 48px)!important; max-width:1040px!important; margin:24px auto 40px!important; padding:0!important; }
.faith-admissions .faith-admission-form { padding:24px!important; border:1px solid var(--studio-line)!important; border-radius:16px!important; box-shadow:none!important; background:white!important; }
.faith-admissions .faith-form-progress { padding:0 0 20px!important; margin-bottom:20px!important; border-bottom:1px solid var(--studio-line); }
.faith-admissions .progress { gap:6px!important; margin:0!important; }
.faith-admissions .dot { padding:8px 4px!important; font-size:11px!important; gap:7px!important; }
.faith-admissions .dot b { width:28px!important; height:28px!important; font-size:12px!important; border-radius:8px!important; }
.faith-admissions .faith-form-required-note { margin:12px 0 0!important; padding:0!important; font-size:11px!important; }
.faith-admissions .faith-admission-form .step.active { padding:0!important; border:0!important; box-shadow:none!important; background:none!important; }
.faith-admissions .faith-admission-hero>div { padding:0!important; background:none!important; }
.faith-admissions .faith-form-progress-summary { padding:0!important; }
.faith-admissions .step h2 { font:700 21px/1.3 sans-serif!important; color:var(--studio-ink)!important; margin:0 0 8px!important; }
.faith-admissions .step .hint { font-size:13px!important; margin:0 0 20px!important; color:var(--studio-muted)!important; }
.faith-admissions .row { gap:16px!important; margin-bottom:16px!important; }
.faith-admissions label { font-size:13px!important; line-height:1.5!important; gap:6px!important; }
.faith-admissions :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea) { min-height:44px!important; padding:10px 12px!important; border:1px solid #becbd8!important; border-radius:8px!important; box-shadow:none!important; font-size:15px!important; background:#fff!important; }
.faith-admissions textarea { min-height:90px!important; }
.faith-admissions :is(.choice,.option-panel) { padding:12px!important; background:#f7f9fb!important; border:1px solid #e0e6ed!important; border-radius:10px!important; margin:12px 0!important; }
.faith-admissions .choice label { min-height:32px; align-items:center; }
.faith-admissions :is(.check,input[type=checkbox],input[type=radio]) { accent-color:#215dc3; }
.faith-admissions .password-panel { padding:12px!important; background:#f7f9fb!important; border-radius:8px!important; }
.faith-admissions .password-rules { gap:6px 16px!important; font-size:11px!important; }
.faith-admissions .photo-step-card { gap:16px!important; }
.faith-admissions .photo-panel { padding:16px!important; }
.faith-admissions .crop-workspace-shell { display:none; }
.faith-admissions .photo-step-card { grid-template-columns:1fr 1fr!important; }
.faith-admissions .photo-drop { min-height:110px!important; }
.faith-admissions .profile-preview { max-width:120px; margin-inline:auto; }
.studio-home-hero { max-width:1280px; margin:0 auto; padding:56px 32px 36px; display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.studio-home-copy h1 { font:650 clamp(40px,4.5vw,64px)/1.08 sans-serif; color:#243b61; letter-spacing:-.04em; margin:18px 0; }
.studio-home-copy h1 em { font-style:normal; color:#7652bf; }
.studio-home-copy>p { font-size:17px; line-height:1.7; max-width:460px; color:#526477; }
.studio-home-copy>p.studio-church-name { font-size:12px; margin-top:14px; color:#405573; }
.studio-home-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.studio-home-actions .faith-button { min-height:46px; border-radius:10px; background:#6546b1; border-color:#6546b1; box-shadow:none; font-size:14px; padding:12px 20px; }
.studio-home-actions .faith-button.outline { background:white; color:#513893; border-color:#d1c5ea; }
.studio-teacher-link { display:flex; gap:8px; align-items:center; font-size:12px; margin-top:20px; color:#4c5e76; line-height:1.6; }
.studio-teacher-link svg { flex:none; width:18px; height:18px; }
.studio-home-picture { position:relative; margin:0; height:390px; border-radius:100px 22px 100px 22px; background:#fff1ce; overflow:hidden; border:8px solid #fff1ce; }
.studio-home-picture img { width:100%; height:100%; object-fit:cover; object-position:78% center; }
.studio-home-picture figcaption { position:absolute; bottom:24px; left:24px; right:24px; width:fit-content; padding:10px 16px; border-radius:12px; background:#ffffffed; font-size:13px; color:#563d86; font-weight:650; }
.studio-home-picture figcaption span { color:#d48b16; padding-right:6px; }
.studio-values-strip { max-width:1216px; margin:0 auto 30px; padding:20px 28px; border-radius:16px; background:#f0eafb; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.studio-values-strip .faith-values { flex:1; margin:0!important; max-width:720px; }
.studio-values-strip .faith-values>div { display:grid; grid-template-columns:32px 1fr; column-gap:10px; justify-items:start; border:0; }
.studio-values-strip .faith-values svg { grid-column:1; grid-row:1/3; width:26px; height:26px; align-self:center; }
.studio-values-strip .faith-values strong { font-size:13px; color:#342454; }
.studio-values-strip .faith-values small { font-size:11px; color:#5c4e74; }
.studio-values-strip>a { display:flex; gap:8px; align-items:center; font-size:12px; color:#514072; }
.studio-values-strip>a svg { width:18px; height:18px; }
.faith-public .faith-home-section { max-width:1280px; margin:auto; padding:34px 32px!important; }
.faith-public .faith-home-section.tint { background:#f1f5ff!important; border-radius:24px; }
.faith-public .faith-home-section h2 { font:700 27px/1.2 sans-serif!important; letter-spacing:-.03em; color:#253b5d; }
.faith-public .faith-home-section>header p { font-size:14px; line-height:1.6; margin-top:8px; }
.faith-public .faith-experiences { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr))!important; grid-auto-flow:row!important; gap:18px!important; overflow:visible!important; }
.faith-public .faith-experience { border:1px solid #dce4ef; border-radius:14px; overflow:hidden; box-shadow:none; }
.faith-public .faith-experience>img { height:140px!important; }
.faith-public .faith-experience>div { padding:18px; }
.faith-public .faith-experience strong { font-size:14px; }
.faith-public .faith-experience p { font-size:12px; line-height:1.6; margin-top:6px; }
.faith-public .faith-resources { display:grid!important; grid-template-columns:repeat(5,minmax(0,1fr))!important; grid-auto-flow:row!important; gap:16px!important; overflow:visible!important; }
.faith-public .faith-resource-link { border-radius:12px; border:1px solid #e1e4ee; overflow:hidden; box-shadow:none; }
.faith-public .faith-resource-link .faith-resource-art { height:110px!important; }
.faith-public .faith-resource-link strong { font-size:13px; padding:14px; }
/* Collection and editor primitives are shared by resource pages. */
.studio-shell .portal-collection-header { display:flex!important; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px!important; background:#eee8ff!important; border:1px solid #dcd2f2!important; border-radius:12px!important; box-shadow:none!important; min-height:0!important; }
.studio-shell .portal-collection-heading { display:flex; align-items:center; gap:16px; min-width:0; flex:1 1 260px; }
.studio-shell .portal-collection-symbol { width:48px!important; height:48px!important; border-radius:14px!important; background:#7750c6!important; color:white!important; flex:none; display:grid; place-items:center; }
.studio-shell .portal-collection-symbol svg { width:25px; height:25px; }
.studio-shell .portal-collection-heading h1 { font-size:21px!important; line-height:1.3; color:#302253!important; letter-spacing:-.025em; margin:2px 0!important; }
.studio-shell .portal-collection-heading p { font-size:13px!important; color:#5c4e74!important; max-width:600px; line-height:1.6; }
.studio-shell .portal-eyebrow { font-size:10px; color:#655584; letter-spacing:.08em; font-weight:700; }
.studio-shell .portal-collection-tools { display:flex; align-items:center; gap:18px; }
.studio-shell .portal-collection-total { background:#ffffffb3!important; padding:10px 14px!important; border-radius:10px; min-width:0!important; }
.studio-shell .portal-collection-total strong { font-size:22px!important; color:#56388c; }
.studio-shell .portal-collection-total span { font-size:11px!important; }
.studio-shell .portal-library-layout { display:grid!important; grid-template-columns:1fr!important; gap:18px!important; }
.studio-shell .msoc-library-filters { position:static!important; display:flex!important; flex-wrap:wrap!important; align-items:end; gap:12px!important; padding:16px!important; background:white!important; border:1px solid var(--studio-line)!important; border-radius:12px!important; width:100%!important; }
.studio-shell .msoc-library-filters label { flex:1 1 150px; min-width:0; display:grid; gap:6px; font-size:12px; }
.studio-shell .msoc-library-filters label:first-child { flex:2 1 220px; }
.studio-shell .msoc-library-filters :is(input,select) { width:100%; min-width:0; padding:10px 12px; min-height:42px; font-size:14px; border:1px solid #c5d1df; border-radius:8px; background:white; }
.studio-shell .msoc-library-filters>button { min-height:42px; padding:10px 18px; border-radius:8px; font-size:13px; background:#6546b1; color:white; }
.studio-shell .msoc-library-grid { display:grid!important; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))!important; gap:16px!important; }
.studio-shell .msoc-library-card { padding:18px!important; border:1px solid var(--studio-line)!important; border-radius:14px!important; box-shadow:none!important; background:white!important; }
.studio-shell .msoc-library-card h3 { font-size:16px!important; line-height:1.45; margin:14px 0 8px; }
.studio-shell .msoc-library-card p { font-size:13px!important; line-height:1.6; }
.studio-shell .discovery-cover { height:72px!important; min-height:0!important; padding:10px 16px!important; align-items:center; border-radius:9px; }
.studio-shell .discovery-art svg { width:36px!important; height:36px!important; }
.studio-shell .faith-editor-fields { padding:20px!important; background:white!important; border:1px solid var(--studio-line); border-radius:12px; }
.studio-editor-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; margin-bottom:18px; }
.studio-editor-heading .studio-back-link { grid-column:1/-1; display:flex; align-items:center; gap:8px; font-size:12px; color:#4e6076; width:fit-content; min-height:32px; }
.studio-back-link svg { width:16px; height:16px; }
.studio-editor-heading h1 { font-size:25px!important; line-height:1.3!important; margin:6px 0 0; }
.studio-shell .faith-editor-banner { margin-bottom:16px; }
.studio-shell .faith-section-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 16px; }
.studio-shell .faith-section-tabs button { padding:9px 12px; min-height:40px; border:1px solid #d7dfea; border-radius:8px; background:white; font-size:12px; }
.studio-shell .fi-page:has(.portal-workspace h1) .fi-header-heading { display:none!important; }
.studio-shell .fi-header-heading::after { display:none!important; }
.studio-shell .pm-page { margin:0; padding:0; background:none; border-radius:0; }
.studio-shell .pm-hero { background:#fff0d4; border:1px solid #eed5a6; box-shadow:none; border-radius:14px; padding:20px; }
.studio-shell .pm-hero::after { display:none; }
.studio-shell .pm-title h1 { font-size:25px; font-weight:750; }
.studio-shell .pm-title p { font-size:13px; font-weight:400; color:#5d513e; }
.studio-shell .pm-motto { min-width:120px; font-size:17px; }
.studio-shell .pm-tabs { border:0; gap:8px; flex-wrap:wrap; margin:18px 0; }
.studio-shell .pm-tab { min-width:0; min-height:42px; padding:10px 18px; border-radius:8px; box-shadow:none; background:#fff; border:1px solid var(--studio-line); font-size:13px; font-weight:650; }
.studio-shell .pm-tab.active { background:#6847ad; border-color:#6847ad; color:white; box-shadow:none; }
.studio-shell .pm-toolbar { padding:14px; border:1px solid var(--studio-line); background:white; border-radius:10px; flex-wrap:wrap; }
.studio-shell .pm-search { min-width:0; flex:2 1 180px; }
.studio-shell .pm-select { flex:1 1 140px; max-width:none; }
.studio-shell :is(.pm-input,.pm-select) { border-radius:8px; box-shadow:none; font-size:14px; font-weight:400; min-height:42px; }
.studio-shell :is(.pm-card-grid,.pm-people-grid) { grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:16px; }
.studio-shell :is(.pm-parish-card,.pm-person-card) { padding:18px; box-shadow:none; border-color:var(--studio-line); border-radius:14px; }
.studio-shell .pm-person-wide { padding:14px!important; gap:12px!important; min-height:0!important; background:#fff!important; border:1px solid #dce4ef!important; border-radius:12px!important; box-shadow:0 2px 6px #25365108!important; font-family: sans-serif !important; }
.studio-shell .pm-people-grid { align-items:start!important; }
.studio-shell .pm-person-wide { grid-template-rows:auto auto auto; }
.studio-shell .pm-person-top { grid-template-columns:40px minmax(0,1fr) auto; gap:10px; align-items:start; }
.studio-shell .pm-person-wide .pm-avatar { width:40px; height:40px; font-size:13px; box-shadow:none; }
.studio-shell .pm-person-wide h2 { white-space:normal; overflow-wrap:anywhere; font-size:15px; line-height:1.4; font-weight:650; }
.studio-shell .pm-person-main { min-width:0; }
.studio-shell .pm-person-main > .pm-muted { display:block; white-space:normal!important; overflow:visible!important; text-overflow:clip!important; overflow-wrap:anywhere; font-size:13px; line-height:1.45; font-weight:400; }
.studio-shell .pm-person-wide .pm-count-pill { min-width:44px; padding:6px; border-radius:8px; }
.studio-shell .pm-person-wide .pm-count-pill strong { font-size:15px; font-weight:650; }
.studio-shell .pm-person-wide .pm-person-meta :is(.pm-chip,.pm-status) { font-size:11px; font-weight:600; padding:4px 7px; }
.studio-shell .pm-assigned-box { padding-top:10px; gap:6px; }
.studio-shell .pm-assigned-label { font-size:12px; letter-spacing:.04em; font-weight:650; color:#52647b; }
.studio-shell .pm-church-assignments { display:grid; gap:8px; list-style:none; padding:0; margin:0; min-width:0; }
.studio-shell .pm-church-assignments li { display:grid; gap:4px; border-left:3px solid #d4e0f5; padding:2px 0 2px 9px; min-width:0; }
.studio-shell .pm-assignment-church { font-size:13px; font-weight:500; line-height:1.45; color:#203b5c; overflow-wrap:anywhere; }
.studio-shell .pm-assignment-role { justify-self:start; font-size:11px; line-height:1.4; padding:3px 7px; border-radius:5px; background:#f1f4f8; color:#4e6076; }
.studio-shell .pm-assignment-role.is-primary { background:#e7f1ff; color:#24599d; }
.studio-shell .pm-assignment-role-field { display:grid; gap:4px; margin-top:8px; color:#52647b; font-size:12px; }
.studio-shell .pm-assignment-role-field .pm-select { min-height:44px!important; height:44px!important; font-size:14px; padding:8px 10px; max-width:100%; }
.studio-shell .pm-drawer-head p { color:#53647b!important; font-size:13px; font-weight:400!important; }
.studio-shell .pm-drawer-head > .pm-btn { width:auto!important; flex:none!important; min-height:44px; }
.studio-shell .pm-drawer-body .pm-leader-card > div { min-width:0; }
.studio-shell .pm-drawer-body .pm-leader-card strong { white-space:normal; overflow-wrap:anywhere; font-size:14px; font-weight:600; line-height:1.4; }
.studio-shell .pm-drawer-body .pm-leader-card .pm-actions .pm-btn { min-height:44px; }
.studio-shell .pm-person-wide .pm-actions { gap:8px!important; }
.studio-shell .pm-person-wide .pm-btn { min-height:44px; font-size:13px; font-weight:600; padding:8px 10px; box-shadow:none; }
@media(max-width:767px) {
 body .studio-shell .pm-people-grid { grid-template-columns:minmax(0,1fr)!important; gap:12px!important; }
 body .studio-shell .pm-person-top { grid-template-columns:40px minmax(0,1fr) auto!important; }
 body .studio-shell .pm-drawer-body .pm-leader-card { grid-template-columns:24px minmax(0,1fr)!important; align-items:start; padding:12px; box-shadow:none; }
 body .studio-shell .pm-drawer-body .pm-leader-card > .pm-actions { grid-column:2; display:flex; flex-wrap:wrap; gap:8px; }
 body .studio-shell .pm-drawer-body .pm-leader-card > .pm-actions .pm-btn { width:auto!important; flex:0 0 auto!important; font-size:13px; padding:8px 10px; }
 body .studio-shell .pm-drawer-body .pm-leader-card .pm-assignment-role-field select { width:100%; max-width:none; font-size:16px; }
}
.studio-shell .pm-parish-head { grid-template-columns:68px minmax(0,1fr); align-items:center; gap:12px; }
.studio-shell .pm-photo { width:68px; height:58px; }
.studio-shell .pm-status { grid-column:2; justify-self:start; padding:3px 8px; }
.studio-shell .pm-card-title { font-size:16px; font-weight:700; line-height:1.4; }
.studio-shell :is(.pm-location,.pm-muted) { font-size:12px; font-weight:500; }
.studio-shell .pm-btn { border-radius:8px; box-shadow:none; min-height:40px; font-size:12px; font-weight:650; }
.studio-shell .pm-modal { border-radius:16px; background:white; }
.studio-shell .pm-modal-head { background:#263d66; }
.studio-shell .pm-modal-head h2 { font-weight:700; }
.studio-shell .pm-form-grid label { font-weight:600; }
.studio-shell .pm-form-grid :is(input,select) { border-radius:8px; box-shadow:none; min-height:44px; }
.studio-shell .mp-head h1 { font-size:25px; font-weight:750; }
.studio-shell .mp-head p { font-size:13px; font-weight:400; }
.studio-shell .mp-actions { gap:8px; }
.studio-shell :is(.mp-photo-btn,.mp-secondary,.mp-submit) { font-size:13px; font-weight:650; min-height:42px; padding:10px 14px; border-radius:8px; box-shadow:none; }
.studio-shell .mp-photo-btn { background:#365bd6; }
.studio-shell .mp-shell { grid-template-columns:300px minmax(0,1fr); gap:20px; }
.studio-shell .mp-summary { background:#efeafb; border:1px solid #dcd2ee; box-shadow:none; border-radius:14px; }
.studio-shell .mp-summary-body { grid-template-columns:1fr; padding:20px; gap:14px; }
.studio-shell .mp-avatar { width:64px; height:80px; border-radius:10px; background:#6847ad; box-shadow:none; }
.studio-shell .mp-summary h2 { font-size:21px; font-weight:750; }
.studio-shell .mp-summary p { font-size:13px; font-weight:400; color:#574a70; }
.studio-shell .mp-summary-list { grid-template-columns:1fr; gap:8px; }
.studio-shell .mp-summary-list article { padding:10px; border-radius:8px; }
.studio-shell :is(.mp-card,.mp-section,.mp-edit) { border-radius:12px; box-shadow:none; border-color:var(--studio-line); padding:18px; }
.studio-shell .mp-card h3,.studio-shell .mp-section h3 { font-size:16px; font-weight:700; }
.studio-shell :is(.mp-card p,.mp-section p,.mp-card small) { font-size:13px; font-weight:400; color:var(--studio-muted); }
.studio-shell .mp-field { padding:10px 12px; border-radius:8px; }
.studio-shell .mp-field strong { font-weight:600; font-size:13px; }
.studio-shell .mp-tabs { box-shadow:none; border-radius:10px; gap:4px; }
.studio-shell .mp-tabs button { font-weight:650; font-size:12px; min-height:40px; border-radius:7px; padding:9px 12px; }
.studio-shell .mp-tabs button.is-active { background:#6847ad; color:#fff; box-shadow:none; }
.studio-shell .mp-edit-grid label { font-weight:600; }
.studio-shell .mp-edit-grid :is(input,select,textarea) { border-radius:8px; min-height:44px; }
.studio-shell .mp-modal-card { max-height:calc(100dvh - 24px); border-radius:14px; }
.studio-shell .mp-controls button { min-height:44px; border-radius:8px; font-size:12px; }
@media(max-width:1200px) {
    .studio-shell .mp-shell { grid-template-columns:1fr; }
    .studio-shell .mp-summary-body { grid-template-columns:64px minmax(0,1fr); }
    .studio-shell .mp-summary-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .faith-public-header nav { gap:12px!important; }
    .faith-public-header .faith-brand { flex-basis:285px!important; }
    .studio-shell .faith-dashboard-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .studio-shell .faith-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:1023px) {
    .studio-shell .faith-sidebar { width:min(300px,calc(100vw - 48px))!important; transform:translateX(-100%)!important; transition:transform .2s ease; }
    .studio-shell .faith-sidebar.is-open { transform:translateX(0)!important; }
    .studio-shell .faith-app-content { margin-left:0!important; }
    .studio-shell .faith-mobile-only { display:inline-flex!important; }
    .studio-shell .faith-sidebar-brand { display:flex!important; gap:10px; }
    .studio-shell .faith-sidebar-brand>.faith-icon-button { color:white; flex:none; }
    .studio-shell .faith-nav-scrim { position:fixed; inset:0; z-index:39; display:block; background:#142a4066; backdrop-filter:blur(2px); }
    .faith-public-header nav { margin:0; }
    .faith-public-header .faith-brand { flex:1 1 auto!important; }
    .studio-auth-layout { gap:32px; }
}
@media(max-width:760px) {
    .studio-shell .faith-editor-fields { padding:16px!important; }
    .studio-shell .studio-page-actions { margin-left:0; }
    .studio-shell .fi-ta-table-stacked-on-mobile>tbody>tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; padding:16px; position:relative; }
    .studio-shell .fi-ta-table-stacked-on-mobile>tbody>tr>.fi-ta-cell { min-width:0; padding:0!important; font-size:13px; }
    .studio-shell .fi-ta-table-stacked-on-mobile>tbody>tr>.fi-ta-cell:nth-child(2) { grid-column:1/-1; padding-right:28px!important; }
    .studio-shell .fi-ta-table-stacked-on-mobile>tbody>tr>.fi-ta-selection-cell { position:absolute; right:16px; top:16px; }
    .studio-shell .fi-ta-table-stacked-on-mobile>tbody>tr>.fi-ta-cell:has(.fi-ta-actions) { grid-column:1/-1; }
    .studio-shell .pm-motto { display:none; }
    .studio-shell .pm-title { min-width:0; }
    .studio-shell .pm-title-icon { flex:none; }
    .studio-shell .pm-title h1 { font-size:22px; }
    .studio-shell .pm-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
    .studio-shell .pm-tab { padding:10px 6px; font-size:12px; gap:6px; }
    .studio-shell .pm-tab svg { width:16px; flex:none; }
    .studio-shell :is(.pm-input,.pm-select,.pm-form-grid input,.pm-form-grid select,.mp-edit-grid input,.mp-edit-grid select,.mp-edit-grid textarea) { font-size:16px; }
    .studio-shell .pm-toolbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; align-items:center; }
    .studio-shell .pm-toolbar .pm-search { grid-column:1/-1; flex:none; min-width:0; }
    .studio-shell .pm-toolbar :is(.pm-search,.pm-select) { flex:none; width:100%; height:44px; min-height:44px; max-height:44px; padding:8px 10px; font-size:16px; }
    .studio-shell .pm-toolbar :is(.pm-reset,.pm-btn) { width:auto; min-height:44px; margin:0; padding:8px 12px; justify-self:start; }
    .studio-shell .pm-modal { max-height:calc(100dvh - 24px); width:100%; }
    .studio-shell .pm-modal-backdrop { padding:12px; }
    .studio-shell .mp-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; }
    .studio-shell .mp-actions>.mp-photo-btn { grid-column:1/-1; width:100%; }
    .studio-shell .mp-summary-body { padding:16px; gap:12px; }
    .studio-shell .mp-summary-body>div:nth-child(2) { min-width:0; }
    .studio-shell .mp-summary h2 { font-size:19px; }
    .studio-shell .mp-summary p { font-size:12px; }
    .studio-shell .mp-summary-list { gap:8px; }
    .studio-shell .mp-summary-list strong { font-size:12px; }
    .studio-home-hero { grid-template-columns:1fr; gap:26px; padding:30px 20px 24px; }
    .studio-home-copy h1 { font-size:42px; margin:14px 0; }
    .studio-home-copy>p { font-size:15px; }
    .studio-home-picture { height:230px; border-radius:60px 18px 60px 18px; border-width:5px; }
    .studio-home-actions { margin-top:22px; }
    .studio-home-actions .faith-button { flex:1; padding:11px 12px; min-height:44px; font-size:13px; white-space:nowrap; gap:8px; }
    .studio-values-strip { margin:0 14px 12px; padding:18px; flex-direction:column; gap:16px; }
    .studio-values-strip .faith-values { display:grid; grid-template-columns:1fr 1fr; gap:18px; width:100%; }
    .faith-public .faith-home-section { padding:28px 20px!important; }
    .faith-public .faith-home-section h2 { font-size:23px!important; }
    .faith-public .faith-experiences,.faith-public .faith-resources { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px!important; margin:0!important; padding:0!important; }
    .faith-public .faith-experience>img { height:110px!important; }
    .faith-public .faith-experience>div { display:block; padding:12px; }
    .faith-public .faith-experience>div>svg { width:22px; height:22px; margin-bottom:8px; }
    .faith-public .faith-experience strong { font-size:13px; }
    .faith-public .faith-community-stats { grid-template-columns:1fr; }
    .studio-shell .portal-collection-header { padding:14px!important; gap:12px; }
    .studio-shell .portal-collection-heading { gap:12px; }
    .studio-shell .portal-collection-heading h1 { font-size:22px!important; }
    .studio-shell .portal-collection-symbol { width:40px!important; height:40px!important; }
    .studio-shell .portal-collection-tools { width:100%; justify-content:space-between; }
    .studio-shell .portal-collection-total { display:flex; gap:8px; align-items:center; padding:6px 10px!important; }
    .studio-shell .portal-collection-total strong { font-size:17px!important; }
    .studio-shell .msoc-library-filters :is(input,select) { font-size:16px; min-height:44px; }
    .studio-shell .msoc-library-filters>button { flex:0 0 auto; width:auto; min-height:44px; }
    .studio-shell .faith-topbar { min-height:60px!important; padding:10px 14px!important; gap:10px!important; }
    .studio-shell .faith-main { padding:16px 14px 28px!important; }
    .studio-shell .faith-search { width:auto; flex:1; min-width:0; }
    .studio-shell .faith-icon-button { width:40px; min-height:40px; flex:none; }
    .studio-shell .faith-account-menu summary>svg { display:none; }
    .studio-shell .portal-avatar { width:34px; height:34px; font-size:12px; }
    .studio-shell .faith-dashboard { gap:14px; }
    .studio-shell .fi-header-heading { font-size:22px!important; }
    .studio-welcome { grid-template-columns:1fr; }
    .studio-welcome-copy { padding:22px; }
    .studio-welcome h1 { font-size:26px; }
    .studio-welcome p { font-size:13px; }
    .studio-welcome-art { height:112px; min-height:0; }
    .studio-welcome-art img { object-position:76% 47%; }
    .studio-welcome-art::after { background:linear-gradient(180deg,#eee8ff,transparent 50%); }
    .studio-welcome-art figcaption { font-size:15px; bottom:10px; right:12px; }
    .studio-shell .faith-panel { padding:16px!important; }
    .studio-shell .faith-dash-columns { grid-template-columns:1fr; gap:14px; }
    .studio-shell .faith-launcher { grid-template-columns:32px minmax(0,1fr); padding:14px 12px!important; gap:9px; }
    .studio-shell .faith-launcher>svg { display:none; }
    .studio-shell .faith-launcher .faith-icon-tile { width:32px; height:32px; }
    .studio-shell .faith-launcher strong { font-size:12px; }
    .studio-shell .faith-launcher small { font-size:11px; }
    .studio-shell .faith-session-bar { padding:14px; }
    .studio-shell .faith-session-action { text-align:left; }
    .studio-shell .faith-session-action .faith-button { min-height:44px; }
    .studio-shell .faith-stat { padding:14px; gap:10px; }
    .studio-shell .faith-stat strong { font-size:23px; }
    .studio-profile-details>summary { padding:12px; gap:10px; }
    .studio-shell .faith-profile-facts { grid-template-columns:1fr; }
    .studio-shell :is(.fi-input,.fi-select-input,.fi-fo-textarea) { font-size:16px!important; min-height:44px; }
    .studio-shell .fi-section-content { padding:16px!important; }
    .studio-shell .fi-btn { min-height:44px; }
    .studio-shell .msoc-notification-dropdown { position:fixed; top:66px; left:12px; right:12px; width:auto; max-width:none; }
    .faith-public-header { padding:12px 14px!important; min-height:72px!important; gap:10px!important; }
    .faith-public-header .faith-brand { display:grid!important; grid-template-columns:32px minmax(0,1fr) 32px; gap:7px!important; }
    .faith-public-header .faith-brand img { width:32px!important; height:32px!important; }
    .faith-public-header .faith-brand strong { font-size:15px!important; }
    .faith-public-header .faith-brand small { font-size:11px!important; max-width:none!important; line-height:1.3!important; letter-spacing:0!important; }
    .faith-public-header .faith-public-actions { display:none!important; }
    .faith-public-header [data-public-menu] { display:flex!important; width:40px!important; min-width:40px; height:44px; align-items:center; justify-content:center; }
    .faith-public-header nav { top:100%!important; max-height:calc(100dvh - 80px); overflow-y:auto; }
    .faith-footer { padding:24px 18px!important; flex-direction:column; align-items:flex-start!important; }
    .faith-footer .faith-brand { grid-template-columns:38px minmax(0,1fr) 38px!important; }
    .faith-footer .faith-brand img { width:38px!important; height:38px!important; }
    .faith-footer .faith-brand strong { font-size:17px!important; }
    .faith-footer .faith-brand small { font-size:11px!important; }
    .studio-auth-layout { display:flex; flex-direction:column; gap:20px; padding:24px 16px; }
    .studio-auth-story { width:100%; display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:6px 12px; align-items:center; }
    .studio-auth-story .studio-eyebrow { font-size:9px; grid-column:1; }
    .studio-auth-story h2 { font-size:26px; margin:4px 0; grid-column:1; }
    .studio-auth-story>p,.studio-auth-story>blockquote { display:none; }
    .studio-auth-story>img { grid-column:2; grid-row:1/3; height:110px; width:100px; margin:0; object-position:57% 30%; }
    .studio-auth .faith-auth-card { padding:22px!important; border-radius:14px!important; }
    .studio-auth .faith-auth-card h1 { font-size:24px!important; }
    .studio-auth .faith-field input { font-size:16px!important; }
    .studio-auth .faith-auth-card>.studio-eyebrow { display:none; }
    .faith-admissions .faith-admission-hero { padding:24px 18px!important; }
    .faith-admissions .faith-admission-hero .faith-eyebrow { display:none; }
    .faith-admissions .faith-admission-hero h1 { font-size:25px!important; }
    .faith-admissions .faith-admission-hero p { font-size:13px!important; }
    .faith-admissions .faith-admission-shell { width:calc(100% - 24px)!important; margin:16px auto 24px!important; }
    .faith-admissions .faith-admission-form { padding:18px!important; border-radius:12px!important; }
    .faith-admissions .faith-form-progress-summary { display:flex!important; justify-content:space-between; gap:10px; margin-bottom:12px; font-size:12px; }
    .faith-admissions .progress { display:grid!important; grid-template-columns:repeat(8,minmax(0,1fr))!important; overflow:hidden!important; gap:4px!important; }
    .faith-admissions .dot { min-width:0!important; padding:0!important; border:0!important; min-height:4px!important; background:#e0e6ec!important; border-radius:4px!important; }
    .faith-admissions .dot.active { background:#215dc3!important; }
    .faith-admissions .dot :is(b,span) { display:none!important; }
    .faith-admissions .row { grid-template-columns:1fr!important; gap:14px!important; }
    .faith-admissions :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea) { font-size:16px!important; }
    .faith-admissions .phone-row { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)!important; }
    .faith-admissions .photo-step-card { grid-template-columns:1fr!important; }
    .faith-admissions .password-rules { grid-template-columns:1fr 1fr!important; font-size:11px!important; }
}
@media(prefers-reduced-motion:reduce) { .studio-shell * { transition:none!important; scroll-behavior:auto!important; } }

/* Public experience: warm editorial layout and a focused, coordinated sign-in. */
.studio-approval-callout { order:1; display:flex; align-items:center; gap:16px; padding:18px; background:#fff2d9; border:1px solid #e9c88c; border-radius:14px; }
.studio-approval-count { width:48px; height:48px; display:grid; place-items:center; background:#fff; border-radius:12px; color:#805415; font-size:24px; font-weight:750; flex:none; }
.studio-approval-callout h2 { font-size:17px; color:#493614; margin:0 0 4px; }
.studio-approval-callout p { font-size:13px; line-height:1.6; color:#685638; }
.studio-approval-callout>a { margin-left:auto; display:flex; align-items:center; justify-content:center; gap:8px; padding:11px 16px; min-height:44px; border-radius:8px; background:#65409c; color:#fff; font-size:13px; font-weight:650; flex:none; }
.studio-approval-callout svg { width:18px; height:18px; }
.studio-review-guide { padding:20px; border:1px solid #ddd5ed; background:#f5f0fb; border-radius:14px; margin:18px 0; }
.studio-review-guide h2 { font-size:18px; margin:0 0 14px; color:#38264f; }
.studio-review-guide summary { font-size:15px; font-weight:700; color:#38264f; cursor:pointer; min-height:24px; }
.studio-review-guide[open] summary { margin-bottom:16px; }
.studio-review-guide ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; list-style:decimal; padding-left:20px; }
.studio-review-guide li { padding-left:4px; color:#65409c; font-size:13px; }
.studio-review-guide :is(strong,span) { display:block; }
.studio-review-guide span,.studio-review-guide p { color:#526477; font-size:12px; line-height:1.7; }
.studio-review-guide p { margin-top:14px; border-top:1px solid #ded5e9; padding-top:12px; }
@media(max-width:760px) { .studio-approval-callout { flex-wrap:wrap; gap:12px; } .studio-approval-callout>div { flex:1; min-width:180px; } .studio-approval-callout>a { width:auto; } .studio-review-guide ol { grid-template-columns:1fr; gap:12px; } .studio-shell .studio-page-actions { width:100%!important; } .studio-shell .studio-page-actions>.fi-ac { display:flex!important; flex-direction:row!important; flex-wrap:wrap!important; gap:8px!important; justify-content:flex-start!important; } .studio-shell .studio-page-actions>.fi-ac>.fi-btn { flex:0 1 auto; justify-content:center; min-height:44px; font-size:13px; } }
.studio-landing,.studio-signin { background:linear-gradient(125deg,#eee6f8 0%,#e9f2fa 55%,#faf0dd 100%)!important; color:#20304a; }
:is(.studio-landing,.studio-signin,.faith-admissions) .faith-public-header { background:#eee8f7!important; border-bottom:1px solid #d8cce8!important; }
.studio-landing .studio-home-hero { max-width:1240px; padding:64px 32px 48px; gap:52px; }
.studio-home-badge { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border:1px solid #dfd5f0; border-radius:100px; font-size:12px; font-weight:650; color:#59418b; background:#f4effa; }
.studio-home-badge>span { width:7px; height:7px; background:#6b4caa; border-radius:50%; }
.studio-landing .studio-home-copy h1 { font:750 clamp(38px,4.6vw,64px)/1.07 sans-serif; letter-spacing:-.055em; color:#1d3047; margin:22px 0; }
.studio-landing .studio-home-copy h1 em { color:#7042a5; }
.studio-landing .studio-home-copy>p { font-size:16px; line-height:1.8; max-width:470px; }
.studio-landing .studio-home-copy>.studio-church-name { font-size:12px; line-height:1.6; color:#5c6170; margin-top:14px; }
.studio-landing .studio-home-picture { height:430px; border:0; border-radius:22px 90px 22px 22px; box-shadow:12px 12px 0 #ebe3f3; }
.studio-landing .studio-home-picture img { object-position:79% center; }
.studio-landing .studio-home-picture figcaption { display:flex; align-items:center; gap:12px; padding:14px 18px; bottom:20px; left:20px; }
.studio-landing .studio-home-picture figcaption>svg { width:36px; height:36px; padding:8px; border-radius:10px; background:#fbe9ee; color:#9d3a61; }
.studio-landing .studio-home-picture figcaption span { padding:0; color:#26344e; }
.studio-landing .studio-home-picture figcaption :is(strong,small) { display:block; }
.studio-landing .studio-home-picture figcaption small { margin-top:3px; font-size:11px; font-weight:400; color:#526477; }
.studio-landing .studio-home-actions .faith-button { background:#65409c; border-color:#65409c; min-height:46px; font-weight:650; }
.studio-landing .studio-home-actions .faith-button.outline { background:#fff; color:#493368; border-color:#cec4dc; }
.studio-landing .studio-teacher-link { flex-wrap:wrap; font-size:12px; gap:5px; }
.studio-landing .studio-teacher-link strong { color:#633ca0; }
.studio-landing .studio-values-strip { max-width:1176px; background:#f8f0de; border:1px solid #e8d8b8; border-radius:12px; margin-bottom:16px; }
.studio-landing .studio-values-strip .faith-values strong { color:#27344a; }
.studio-landing .faith-home-section { max-width:1240px; padding:48px 32px!important; background:transparent!important; }
.studio-landing .faith-home-section h2 { font-size:30px!important; line-height:1.25!important; letter-spacing:-.035em; margin-top:10px; }
.studio-landing .faith-community-intro { gap:48px; }
.studio-landing .faith-community-intro>div>p { font-size:14px; line-height:1.85; color:#526477; }
.studio-text-link { display:inline-flex; align-items:center; gap:8px; color:#65409c; font-size:13px; font-weight:650; min-height:44px; margin-top:10px; }
.studio-text-link svg { width:16px; height:16px; flex:none; }
.studio-landing .faith-community-stats { gap:12px; }
.studio-landing .faith-community-stats article { padding:20px 12px; background:#edf5f0; border:0; border-radius:14px; }
.studio-landing .faith-community-stats article:nth-child(2) { background:#f0ebf8; }
.studio-landing .faith-community-stats article:nth-child(3) { background:#fff1d9; }
.studio-landing .faith-community-stats strong { font-size:16px; color:#25384c; }
.studio-landing .faith-community-stats small { font-size:11px; color:#526477; }
.studio-landing .faith-home-section.tint { background:#f0edf7!important; border-radius:20px; }
.studio-landing .faith-home-section>header { align-items:end; margin-bottom:24px; gap:20px; }
.studio-landing .faith-home-section>header>a { font-size:13px; color:#65409c; min-height:40px; align-items:center; }
.studio-landing .faith-experience { background:white; border:1px solid #e2deea; border-radius:12px; transition:transform .18s ease,box-shadow .18s ease; }
.studio-landing .faith-experience:hover { transform:translateY(-3px); box-shadow:0 8px 24px #3023420d; }
.studio-landing .faith-experience>div { align-items:start; gap:10px; padding:18px 14px; }
.studio-landing .faith-experience>div>svg { color:#7042a5; width:22px; height:22px; flex:none; }
.studio-landing .faith-resource-link { background:white; }
.studio-landing .faith-resource-link strong { color:#233751; line-height:1.5; }
.studio-landing .faith-community-link { box-shadow:none; border:1px solid #ded8e8; border-radius:12px; padding:18px; }
.studio-landing .faith-updates>a { border:1px solid #e3e1db; box-shadow:none; border-radius:12px; padding:18px; background:white; }
.studio-landing .faith-date { background:#eee8f6; color:#61419a; border:0; border-radius:8px; }
.studio-start { max-width:1176px; margin:12px auto 56px; padding:36px; background:#25374a; color:white; border-radius:20px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
.studio-start .studio-eyebrow { color:#cebbea; }
.studio-start h2 { font:700 29px/1.25 sans-serif; letter-spacing:-.03em; margin:10px 0; color:white; }
.studio-start p { color:#d4dee6; font-size:14px; line-height:1.6; }
.studio-start>div:last-child { display:grid; gap:4px; flex:none; }
.studio-start .faith-button { background:#ecdafa; color:#302043; border:0; border-radius:9px; box-shadow:none; min-height:46px; font-size:14px; }
.studio-start .studio-text-link { color:#e2dbea; font-size:12px; }
.studio-signin .studio-auth-layout { max-width:1120px; padding:48px 28px 56px; gap:0; grid-template-columns:minmax(0,1fr) minmax(360px,1fr); align-items:stretch; }
.studio-signin .studio-auth-story { position:relative; display:flex; flex-direction:column; background:#ece6f5; border:1px solid #dfd6eb; border-radius:22px 0 0 22px; overflow:hidden; padding:0; }
.studio-signin-story-copy { padding:34px 34px 20px; }
.studio-signin .studio-auth-story h2 { font:750 38px/1.13 sans-serif; letter-spacing:-.045em; color:#352750; margin:14px 0; }
.studio-signin-story-copy>p { color:#574968; font-size:14px; line-height:1.75; max-width:350px; }
.studio-signin .studio-auth-story>img { position:static; width:100%; height:240px; flex:1; min-height:180px; object-fit:cover; object-position:center 22%; margin:0; border-radius:0; }
.studio-signin-story-bottom { padding:22px 34px; background:#f3edf9; }
.studio-signin .studio-auth-story blockquote { margin:0; color:#58416b; font-size:17px; }
.studio-signin-story-bottom>span { display:block; margin-top:14px; text-transform:uppercase; letter-spacing:.14em; font-size:10px; color:#625271; font-weight:700; }
.studio-signin-story-bottom i { padding:0 10px; font-style:normal; }
.studio-signin .faith-auth-card { padding:36px!important; border-radius:0 22px 22px 0!important; border:1px solid #dfd6eb!important; border-left:0!important; box-shadow:none!important; align-self:stretch; margin:0; }
.studio-signin-symbol { width:42px; height:42px; padding:10px; border-radius:12px; background:#eee7f7; color:#7042a5; margin-bottom:22px; }
.studio-signin-symbol svg { width:100%; height:100%; }
.studio-signin .faith-auth-card h1 { font-size:28px!important; margin:10px 0 12px!important; }
.studio-signin .faith-auth-fields>.faith-button { background:#65409c; border:1px solid #65409c; min-height:46px; box-shadow:none; justify-content:center; gap:12px; }
.studio-signin .faith-field>div:focus-within { border-color:#8059b8!important; outline:3px solid #8059b81c; }
.studio-signin .faith-field input:focus-visible { outline:none; }
:is(.studio-landing,.studio-signin) .faith-menu-toggle { min-width:44px; min-height:44px; flex-shrink:0; }
.studio-signin .faith-field input::placeholder { color:#687589; opacity:1; }
.studio-signin .faith-form-meta a,.studio-signin .faith-auth-home { color:#65409c; }
.studio-signin .faith-form-meta input { accent-color:#65409c; }
.studio-signin .faith-auth-join a { background:#faf8fd; color:#4a346a; border-color:#e1d9ea; }
.studio-signin .faith-auth-join a:hover { border-color:#9474bd; background:#f1eaf9; }
@media(max-width:1023px) {
    .studio-landing .studio-home-hero { gap:28px; padding:40px 24px; }
    .studio-landing .studio-home-picture { height:370px; }
    .studio-landing .studio-values-strip { margin-inline:24px; }
    .studio-start { margin-inline:24px; }
    .studio-signin .studio-auth-layout { padding:32px 24px; grid-template-columns:minmax(0,1fr) minmax(340px,1fr); }
    .studio-signin-story-copy { padding:28px 24px 20px; }
    .studio-signin .studio-auth-story h2 { font-size:32px; }
    .studio-signin .faith-auth-card { padding:28px!important; }
}
@media(max-width:760px) {
    .studio-landing .studio-home-hero { padding:28px 20px 30px; grid-template-columns:1fr; gap:28px; }
    .studio-landing .studio-home-copy h1 { font-size:clamp(34px,9vw,46px); margin:18px 0; }
    .studio-landing .studio-home-copy>p { font-size:14px; line-height:1.7; }
    .studio-landing .studio-home-actions { gap:8px; }
    .studio-landing .studio-home-actions .faith-button { font-size:12px; padding:12px 10px; white-space:normal; line-height:1.3; }
    .studio-landing .studio-home-picture { height:240px; border-radius:16px 54px 16px 16px; box-shadow:6px 6px 0 #ebe3f3; }
    .studio-landing .studio-home-picture figcaption { bottom:14px; left:14px; padding:10px 12px; }
    .studio-landing .studio-values-strip { margin:0 16px 8px; padding:20px; }
    .studio-landing .studio-values-strip .faith-values { grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:18px 12px!important; }
    .studio-landing .faith-community-links { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; grid-auto-flow:row!important; overflow:visible!important; gap:12px!important; margin:0!important; padding:0!important; }
    .studio-landing .faith-community-link { min-width:0!important; padding:16px 12px; display:flex; flex-direction:column; align-items:start; gap:10px; }
    .studio-landing .faith-community-link small { font-size:12px; line-height:1.6; }
    .studio-landing .faith-home-section { padding:32px 20px!important; }
    .studio-landing .faith-home-section h2 { font-size:25px!important; }
    .studio-landing .faith-community-intro { gap:24px; }
    .studio-landing .faith-community-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
    .studio-landing .faith-community-stats article { padding:14px 6px; }
    .studio-landing .faith-community-stats strong { font-size:12px; line-height:1.5; }
    .studio-landing .faith-community-stats small { font-size:10px; }
    .studio-landing .faith-community-stats svg { width:26px; height:26px; }
    .studio-landing .faith-home-section>header { align-items:start; flex-wrap:wrap; gap:6px; }
    .studio-landing .faith-experience>div { padding:12px; }
    .studio-landing .faith-experience>div>svg { margin-bottom:8px; }
    .studio-start { margin:12px 16px 32px; padding:24px; flex-direction:column; align-items:stretch; gap:20px; }
    .studio-start h2 { font-size:25px; }
    .studio-start .studio-text-link { justify-content:center; }
    .studio-signin .studio-auth-layout { display:flex; flex-direction:column; padding:20px 16px 32px; gap:0; }
    .studio-signin .studio-auth-story { display:grid!important; grid-template-columns:minmax(0,1fr) 96px; border-radius:16px 16px 0 0; min-height:0!important; }
    .studio-signin-story-copy { padding:18px; }
    .studio-signin .studio-auth-story h2 { font-size:22px!important; margin:8px 0 0; }
    .studio-signin-story-copy>.studio-eyebrow { font-size:9px; letter-spacing:.06em; }
    .studio-signin-story-copy>p,.studio-signin-story-bottom { display:none; }
    .studio-signin .studio-auth-story>img { display:block!important; height:100%!important; min-height:110px; width:96px!important; object-position:48% 20%; }
    .studio-signin .faith-auth-card { padding:24px 20px!important; border:1px solid #dfd6eb!important; border-top:0!important; border-radius:0 0 16px 16px!important; }
    .studio-signin-symbol { display:none; }
    .studio-signin .faith-auth-card h1 { font-size:25px!important; margin:0 0 10px!important; }
    .studio-signin .faith-auth-fields { gap:16px; }
    .studio-signin .faith-field input { font-size:16px!important; }
    .studio-signin .faith-auth-join a { min-height:64px; font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .studio-landing .faith-experience { transition:none; } }
.faith-admissions { background:linear-gradient(125deg,#eee6f8,#e9f2fa 65%,#faf0dd)!important; }
.faith-admissions .faith-admission-hero { background:#f0ecfa!important; border-bottom:1px solid #e2dbf2; }
.faith-admissions .faith-admission-hero .faith-eyebrow { color:#60468f!important; }
.faith-admissions .faith-admission-form { display:grid; grid-template-columns:170px minmax(0,1fr); column-gap:24px; align-items:start; align-content:start; padding:22px!important; }
.faith-admissions .faith-form-progress { grid-column:1; grid-row:1 / span 20; align-self:start; margin:0!important; padding:0 22px 0 0!important; border-bottom:0; border-right:1px solid #e5e2ed; }
.faith-admissions .faith-admission-form > :not(.faith-form-progress) { grid-column:2; min-width:0; }
.faith-admissions .registration-guide-label { font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; color:#67518c; margin:0 0 16px; }
.faith-admissions .registration-account-link { margin:0 0 16px; font-size:12px; color:#556176; line-height:1.7; }
.faith-admissions .registration-account-link a { color:#56318e; font-weight:700; text-decoration:underline; text-underline-offset:3px; display:inline-block; padding:6px 2px; }
.faith-admissions .faith-form-progress-summary { display:flex!important; flex-direction:column; align-items:flex-start; gap:4px; margin-bottom:16px; }
.faith-admissions .faith-form-progress-summary strong { color:#39245e; font-size:18px; }
.faith-admissions .progress { display:grid!important; grid-template-columns:1fr!important; gap:6px!important; overflow:visible!important; }
.faith-admissions .dot { display:flex!important; flex-direction:row!important; justify-content:flex-start!important; text-align:left; padding:8px!important; border-radius:8px; color:#546174!important; min-width:0!important; }
.faith-admissions .dot.active { background:#eee7fb!important; color:#4e3186!important; }
.faith-admissions .dot b { display:grid!important; place-items:center; flex-shrink:0; background:#f0f2f6!important; color:#536078!important; }
.faith-admissions .dot.active b { background:#6846aa!important; color:white!important; }
.faith-admissions .dot span { display:block!important; font-size:12px; font-weight:650; }
.faith-admissions .registration-review-note { font-size:12px; line-height:1.6; color:#556176; padding:12px; background:#f6f4fb; border-radius:8px; margin-top:16px; }
.faith-admissions .registration-section-label { margin:24px 0 10px; padding-top:18px; border-top:1px solid #e4e8ef; font-size:15px; color:#263b58; }
.faith-admissions .registration-optional { display:inline; color:#68778b; font-weight:400; font-size:12px; }
.faith-admissions .step { scroll-margin-top:100px; }
.faith-admissions .choice label { min-height:44px; padding:7px 10px; border:1px solid transparent; border-radius:7px; cursor:pointer; }
.faith-admissions .choice label:has(input:checked) { background:white; border-color:#9b80c6; color:#452973; box-shadow:0 1px 3px #3020470a; }
.faith-admissions :is(input,select,textarea):focus-visible { outline:3px solid #baa7df!important; outline-offset:2px; border-color:#6846aa!important; }
.faith-admissions :is(.check,input[type=checkbox],input[type=radio]) { accent-color:#6846aa; }
.faith-admissions .actions { border-top:1px solid #e4e8ef; margin-top:24px!important; padding-top:18px!important; gap:10px!important; }
.faith-admissions .actions :is(.next,.submit) { background:#6846aa!important; border-color:#6846aa!important; color:white!important; box-shadow:none!important; min-height:44px; border-radius:9px!important; font-size:14px!important; }
.faith-admissions .actions .prev { background:white!important; border:1px solid #cbd3df!important; color:#30435e!important; min-height:44px; border-radius:9px!important; }
.faith-admissions .contact-panel,.faith-admissions .info-panel { padding:14px!important; border-radius:10px!important; background:#f5f7fc!important; border:1px solid #dfe5ef!important; }
.faith-admissions .section-head .step-pill { display:none; }
.faith-admissions .section-head .title-lockup { display:flex; align-items:flex-start; gap:12px; }
.faith-admissions .section-head .section-icon { display:grid; place-items:center; width:36px; height:36px; flex:0 0 36px; border-radius:10px; background:#eee7fb; color:#6846aa; }
.faith-admissions .section-head .section-icon svg { width:20px; height:20px; }
/* Compact registration rhythm without shrinking phone touch targets. */
.faith-admissions :is(.actions button,[data-otp-send],[data-otp-verify]) { font-family:inherit; font-weight:600; border-radius:8px; transition:background-color .15s,border-color .15s; cursor:pointer; }
.faith-admissions .actions :is(.next,.submit):not(:disabled) { background:#6941c6!important; border-color:#6941c6!important; }
.faith-admissions .actions :is(.next,.submit):not(:disabled):hover { background:#5530aa!important; border-color:#5530aa!important; }
.faith-admissions .actions .prev:not(:disabled):hover { background:#f3effb!important; border-color:#a990d0!important; }
.faith-admissions [data-otp-send] { color:#1858a5!important; background:#eaf2ff!important; border:1px solid #b8d2f5!important; }
.faith-admissions [data-otp-send]:not(:disabled):hover { background:#dbeaff!important; }
.faith-admissions [data-otp-verify] { color:white!important; background:#1864c0!important; border:1px solid #1864c0!important; }
.faith-admissions [data-otp-verify]:not(:disabled):hover { background:#12509c!important; border-color:#12509c!important; }
.faith-admissions :is(.actions button,[data-otp-send],[data-otp-verify]):disabled { background:#edf0f5!important; border-color:#d5dce6!important; color:#65748a!important; opacity:1!important; cursor:not-allowed; box-shadow:none!important; }
.faith-admissions :is(.actions button,[data-otp-send],[data-otp-verify]):focus-visible { outline:3px solid #b5a0e3; outline-offset:3px; }
.faith-admissions .faith-admission-hero { padding-block:20px!important; }
.faith-admissions .row { gap:12px!important; margin-bottom:12px!important; }
.faith-admissions .step .hint { margin-bottom:14px!important; }
.faith-admissions .option-panel { padding:10px 12px!important; margin-block:10px!important; }
.faith-admissions .option-panel .choice { padding:4px!important; margin:6px 0 0!important; border:0!important; background:transparent!important; }
.faith-admissions .choice label { display:flex; flex-direction:row; justify-content:flex-start; gap:8px!important; }
.faith-admissions .choice input { flex:0 0 auto; margin:0; }
.faith-admissions .offline-group-row { grid-template-columns:minmax(0,1fr)!important; }
.faith-admissions .locked-field { display:grid; gap:5px; padding:12px; border:1px solid #dcd2ee; border-radius:8px; background:#f5f0fc; }
.faith-admissions .locked-field>span { font-size:12px; color:#635675; }
.faith-admissions .locked-field strong { font-size:14px; color:#452973; }
.faith-admissions .offline-note { margin:0 0 12px; font-size:12px; line-height:1.5; color:#59677a; }
.faith-admissions .actions { margin-top:16px!important; padding-top:12px!important; }
@media(min-width:761px) {
 .faith-admissions :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select) { min-height:40px!important; padding-block:8px!important; font-size:14px!important; }
}
@media(max-width:760px) {
 .faith-admissions .faith-admission-form { display:block; padding:18px!important; }
 .faith-admissions .faith-form-progress { padding:0 0 16px!important; margin-bottom:20px!important; border-right:0; border-bottom:1px solid #e5e2ed; }
 .faith-admissions .registration-guide-label,.faith-admissions .registration-review-note { display:none; }
 .faith-admissions .faith-form-progress-summary { flex-direction:row; align-items:center; justify-content:space-between; margin-bottom:12px; }
 .faith-admissions .faith-form-progress-summary strong { font-size:15px; }
 .faith-admissions .progress { grid-template-columns:repeat(8,minmax(0,1fr))!important; gap:5px!important; }
 .faith-admissions .dot { height:6px!important; min-height:0!important; padding:0!important; background:#e3e4ed!important; border:0!important; }
 .faith-admissions .dot.active { background:#6846aa!important; }
 .faith-admissions .dot b,.faith-admissions .dot span { display:none!important; }
 .faith-admissions .row { grid-template-columns:minmax(0,1fr)!important; }
 .faith-admissions .actions { display:flex!important; flex-wrap:wrap; position:static!important; }
 .faith-admissions .actions .faith-back-home { width:100%; order:3; text-align:center; padding:10px; }
 .faith-admissions .actions button { flex:0 0 auto; }
 .faith-admissions .choice { gap:4px!important; }
 .faith-admissions .step { scroll-margin-top:110px; }
 .faith-admissions :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px!important; }
}

/* Attendance history is a register of compact, expandable rows. */
body .studio-shell .msoc-attendance-session-list { gap:6px; }
body .studio-shell .msoc-attendance-session-list>details { border-radius:8px; }
body .studio-shell .msoc-attendance-session-list summary {
    display:grid; grid-template-columns:52px minmax(0,1fr) auto 16px;
    gap:10px; align-items:center; padding:10px 12px; min-height:64px;
}
body .studio-shell .msoc-attendance-session-list summary::after {
    grid-column:4; grid-row:1; font-size:18px; text-align:center;
}
body .studio-shell .msoc-attendance-session-date { padding:5px 2px; border-radius:6px; gap:0; }
body .studio-shell .msoc-attendance-session-date strong { font-size:18px; line-height:1.25; }
body .studio-shell .msoc-attendance-session-date span { font-size:10px; line-height:1.4; }
body .studio-shell .msoc-attendance-session-main { min-width:0; }
body .studio-shell .msoc-attendance-session-main h3 { font-size:14px; line-height:1.4; margin:0; }
body .studio-shell .msoc-attendance-session-main p { font-size:12px; line-height:1.45; margin:3px 0 0; color:#526176; }
body .studio-shell .msoc-attendance-session-score { grid-column:3; grid-row:1; display:grid; gap:2px; font-size:11px; white-space:nowrap; }
body .studio-shell .msoc-attendance-session-score>strong { font-size:14px; }
body .studio-shell .msoc-attendance-workspace :is(.msoc-simple-roster-head,.msoc-simple-roster-row) {
    grid-template-columns:minmax(0,1fr) 112px 112px; gap:8px; padding:10px 12px; align-items:center;
}
body .studio-shell .msoc-attendance-workspace .msoc-simple-roster-row>div:first-child { grid-column:1; }
body .studio-shell .msoc-attendance-toggle { margin:0; min-height:44px; padding:8px; font-size:13px; gap:6px; }
body .studio-shell .msoc-attendance-toggle input { width:16px; height:16px; min-height:0!important; margin:0; flex:none; }
body .studio-shell .msoc-attendance-toggle-stack { display:grid; gap:6px; }
body .studio-shell .msoc-roster-session-context { display:flex; gap:8px; align-items:flex-start; padding:10px 0; }
body .studio-shell .msoc-roster-session-context>svg { width:18px; height:18px; flex:none; }
body .studio-shell .msoc-roster-session-context>div { display:grid; gap:3px; font-size:13px; }
body .studio-shell .studio-roster-tools { padding:12px 0; gap:10px; }
body .studio-shell .msoc-roster-footer { padding-top:12px; gap:8px; }
body .studio-shell .msoc-roster-footer button { width:auto!important; flex:0 0 auto!important; min-height:44px; padding:8px 14px; font-size:13px; border-radius:8px; }
@media(max-width:600px) {
    body .studio-shell .msoc-attendance-session-list summary { grid-template-columns:44px minmax(0,1fr) 14px; padding:9px 10px; gap:6px 9px; }
    body .studio-shell .msoc-attendance-session-date { grid-row:1 / span 2; }
    body .studio-shell .msoc-attendance-session-score { grid-column:2; grid-row:2; display:flex; justify-content:flex-start; gap:8px; }
    body .studio-shell .msoc-attendance-session-list summary::after { grid-column:3; grid-row:1 / span 2; }
    body .studio-shell .msoc-attendance-workspace .msoc-simple-roster-head { display:none; }
    body .studio-shell .msoc-attendance-workspace .msoc-simple-roster-row { grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px; }
    body .studio-shell .msoc-attendance-workspace .msoc-simple-roster-row>div:first-child { grid-column:1/-1; }
    body .studio-shell .studio-roster-tools { flex-wrap:wrap; }
    body .studio-shell .studio-roster-tools>label { width:100%; }
}

/* Shared form rhythm: quiet surfaces, clear labels and equal-height controls.
   Keep validation, upload widgets and multiline fields in their native layouts. */
body :is(.studio-shell,.faith-admissions,.studio-signin) {
    --portal-field-height:40px;
    --portal-field-font:14px;
    font-family: sans-serif;
}
body .studio-shell .faith-main .fi-fo-field-label,
body .faith-admissions .faith-form-label {
    font-size:13px!important; font-weight:600!important; line-height:1.5; color:#26364b;
}
body .studio-shell .faith-main .fi-fo-field { row-gap:5px!important; }
body .studio-shell .faith-main .fi-input-wrp {
    min-height:var(--portal-field-height)!important; border-radius:6px!important;
    background:#fff; border-color:#bdc8d6; box-shadow:none;
}
body .studio-shell .faith-main :is(.fi-input,select.fi-select-input,.fi-select-input-btn) {
    box-sizing:border-box; min-height:calc(var(--portal-field-height) - 2px)!important;
    font-family:inherit!important; font-size:var(--portal-field-font)!important;
    font-weight:400; line-height:1.5!important; padding-block:8px!important;
}
body .studio-shell .faith-main div.fi-select-input { padding-block:0!important; min-height:0!important; }
body .studio-shell .faith-main .fi-fo-textarea {
    font-family:inherit; font-size:var(--portal-field-font)!important; line-height:1.6;
    min-height:88px; padding:10px 12px!important; border-radius:6px!important;
}
body .studio-shell .faith-main .fi-fo-field-helper-text,
body .studio-shell .faith-main .fi-fo-field .fi-sc-text {
    font-size:12px!important; line-height:1.5!important; color:#526176;
}
body .studio-shell .faith-main .fi-fo-field-error-message { font-size:13px; line-height:1.5; }
body .studio-shell .faith-main .fi-input-wrp:focus-within {
    outline:2px solid #5577cb; outline-offset:2px;
}
body .faith-admissions .faith-form-input,
body .faith-admissions .faith-form-field>select {
    min-height:var(--portal-field-height)!important; padding:8px 10px!important;
    font-family:inherit!important; font-size:var(--portal-field-font)!important;
    line-height:1.5; border-radius:6px!important; border-color:#bdc8d6;
}
body .faith-admissions .faith-form-field { gap:5px; }
body .studio-shell .faith-main .fi-sc-form .fi-sc.fi-sc-has-gap { gap:14px 20px!important; }
@media(max-width:1023px),(pointer:coarse) {
    body :is(.studio-shell,.faith-admissions,.studio-signin) {
        --portal-field-height:44px; --portal-field-font:16px;
    }
}

/* Workspace density contract. Controls fit their content; fields use the space.
   Keep this scoped to management screens, never icon buttons or upload widgets. */
body .studio-shell .faith-main {
    --workspace-control-height:38px;
    --workspace-control-font:14px;
}
body .studio-shell .faith-main :is(.msoc-users-filter-actions,.msoc-report-actions,.msoc-past-report-actions,.msoc-homework-form-actions,.msoc-offline-group-actions,.portal-collection-actions) {
    display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:8px;
}
body .studio-shell .faith-main :is(.msoc-users-filter-actions,.msoc-report-actions,.msoc-past-report-actions,.msoc-homework-form-actions,.msoc-offline-group-actions,.portal-collection-actions)>:is(button,a),
body .studio-shell .faith-main :is(.msoc-library-filters,.msoc-youtube-filters,.msoc-portal-filters,.msoc-homework-admin__filters,.msoc-exams-filters,.msoc-promotion-filters,.msoc-published-filters)>:is(button,a),
body .studio-shell .faith-main :is(.fi-ac,.fi-form-actions,.fi-modal-footer-actions)>.fi-btn {
    width:auto!important; flex:0 1 auto!important; justify-self:start; align-self:end;
    min-height:var(--workspace-control-height); padding:8px 12px!important;
    font-size:13px!important; line-height:1.35; border-radius:8px!important;
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
body .studio-shell .faith-main :is(.msoc-schedule-hero,.msoc-offline-groups-hero,.msoc-reports-center-hero,.msoc-promotion-hero,.msoc-homework-admin__hero,.msoc-events-hero,.msoc-portal-hero,.msoc-certificate-hero) {
    padding:14px 16px!important; min-height:0!important; border-radius:12px!important; box-shadow:none!important; gap:12px;
}
body .studio-shell .faith-main :is(.msoc-schedule-hero,.msoc-offline-groups-hero,.msoc-reports-center-hero,.msoc-promotion-hero,.msoc-homework-admin__hero,.msoc-events-hero,.msoc-portal-hero,.msoc-certificate-hero) :is(h1,h2) {
    font-size:22px!important; line-height:1.3!important; margin:0 0 4px; font-weight:700; letter-spacing:-.025em;
}
body .studio-shell .faith-main :is(.msoc-schedule-hero,.msoc-offline-groups-hero,.msoc-reports-center-hero,.msoc-promotion-hero,.msoc-homework-admin__hero,.msoc-events-hero,.msoc-portal-hero,.msoc-certificate-hero) p {
    font-size:13px!important; line-height:1.55!important; font-weight:400!important; margin:4px 0 0;
}
body .studio-shell .faith-main :is(.msoc-schedule-page,.msoc-offline-groups-page,.msoc-reports-center,.msoc-homework-admin,.msoc-promotion-page) { gap:12px; }
body .studio-shell .faith-main :is(.msoc-session-empty,.msoc-users-empty) { padding:16px; gap:6px; }
body .studio-shell .faith-main .msoc-report-type-card { min-height:88px!important; }
body .studio-shell .faith-main .msoc-report-type-icon { margin:0!important; }
body .studio-shell .faith-main .msoc-offline-group-actions button { width:auto; }
body .studio-shell .faith-main :is(.la-toolbar,.msoc-chat-oversight-filters>div) { display:flex; flex-wrap:wrap; gap:8px; align-items:end; }
body .studio-shell .faith-main .la-toolbar label { flex:1 1 160px; min-width:0; }
body .studio-shell .faith-main :is(.la-toolbar,.la-hero,.msoc-chat-oversight-filters>div)>:is(button,a),
body .studio-shell .faith-main :is(.msoc-youtube-hero-actions,.msoc-offline-groups-actions)>:is(button,a) {
    width:auto!important; justify-self:start; flex:0 1 auto; min-height:44px; padding:8px 12px;
    font-size:13px; border-radius:8px; box-shadow:none;
}
body .studio-shell .faith-main :is(.la-hero,.certificate-dashboard__header,.msoc-youtube-hero) { padding:14px 16px!important; border-radius:12px; box-shadow:none; }
body .studio-shell .faith-main :is(.la-hero,.certificate-dashboard__header,.msoc-youtube-hero) :is(h1,h2) { font-size:22px!important; line-height:1.3; }
body .studio-shell .faith-main .certificate-summary-card { padding:12px; border-radius:10px; box-shadow:none; }
body .studio-shell .faith-main .certificate-summary-card strong { font-size:24px; margin-top:4px; }
body .studio-shell .faith-main .mp-actions { display:flex; flex-wrap:wrap; gap:8px; }
body .studio-shell .faith-main .mp-actions>* { width:auto!important; flex:0 1 auto; }
body .studio-shell .faith-main .mp-signature-upload .mp-photo-btn { display:inline-flex; width:auto; align-items:center; justify-content:center; min-height:44px; }
body .studio-shell .faith-main :is(.msoc-offline-add,.msoc-youtube-hero>a) { width:fit-content; justify-self:start; align-self:start; min-height:44px; padding:8px 12px; border-radius:8px; background:#a8440c; font-size:13px; }
@media(max-width:1023px),(pointer:coarse) {
    body .studio-shell .faith-main { --workspace-control-height:44px; }
}
@media(min-width:761px) {
    body .studio-shell .faith-main :is(.msoc-users-filters,.msoc-library-filters,.msoc-homework-admin__filters,.msoc-exams-filters,.msoc-promotion-filters) :is(input,select) {
        min-height:38px; padding:8px 10px; font-size:14px;
    }
}
@media(max-width:760px) {
    body .studio-shell .faith-main { --workspace-control-height:44px; }
    body .studio-shell .faith-main .msoc-homework-admin__symbol { display:none; }
    body .studio-shell .faith-main .portal-collection-heading { flex-wrap:nowrap; align-items:flex-start; }
    body .studio-shell .faith-main .portal-collection-tools { gap:8px; }
    body .studio-shell .faith-main .portal-collection-actions { width:auto; }
    body .studio-shell .faith-main .portal-report-guide { padding:12px; gap:8px; }
    body .studio-shell .faith-main .portal-report-guide nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
    body .studio-shell .faith-main .portal-report-guide nav a { padding:8px; font-size:12px; }
    body .studio-shell .faith-main .portal-report-guide>p { margin:0; font-size:13px; }
    body .studio-shell .faith-main .msoc-homework-admin__filters label { flex-basis:100%; }
    body .studio-shell .faith-main .studio-welcome h1 { font-size:21px!important; }
    body .studio-shell .faith-main :is(.certificate-dashboard__summary,.dm-summary) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    body .studio-shell .faith-main .dm-stat { padding:10px; gap:8px; }
    body .studio-shell .faith-main .dm-stat-icon { width:32px; height:32px; flex:none; }
    body .studio-shell .faith-main .mp-summary-body>p,
    body .studio-shell .faith-main .mp-summary-body>.mp-pills,
    body .studio-shell .faith-main .mp-summary-body>.mp-signature-upload { grid-column:1/-1; min-width:0; }
    body .studio-shell .faith-main .mp-summary-body>.mp-photo-btn { width:auto; justify-self:start; }
}

/* Management lists: compact information hierarchy without shrinking touch targets. */
body .studio-shell .faith-main .msoc-offline-group-detail { border-radius:12px; padding:16px; max-height:calc(100dvh - 32px); overflow:auto; }
body .studio-shell .faith-main .msoc-offline-group-detail header h2 { font-size:18px; font-weight:650; }
body .studio-shell .faith-main .msoc-offline-group-detail header :is(button,a) { min-height:40px; padding:8px 12px; border-radius:6px; font-weight:600; background:#edf3fb; color:#2457c5; }
body .studio-shell .faith-main .msoc-offline-detail-grid { gap:10px; }
body .studio-shell .faith-main .msoc-offline-detail-grid article { padding:10px 12px; border-radius:8px; }
body .studio-shell .faith-main .msoc-offline-detail-grid :is(h3,strong) { font-weight:600; }
body .studio-shell .faith-main .msoc-offline-detail-grid p { font-size:12px; font-weight:400; margin:4px 0 0; }
body .studio-shell .faith-main .msoc-offline-detail-grid li { padding:8px; border-radius:6px; }
body .studio-shell .faith-main .msoc-offline-group-grid { grid-template-columns:1fr!important; gap:8px!important; }
body .studio-shell .faith-main .msoc-offline-groups-hero { padding:14px 16px!important; border-radius:10px; }
body .studio-shell .faith-main .msoc-offline-groups-hero aside { padding:8px 12px; border-radius:8px; background:#edf3fb; color:#233a54; }
body .studio-shell .faith-main .msoc-offline-groups-hero aside span { color:#526680; }
body .studio-shell .faith-main .msoc-offline-groups-hero aside strong { color:#233a54; font-size:13px; }
body .studio-shell .faith-main .msoc-offline-group-card { display:grid; grid-template-columns:minmax(220px,1.6fr) minmax(80px,.5fr) minmax(160px,1fr) auto; align-items:center; gap:16px; padding:12px 14px; border-radius:10px; border-left:3px solid #6a64cc; }
body .studio-shell .faith-main .msoc-offline-group-card:nth-child(3n+2) { border-left-color:#16856e; }
body .studio-shell .faith-main .msoc-offline-group-card:nth-child(3n) { border-left-color:#bb7915; }
body .studio-shell .faith-main .msoc-offline-group-card header { align-items:center; min-width:0; }
body .studio-shell .faith-main .msoc-offline-group-card h2 { font-size:15px; line-height:1.35; font-weight:650; margin:0; overflow-wrap:break-word; }
body .studio-shell .faith-main .msoc-offline-group-card header p { margin:4px 0 0; font-size:12px; font-weight:400; }
body .studio-shell .faith-main .msoc-offline-group-card :is(header span,.msoc-offline-group-metrics span,.msoc-offline-next-session span) { font-size:11px; text-transform:none; letter-spacing:0; color:#566781; font-weight:500; }
body .studio-shell .faith-main .msoc-offline-group-metrics { display:flex; flex-wrap:wrap; gap:8px; }
body .studio-shell .faith-main .msoc-offline-group-metrics div,
body .studio-shell .faith-main .msoc-offline-next-session { padding:0; background:transparent; border-radius:0; min-width:0; }
body .studio-shell .faith-main .msoc-offline-group-metrics strong,
body .studio-shell .faith-main .msoc-offline-next-session strong { font-size:13px; line-height:1.4; font-weight:600; margin-top:3px; }
body .studio-shell .faith-main .msoc-offline-next-session p { font-size:12px; margin:3px 0 0; font-weight:400; }
body .studio-shell .faith-main .msoc-offline-group-actions { display:flex; flex-wrap:wrap; gap:6px; }
body .studio-shell .faith-main .msoc-offline-group-card button { min-height:36px; padding:7px 10px; border-radius:6px; font-size:12px; font-weight:600; background:#2457c5; }
body .studio-shell .faith-main .msoc-offline-group-card button.danger { background:#fff; color:#a22b3b; border:1px solid #ebd5d9; }
@media(max-width:1100px) {
    body .studio-shell .faith-main .msoc-offline-group-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; }
    body .studio-shell .faith-main .msoc-offline-group-card header { grid-column:1/-1; }
    body .studio-shell .faith-main .msoc-offline-group-actions { grid-column:1/-1; }
}
@media(max-width:640px) {
    body .studio-shell .faith-main .msoc-offline-group-detail header :is(button,a) { min-height:44px; }
    body .studio-shell .faith-main .msoc-offline-groups-hero { display:block; }
    body .studio-shell .faith-main .msoc-offline-groups-hero aside { margin-top:10px; }
    body .studio-shell .faith-main .msoc-offline-group-card button { min-height:44px; }
}
/* Learner and parent attendance share the same compact, responsive summary. */
.msoc-learner-attendance-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border:1px solid #d8d9ee;border-radius:16px;background:linear-gradient(120deg,#eee9ff,#e4f5fa);color:#17304f}
.msoc-learner-attendance-profile{display:flex;align-items:center;gap:14px;min-width:0}
.msoc-learner-attendance-profile h1{font-size:clamp(20px,3vw,28px);line-height:1.2;margin:4px 0;font-weight:750}
.msoc-learner-attendance-profile p{font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.msoc-learner-attendance-profile>div>span{font-size:12px;font-weight:650;color:#56647d}
.msoc-learner-attendance-meter{display:grid;justify-items:center;gap:7px;flex-shrink:0;font-size:12px;color:#405577}
.msoc-learner-attendance-meter>div{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:conic-gradient(#0ca885 var(--attendance-progress),#d2e5e8 0);position:relative}
.msoc-learner-attendance-meter>div:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#f8fbff}
.msoc-learner-attendance-meter strong{position:relative;font-size:22px;color:#17304f}
.msoc-learner-attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.msoc-learner-attendance-summary article{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #dfe2ef;border-radius:12px;background:#ede9fc;color:#17304f}
.msoc-learner-attendance-summary article:nth-child(2){background:#e1f5ed}
.msoc-learner-attendance-summary article:nth-child(3){background:#fde9ec}
.msoc-learner-attendance-summary article:nth-child(4){background:#e4effd}
.msoc-learner-attendance-summary svg,.msoc-learner-attendance-note>svg{width:24px;height:24px;flex-shrink:0}
.msoc-learner-attendance-summary article>div{display:grid;gap:3px;min-width:0}
.msoc-learner-attendance-summary strong{font-size:24px;line-height:1.2;font-weight:750}
.msoc-learner-attendance-summary span{font-size:13px;line-height:1.4;color:#405577}
.msoc-learner-attendance-note{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#e5f4ee;border:1px solid #cce6da;border-radius:12px;color:#204d43;margin-bottom:16px}
.msoc-learner-attendance-note>div{display:grid;gap:4px;font-size:14px;line-height:1.5}
.msoc-learner-attendance-note span{font-size:13px}
.msoc-learner-attendance-history{padding:18px;border:1px solid #dfe2ef;border-radius:14px;background:#f8fbff;color:#17304f}
.msoc-learner-attendance-timeline{display:grid;gap:10px;margin-top:14px}
.msoc-learner-attendance-timeline>article{display:flex;align-items:flex-start;gap:14px;padding:14px;border:1px solid #e0e6f0;border-radius:12px;background:#fff}
.msoc-learner-attendance-date{display:grid;justify-items:center;gap:3px;min-width:62px;padding:9px;background:#e8effc;border-radius:10px}
.msoc-learner-attendance-date strong{font-size:22px;line-height:1.2}
.msoc-learner-attendance-date span{font-size:11px}
.msoc-learner-attendance-main{flex:1;min-width:0;overflow-wrap:anywhere}
.msoc-learner-attendance-main h3{font-size:15px;font-weight:700;line-height:1.4}
.msoc-learner-attendance-main p{font-size:13px;color:#52617b;margin:3px 0 9px}
.msoc-learner-attendance-main dl{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;line-height:1.5}
.msoc-learner-attendance-main dt{color:#64748b}
.msoc-learner-attendance-main dd{margin:0}
@media(max-width:760px){
 .msoc-learner-attendance-hero{padding:16px;flex-wrap:wrap;gap:14px}
 .msoc-learner-attendance-profile{align-items:flex-start}
 .msoc-learner-attendance-meter{display:none}
 .msoc-learner-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .msoc-learner-attendance-summary article{padding:12px;gap:9px}
 .msoc-learner-attendance-summary strong{font-size:22px}
 .msoc-learner-attendance-summary span{font-size:12px}
 .msoc-learner-attendance-history{padding:12px}
 .msoc-learner-attendance-timeline>article{flex-wrap:wrap;gap:10px;padding:12px}
 .msoc-learner-attendance-main{flex-basis:calc(100% - 80px)}
 .msoc-learner-attendance-timeline .msoc-attendance-status{margin-left:72px}
}

/* Desktop conversations own their scroll area; the composer never scrolls away. */
@media (min-width: 881px) {
 body .msoc-chat-main-grid {
  grid-template-columns: minmax(240px, 30%) minmax(0, 1fr) !important;
  grid-template-rows: minmax(0, 1fr);
  height: calc(100dvh - 215px) !important;
  min-height: 0 !important;
  overflow: hidden;
 }
 body :is(.msoc-chat-thread-panel, .msoc-chat-conversation-panel) { min-height: 0 !important; height: 100%; }
 body :is(.msoc-chat-shell, .msoc-chat-body, .msoc-chat-conversation-list) { min-height: 0 !important; min-width: 0; }
 body .msoc-chat-shell { flex: 1 1 0; }
 body .msoc-chat-body { max-height: none !important; overflow-y: auto; overscroll-behavior: contain; }
 body :is(.msoc-chat-thread-topbar, .msoc-chat-composer, .msoc-chat-panel-heading, .msoc-chat-list-search) { flex-shrink: 0; }
 body .msoc-chat-composer { margin-top: 0; position: relative; z-index: 1; }
 body .msoc-chat-message {
  align-self: stretch; width: 100%; max-width: none; flex-shrink: 0;
  padding: 0; border: 0; border-radius: 0; background: transparent;
 }
 body .msoc-chat-message.is-mine { align-self: stretch; background: transparent; border: 0; }
 body .msoc-chat-bubble { max-width: min(85%, 42rem); min-width: min(160px, 85%); overflow-wrap: anywhere; }
 body .msoc-chat-bubble time { display: block; white-space: nowrap; margin-top: 6px; }
}
/* Teacher marking: five aligned columns on desktop, identity plus three equal controls on phones. */
body .teacher-marking-compact .teacher-marking-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px 0; }
body .teacher-marking-compact .teacher-marking-toolbar button { background:#1761c4; color:#fff; border:0; border-radius:8px; min-height:44px; padding:8px 14px; font-size:14px; font-weight:650; }
body .teacher-marking-compact .teacher-marking-toolbar small { color:#64748b; }
body .studio-shell .teacher-marking-compact :is(.msoc-simple-roster-row,.msoc-simple-roster-head) { display:grid!important; grid-template-columns:minmax(180px,1fr) minmax(140px,1fr) repeat(3,110px)!important; gap:10px!important; align-items:center; }
body .studio-shell .teacher-marking-compact .msoc-teacher-roster-person { display:flex!important; gap:10px; align-items:center; grid-column:auto!important; }
body .teacher-marking-compact .msoc-teacher-roster-person span { display:grid; gap:3px; min-width:0; }
body .teacher-marking-compact .msoc-teacher-roster-person small { font-size:12px; color:#64748b; }
body .teacher-marking-compact .msoc-attendance-toggle { min-height:44px!important; padding:8px!important; font-size:13px!important; display:flex!important; justify-content:center; gap:6px; border-radius:8px; }
body .teacher-marking-compact .msoc-attendance-toggle:has(input:checked) { background:#e7efff!important; color:#174c99!important; border-color:#5085d6!important; }
body .teacher-marking-compact .msoc-attendance-toggle.is-present:has(input:checked) { background:#dff6e9!important; color:#146139!important; border-color:#3aab72!important; }
body .teacher-marking-compact .msoc-attendance-toggle.is-absent:has(input:checked) { background:#ffe8ed!important; color:#a2213c!important; border-color:#dc6880!important; }
@media(max-width:1100px) {
 body .studio-shell .teacher-marking-compact .msoc-simple-roster-head { display:none!important; }
 body .studio-shell .teacher-marking-compact .msoc-simple-roster-row { grid-template-columns:repeat(3,minmax(0,1fr))!important; padding:12px 0!important; gap:8px!important; }
 body .studio-shell .teacher-marking-compact :is(.msoc-teacher-roster-person,.msoc-teacher-roster-assignment) { grid-column:1/-1!important; }
 body .teacher-marking-compact .msoc-teacher-roster-assignment { font-size:12px; color:#64748b; }
}
@media(max-width:600px) {
 body .studio-shell .msoc-offline-session-filters { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; padding:12px!important; }
 body .studio-shell .msoc-offline-session-filters label { min-width:0!important; }
 body .studio-shell .msoc-offline-session-filters :is(input,select) { width:100%!important; min-width:0!important; height:44px!important; min-height:44px!important; padding:8px!important; font-size:14px!important; }
 body .studio-shell .msoc-offline-session-filters>div { grid-column:1/-1; display:flex; gap:10px; align-items:center; }
 body .studio-shell .msoc-offline-session-filters button { min-height:44px!important; padding:8px 16px!important; width:auto!important; }
}
@media(max-width:600px) {
 body .studio-shell .msoc-users-filters { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:10px!important; padding:12px!important; }
 body .studio-shell .msoc-users-filters .msoc-users-search { grid-column:1/-1!important; }
 body .studio-shell .msoc-users-filters label { min-width:0; }
 body .studio-shell .msoc-users-filters :is(input,select) { min-height:44px!important; height:44px!important; width:100%!important; min-width:0!important; padding:8px!important; font-size:14px!important; }
 body .studio-shell .msoc-users-filter-actions { grid-column:1/-1!important; display:flex!important; gap:12px!important; align-items:center!important; }
 body .studio-shell .msoc-users-filter-actions button { min-height:44px!important; width:auto!important; padding:8px 12px!important; font-size:13px!important; }
}
/* Role switching also appears in the custom header, outside Filament's topbar. */
.studio-shell .msoc-role-default { border-top:1px solid #e2ddeb; margin-top:8px!important; padding:8px 2px 2px; }
.studio-shell .msoc-role-default p { margin:6px; font-size:12px; line-height:1.5; color:#625a73; }
.studio-shell .msoc-role-default button { display:flex; justify-content:center; min-height:44px; background:#493581; color:#fff; font-size:13px; font-weight:650; }
.studio-shell .msoc-role-default button:hover { background:#392765; color:#fff; }
.studio-shell .msoc-topbar-actions { display:flex; align-items:center; gap:8px; }
.studio-shell .msoc-role-switcher { position:relative; flex:none; }
.studio-shell .msoc-role-switcher>summary {
  display:flex; align-items:center; justify-content:center; gap:6px;
  min-height:44px; max-width:180px; padding:8px 12px;
  list-style:none; cursor:pointer; border:1px solid #c6c1df;
  border-radius:10px; background:#f5f1ff; color:#493581; font-size:13px; font-weight:650;
}
.studio-shell .msoc-role-switcher>summary::-webkit-details-marker { display:none; }
.studio-shell .msoc-role-switcher>summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.studio-shell .msoc-role-switcher>summary svg { width:14px; height:14px; flex:none; }
.studio-shell .msoc-role-switcher>summary:focus-visible { outline:3px solid #7e68c4; outline-offset:2px; }
.studio-shell .msoc-role-switcher-dropdown {
  position:absolute; top:calc(100% + 8px); right:0; z-index:100;
  width:300px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 100px);
  overflow:auto; padding:8px; border:1px solid #d9d3e7; border-radius:14px;
  background:#fff; box-shadow:0 14px 40px #29213b30;
}
.studio-shell .msoc-role-switcher-heading { padding:6px 10px 10px; font-size:12px; font-weight:650; color:#625a73; }
.studio-shell .msoc-role-switcher-dropdown form { margin:0; }
.studio-shell .msoc-role-switcher-dropdown button {
  display:grid; grid-template-columns:32px minmax(0,1fr) 20px;
  align-items:center; gap:10px; width:100%; min-height:56px; padding:9px;
  text-align:left; border:0; border-radius:9px; background:#fff; color:#28364a; cursor:pointer;
}
.studio-shell .msoc-role-switcher-dropdown button:hover,
.studio-shell .msoc-role-switcher-dropdown button.is-active { background:#eee9fb; color:#493581; }
.studio-shell .msoc-role-switcher-dropdown button:focus-visible { outline:2px solid #7e68c4; outline-offset:-2px; }
.studio-shell .msoc-role-switcher-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:8px; background:#f3f0fa; }
.studio-shell .msoc-role-switcher-icon svg { width:19px; height:19px; }
.studio-shell .msoc-role-switcher-copy { min-width:0; }
.studio-shell .msoc-role-switcher-copy span { display:block; font-size:14px; font-weight:650; }
.studio-shell .msoc-role-switcher-copy small { display:block; margin-top:2px; font-size:12px; line-height:1.4; color:#625a73; }
.studio-shell .msoc-role-switcher-check svg { width:18px; height:18px; }
/* One sans-serif text family across public pages and the authenticated portal.
   Preserve existing sizes, weights and icon fonts. */
body { --portal-text-family:sans-serif; font-family: sans-serif !important; }
body :is(h1,h2,h3,h4,h5,h6,p,a,label,input,select,textarea,button,summary,legend,small,strong,em,cite,blockquote,figcaption,td,th,dt,dd,span,div) { font-family: sans-serif !important; }
body :is(.faith-admission-hero,.step,.faith-auth-card,.studio-auth-story,.studio-home-copy,.faith-home-section,.faith-main) :is(h1,h2,h3,h4,h5,h6) { font-family: sans-serif !important; }
/* Crop/camera dialogs are appended outside the registration form at runtime. */
body .crop-modal, body .crop-modal :is(h2,h3,h4,p,label,button,input,li,span,div) { font-family: sans-serif !important; }
body .crop-modal :is(h2,h3,h4) { font-weight:700!important; }
body .crop-modal :is(p,label,li) { font-weight:400!important; }
body .crop-modal button { font-weight:600!important; }
.portal-password-reset .password-reset-shell { width:calc(100% - 32px); max-width:480px; margin:32px auto; padding:0; }
.portal-password-reset .faith-panel { padding:24px!important; border-radius:12px!important; }
.portal-password-reset .faith-panel header { display:block; margin-bottom:20px; padding:0 0 16px; }
.portal-password-reset h1 { font-size:24px!important; line-height:1.3; margin:0 0 8px; }
.portal-password-reset .faith-panel header p { font-size:14px; line-height:1.6; margin:0; }
.portal-password-reset .faith-form-stack { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.portal-password-reset .faith-form-stack label { display:grid; gap:7px; min-width:0; font-size:13px; font-weight:600; color:#26344d; }
.portal-password-reset .faith-form-stack input:not([type=hidden]) { display:block; box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:10px 12px; font-size:16px; line-height:1.4; color:#20334d; background:#fff; border:1px solid #bac8da; border-radius:8px; }
.portal-password-reset .faith-form-stack input:focus-visible { outline:3px solid #c7b6ea; outline-offset:2px; border-color:#6941c6; }
.portal-password-reset .faith-form-stack button { width:100%; min-height:44px; margin-top:4px; background:#6941c6; border-color:#6941c6; color:#fff; font-size:14px; border-radius:8px; }
.portal-password-reset .faith-form-stack input[readonly] { background:#f0f3f8; color:#35445c; }
.portal-password-reset #reset-email-note { color:#617086; font-size:12px; line-height:1.5; margin-top:-8px; }
.portal-password-reset .reset-password-help { padding:12px; background:#f4f0fb; border-radius:8px; font-size:12px; line-height:1.6; }
.portal-password-reset .reset-password-help ul { padding-left:18px; margin:6px 0; }
.portal-password-reset #reset-password-feedback { margin:8px 0 0; color:#b42318; font-size:13px; }
.portal-password-reset #reset-password-feedback.is-valid { color:#146c43; }
.portal-password-reset #reset-password-rules .requirement-done { color:#146c43; font-weight:600; list-style:none; }
@media(max-width:600px) { .portal-password-reset .password-reset-shell { margin:20px auto; } .portal-password-reset .faith-panel { padding:20px!important; } }
@media(max-width:600px) {
  .studio-shell .msoc-role-switcher>summary { max-width:112px; padding:8px; font-size:12px; }
  .studio-shell .msoc-role-switcher-dropdown { position:fixed; top:76px; right:12px; max-height:calc(100dvh - 100px); }
}

/* Registration review: compact, readable summaries without oversized tiles. */
.faith-admission-form .teaching-details-hero { padding:16px!important; border-radius:10px!important; background:#f0edf8!important; box-shadow:none!important; }
.faith-admission-form .teaching-details-hero h2 { font-size:21px!important; line-height:1.35!important; }
.faith-admission-form .teaching-details-hero .hint { margin:6px 0 0!important; font-size:13px!important; color:#4d5c70!important; }
.faith-admission-form .teaching-details-grid { gap:12px!important; }
.faith-admission-form .teaching-card { padding:16px!important; border-radius:10px!important; box-shadow:none!important; background:#fff!important; border:1px solid #dce3ed!important; }
.faith-admission-form .teaching-card-head { margin-bottom:10px!important; padding-bottom:10px!important; gap:10px!important; }
.faith-admission-form .teaching-card h3 { font-size:16px!important; line-height:1.35!important; margin:3px 0!important; color:#26364b!important; }
.faith-admission-form :is(.teaching-eyebrow,.teaching-card-kicker) { font-size:10px!important; color:#6047a4!important; letter-spacing:.05em!important; }
.faith-admission-form .teaching-chip-grid { display:flex!important; flex-wrap:wrap; gap:8px!important; }
.faith-admission-form .teaching-chip-grid .multi-check { min-height:44px!important; padding:9px 12px!important; border-radius:8px!important; background:#f7f8fc!important; border:1px solid #d4dce8!important; color:#34435a!important; font-size:13px!important; line-height:1.45!important; gap:8px!important; box-shadow:none!important; min-width:0!important; }
.faith-admission-form .teaching-chip-grid .multi-check:has(input:checked) { background:#ece6fa!important; border-color:#8064c0!important; color:#44306c!important; }
.faith-admission-form .teaching-chip-grid .multi-check { font-weight:600!important; }
.faith-admission-form .teaching-chip-grid .multi-check input { width:17px!important; height:17px!important; min-height:17px!important; flex:none; padding:0!important; accent-color:#6848b4; }
.faith-admission-form .teaching-card .select-all { min-height:44px!important; border-radius:8px!important; padding:8px 12px!important; background:#6545b6!important; color:#fff!important; font-size:12px!important; border:1px solid #6545b6!important; }
.faith-admission-form .teaching-card :is(.multi-help,.empty-groups,.languages-other) { padding:10px!important; margin-top:10px!important; background:#f7f8fc!important; border-radius:8px!important; font-size:13px!important; }
@media(max-width:600px) { .faith-admission-form .teaching-card { padding:12px!important; } .faith-admission-form .teaching-card-head { flex-wrap:wrap!important; } .faith-admission-form .teaching-chip-grid .multi-check { flex:1 1 110px; } }
[data-registration-otp] { margin-top:12px; padding:14px; border:1px solid #d5dce8; border-radius:10px; background:#f5f7fb; color:#33445d; }
[data-registration-otp] h3 { margin:6px 0!important; font-size:16px!important; color:inherit!important; }
[data-registration-otp] p { font-size:13px; line-height:1.5; margin:6px 0; color:inherit; overflow-wrap:anywhere; }
[data-registration-otp] .otp-state-label { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.02em; color:inherit; }
[data-registration-otp] [data-otp-address] { font-size:14px; font-weight:600; }
[data-registration-otp] .otp-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
[data-registration-otp] [hidden] { display:none!important; }
[data-registration-otp]:is([data-state=sent],[data-state=sending],[data-state=verifying]) { background:#edf4ff; border-color:#b9cfee; color:#244a78; }
[data-registration-otp][data-state=verified] { background:#eaf7f0; border-color:#abd5bd; color:#215c40; }
[data-registration-otp][data-state=error] { background:#fff0f0; border-color:#e5b6b6; color:#8a3030; }
@media(max-width:600px) { [data-registration-otp] .otp-actions { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); } [data-registration-otp] [data-otp-send] { grid-column:1/-1; } [data-registration-otp] [data-otp-code] { width:100%!important; min-width:0; font-size:16px; } }
body .studio-shell input:is([type=checkbox],[type=radio]) { width:18px!important; height:18px!important; min-height:18px!important; max-height:18px!important; padding:0!important; flex:none!important; background-repeat:no-repeat!important; background-position:center!important; background-size:100% 100%!important; }
body .studio-shell .fi-fo-checkbox-list label { min-height:36px; align-items:center; gap:8px; }
body .studio-shell .portal-registration-review .fi-fo-checkbox-list-option { opacity:1!important; }
body .studio-shell .portal-registration-review .fi-fo-checkbox-list-option-label { color:#34435a!important; opacity:1!important; }
body .studio-shell .portal-registration-review input:disabled,body .studio-shell .portal-registration-review textarea:disabled { opacity:1; color:#34435a; -webkit-text-fill-color:#34435a; background-color:#f4f6fa; }
.faith-admission-form .review { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.faith-admission-form .review>article { padding:12px 14px; border:1px solid #dce3ee; border-left:3px solid #7760c0; border-radius:8px; background:#f8f9fd; font-size:14px; line-height:1.55; min-width:0; }
.faith-admission-form .review>article strong { color:#3e3270; font-size:13px; font-weight:700; margin:0 0 5px; }
.faith-admission-form .review>article span { display:block; color:#26364b; overflow-wrap:anywhere; }
.faith-admissions-teacher .review>.teacher-teaching-review { grid-column:1/-1; background:#fff; }
.teacher-review-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; border-bottom:1px solid #e4e8f0; padding-bottom:8px; margin-bottom:12px; }
.faith-admission-form .teacher-review-heading h3 { margin:0; font-size:16px; font-weight:650; color:#26364b; }
.faith-admission-form .teacher-review-edit { min-height:44px; padding:7px 12px; border:1px solid #cfd9ea; border-radius:7px; background:#f2f6ff; color:#244b87; font:inherit; font-size:13px; font-weight:600; }
.teacher-review-preferences { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.teacher-review-preferences section { min-width:0; }
.faith-admission-form .teacher-review-preferences h4,.faith-admission-form .teacher-review-parish h5 { font-size:13px; font-weight:700; color:#3e3270; margin:0 0 7px; overflow-wrap:anywhere; }
.teacher-review-chips { display:flex; flex-wrap:wrap; gap:6px; list-style:none; padding:0; margin:0; }
.teacher-review-chips li { max-width:100%; padding:4px 8px; border:1px solid #d8e1ee; border-radius:6px; background:#f4f7fc; color:#26364b; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.teacher-review-groups { grid-column:1/-1; padding-top:10px; border-top:1px solid #e4e8f0; }
.teacher-review-parish+.teacher-review-parish { margin-top:10px; }
.faith-admission-form .teacher-review-parish h5 { color:#526176; font-size:13px; font-weight:500; }
.faith-admission-form .teacher-review-empty { color:#64748b; font-size:14px; margin:0; }
@media(max-width:600px) { .teacher-review-preferences { grid-template-columns:minmax(0,1fr); } .teacher-review-heading { align-items:flex-start; } }
/* Compact parish workspaces retain readable text and phone-size touch targets. */
.portal-church-workspace { display:grid; gap:6px; padding:12px; margin-bottom:12px; border:1px solid #d6dfeb; border-radius:10px; background:#fff; min-width:0; font-family:sans-serif; }
.portal-church-workspace label { font-size:13px; font-weight:600; color:#263c58; }
.portal-church-workspace label small { margin-left:6px; font-weight:400; color:#52647b; }
.portal-church-workspace>div { display:flex; gap:8px; min-width:0; }
.portal-church-workspace select { flex:1; width:100%; min-width:0; min-height:44px; padding:8px; border:1px solid #bbc9dc; border-radius:7px; background:#fff; color:#24374e; font:inherit; font-size:14px; }
.portal-church-workspace button { flex:none; min-height:44px; padding:8px 12px; border-radius:7px; background:#3155ac; color:#fff; font:600 13px sans-serif; }
.portal-church-workspace>small { font-size:12px; line-height:1.5; color:#52647b; }
.portal-church-workspace-current { display:none; overflow-wrap:anywhere; }
.portal-church-workspace [role="status"] { font-size:12px; color:#156448; }
body .studio-shell .faith-dashboard { gap:12px; }
body .studio-shell .role-dashboard-heading { margin-bottom:0; }
body .studio-shell .faith-stat { padding:12px; gap:10px; border-radius:9px; }
body .studio-shell .faith-stat strong { font-size:22px; }
body .studio-shell .faith-stat small { display:none; }
body .studio-shell .studio-approval-callout { padding:12px; gap:12px; }
body .studio-shell .studio-approval-callout p { font-size:13px; line-height:1.5; }
body .studio-shell .faith-main .fi-ta-content-grid { gap:12px; padding:12px; }
body .studio-shell .faith-main .portal-student-card-heading { min-height:50px; padding:8px 34px 8px 10px; }
body .studio-shell .faith-main .portal-student-card-facts { padding:10px; gap:6px 10px!important; }
body .studio-shell .faith-main .portal-directory-card { border-radius:9px; }
body .studio-shell .faith-main .fi-section-header { padding:10px 12px; }
body .studio-shell .faith-main .fi-section-content { padding:12px; }
body .studio-shell .faith-main .fi-sc.fi-sc-has-gap { row-gap:10px!important; column-gap:12px!important; }
@media(max-width:600px) {
 .portal-church-workspace { padding:10px; }
 .portal-church-workspace>div { flex-wrap:wrap; }
 .portal-church-workspace select { flex-basis:100%; font-size:16px; }
 .portal-church-workspace button { margin-left:auto; }
 .portal-church-workspace-current { display:block; }
 body .studio-shell .faith-stat { padding:10px; }
 body .studio-shell .faith-main .portal-directory-card :is(button,a.fi-btn) { min-height:44px; }
}
body.registration-confirmation { display:block; background:#f0edf8; padding:24px 16px 64px; color:#26364b; }
.registration-confirmation .card { margin:auto; width:min(760px,100%); border-radius:16px; box-shadow:0 8px 30px #34285b12; }
.registration-confirmation .head { padding:24px; gap:12px; background:#23385b; flex-wrap:wrap; }
.registration-confirmation .head>div { flex:1 1 260px; min-width:0; }
.registration-confirmation .head strong { color:#fff; font-size:15px; font-weight:600; }
.registration-confirmation .head p { color:#e5eafa!important; font-size:13px; line-height:1.5; }
.registration-confirmation .head h1 { color:#fff; font-size:26px; line-height:1.3; overflow-wrap:anywhere; }
.registration-confirmation .head img { width:44px!important; height:44px!important; aspect-ratio:1; object-fit:contain!important; border-radius:8px; padding:3px; }
.registration-confirmation .head-tag { color:#fbd677; font-size:11px; letter-spacing:.06em; }
.registration-confirmation .body { padding:24px; gap:14px; }
.registration-confirmation .status-badge { padding:11px 14px; border-radius:8px; font-size:14px; font-weight:600; line-height:1.5; background:#fff5d7; color:#704715; border-color:#eed391; }
.registration-confirmation .status-badge:first-child { background:#eaf7f0; color:#215840; border-color:#bddfcc; }
.registration-confirmation .status-dot { flex:none; width:8px; height:8px; box-shadow:none; }
.registration-confirmation .status-badge:first-child .status-dot { background:#25845d; }
.registration-confirmation .grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.registration-confirmation article { padding:12px 14px; border-radius:8px; min-width:0; background:#f7f8fc; }
.registration-confirmation small { font-size:11px; color:#59687c; letter-spacing:.04em; font-weight:600; }
.registration-confirmation strong { font-size:14px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.registration-confirmation .notice-text { padding:12px 14px; font-size:14px; background:#edf2fc; border-color:#d2dff3; border-radius:8px; color:#30486c; }
.registration-confirmation .actions { gap:10px; margin:0; }
.registration-confirmation .btn { min-height:44px; padding:10px 16px; border-radius:8px; font-size:14px; font-weight:600; }
.registration-confirmation .btn-primary { background:#6545bd; color:#fff; box-shadow:none; }
@media(max-width:600px) {
 .faith-admission-form .review,.registration-confirmation .grid { grid-template-columns:1fr; }
 body.registration-confirmation { padding:14px 12px 64px; }
 .registration-confirmation .head { padding:18px; flex-direction:row; text-align:left; }
 .registration-confirmation .head>div { flex-basis:100%; }
 .registration-confirmation .head h1 { font-size:23px; }
 .registration-confirmation .body { padding:16px; gap:12px; }
}

/* User account validation: keep errors distinct from muted helper text. */
body .studio-shell .faith-main .user-account-form :is(.fi-fo-field-error-message,.fi-fo-field-wrp-error-message),
body .studio-shell .faith-main .user-account-form :is(.fi-fo-field-error-message,.fi-fo-field-wrp-error-message) * {
    color:#b91c1c!important;
    font-weight:600;
}
body .studio-shell .faith-main .user-account-form .fi-fo-field:has(.fi-fo-field-error-message,.fi-fo-field-wrp-error-message) .fi-input-wrp {
    border-color:#b91c1c!important;
}

/* Date-based teacher roster: one identity and two attendance choices. */
body .studio-shell .teacher-marking-compact :is(.msoc-simple-roster-row,.msoc-simple-roster-head) { grid-template-columns:minmax(180px,1fr) 130px 130px!important; }
body .studio-shell .teacher-marking-compact .msoc-teacher-roster-person strong { overflow-wrap:anywhere; }
.msoc-register-legend { margin:10px 0; font-size:13px; color:#475569; }
@media(max-width:767px) {
 body .studio-shell .teacher-marking-compact .msoc-simple-roster-row { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
 body .studio-shell .teacher-marking-compact .msoc-simple-roster-row>div:first-child { grid-column:1/-1!important; }
}
