:root {
    --burgundy: #751a29;
    --burgundy-dark: #4b151d;
    --burgundy-soft: #f7eaed;
    --text: #17202a;
    --muted: #5f6b76;
    --line: #d9dee4;
    --surface: #fff;
    --background: #f5f7f9;
    --success: #176b45;
    --danger: #a51d2d;
    --shadow: 0 12px 30px rgba(23, 32, 42, .08);
}

.schedule-account-identity { display: grid; text-align: right; }
.mfa-auth-card { display: grid; gap: .85rem; }
.mfa-setup-key { background: var(--surface-muted,#f7f3f3); border: 1px solid var(--border,#dfd4d5); border-radius: .65rem; display: grid; gap: .25rem; padding: .75rem; }
.mfa-setup-key span { color: var(--muted,#6c6162); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.mfa-setup-key code { font-size: .95rem; overflow-wrap: anywhere; user-select: all; }
.mfa-recovery-option { border-top: 1px solid var(--line); padding-top: .75rem; }
.mfa-recovery-option > summary { min-height: 44px; color: var(--burgundy); cursor: pointer; display: flex; align-items: center; font-weight: 750; }
.mfa-recovery-option > p { margin: .25rem 0 0; color: var(--muted); font-size: .9rem; }
.mfa-recovery-option form { margin-top: .65rem; }
.login-security-panel { max-width: 58rem; display: grid; gap: 1.25rem; }
.login-security-summary { display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; }
.login-security-summary h2 { margin: 0; }
.login-security-summary p { margin: .35rem 0 0; color: var(--muted); }
.login-security-summary dl { margin: 0; display: grid; grid-template-columns: repeat(3,minmax(5.5rem,1fr)); gap: .5rem; }
.login-security-summary dl div { padding: .6rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--background); text-align: center; }
.login-security-summary dt { color: var(--muted); font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.login-security-summary dd { margin: .15rem 0 0; color: var(--burgundy); font-size: 1.3rem; font-weight: 850; }
.login-security-form { max-width: 36rem; display: grid; }
.login-security-switch { min-height: 44px; cursor: pointer; display: grid; grid-template-columns: 2.8rem minmax(0,1fr); align-items: center; gap: .7rem; }
.login-security-switch input { position: absolute; width: 1px; min-height: 1px; height: 1px; margin: 0; opacity: 0; }
.login-security-switch > span { width: 2.8rem; height: 1.55rem; padding: .18rem; border: 1px solid #8b969f; border-radius: 999px; background: #d9dee4; display: flex; align-items: center; transition: background .15s ease, border-color .15s ease; }
.login-security-switch > span::before { width: 1.05rem; height: 1.05rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(23,32,42,.25); content: ""; transition: transform .15s ease; }
.login-security-switch input:checked + span { border-color: var(--burgundy); background: var(--burgundy); }
.login-security-switch input:checked + span::before { transform: translateX(1.2rem); }
.login-security-switch input:focus-visible + span { outline: 3px solid #e3a834; outline-offset: 2px; }
.login-security-form .field-help { margin: .35rem 0 1rem; }
.login-security-form button { justify-self: start; }
.compact-security-panel { align-items: start; display: grid; gap: 1rem; grid-template-columns: minmax(0,1fr) auto; }
.compact-security-panel h2, .mfa-recovery-notice h2 { margin: 0; }
.compact-security-panel p { margin: .3rem 0 0; }
.compact-security-panel details { max-width: 26rem; }
.compact-security-panel form { display: grid; gap: .65rem; margin-top: .75rem; }
.mfa-recovery-notice ul { display: grid; gap: .4rem; grid-template-columns: repeat(2,minmax(0,1fr)); list-style: none; margin: 1rem 0 0; padding: 0; }
.mfa-recovery-notice code { display: block; font-size: .85rem; overflow-wrap: anywhere; user-select: all; }
@media (max-width: 640px) {
    .compact-security-panel { grid-template-columns: 1fr; }
    .mfa-recovery-notice ul { grid-template-columns: 1fr; }
    .login-security-summary { grid-template-columns: 1fr; }
    .login-security-summary dl { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .login-security-form button { width: 100%; }
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; background: var(--background); color: var(--text); font: 1rem/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--burgundy); text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; }
button, .secondary-button { min-height: 44px; border: 0; border-radius: .55rem; padding: .68rem 1rem; background: var(--burgundy); color: #fff; font-weight: 700; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
button:hover, button:focus-visible, .secondary-button:hover, .secondary-button:focus-visible { background: var(--burgundy-dark); }
.danger-button { min-height: 44px; border: 1px solid var(--danger); border-radius: .55rem; padding: .68rem 1rem; color: #fff; background: var(--danger); font-weight: 750; text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.danger-button:hover, .danger-button:focus-visible { color: #fff; background: #711320; }
.reset-warning { border-left: 4px solid var(--danger); display: grid; gap: 1rem; }
.reset-warning h2, .reset-approval-form h2, .reset-approval-result h2 { margin-top: 0; }
.reset-target-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; margin: 0; }
.reset-target-summary div { min-width: 0; padding: .65rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--background); }
.reset-target-summary dt { color: var(--muted); font-size: .76rem; font-weight: 750; text-transform: uppercase; letter-spacing: .03em; }
.reset-target-summary dd { margin: .2rem 0 0; overflow-wrap: anywhere; font-weight: 700; }
.reset-approval-form { max-width: 46rem; }
.reset-approval-form code, .reset-approval-result code { overflow-wrap: anywhere; }
.reset-approval-result > code { display: block; margin: .8rem 0; padding: .75rem; border-radius: .45rem; background: #20171a; color: #fff; }
input, select, textarea { width: 100%; min-height: 44px; margin: .35rem 0 1rem; border: 1px solid #aeb7c1; border-radius: .5rem; padding: .65rem .75rem; background: #fff; color: var(--text); }
textarea { min-height: 6rem; resize: vertical; }
input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid #e3a834; outline-offset: 2px; }
label { display: block; font-weight: 700; }
label > span, legend > span { color: var(--muted); font-size: .875rem; font-weight: 500; }
fieldset { margin: 1rem 0; border: 1px solid var(--line); border-radius: .65rem; padding: 1rem; }
legend { padding: 0 .35rem; font-weight: 800; }
h1, h2 { line-height: 1.15; letter-spacing: -.02em; }
h1 { margin: .15rem 0 .65rem; font-size: clamp(2rem, 4vw, 2.625rem); }
h2 { margin: 0 0 .75rem; font-size: 1.25rem; }
p { margin-top: 0; }
.skip-link { position: fixed; z-index: 100; left: 1rem; top: -5rem; background: #fff; color: var(--text); padding: .75rem 1rem; border-radius: .5rem; box-shadow: var(--shadow); }
.skip-link:focus { top: 1rem; }
.schedule-app-shell { min-height: 100vh; display: grid; grid-template-columns: 17rem minmax(0, 1fr); }
.schedule-workspace { min-width: 0; min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; }
.schedule-sidebar { position: sticky; z-index: 30; top: 0; height: 100vh; padding: 1.25rem 1rem; overflow-y: auto; color: #fff; background: linear-gradient(165deg, #571722, var(--burgundy-dark) 72%); display: flex; flex-direction: column; }
.schedule-sidebar-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.schedule-sidebar-close { display: none; width: 44px; height: 44px; min-height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid rgba(255, 255, 255, .45); border-radius: 50%; color: #fff; background: transparent; font-size: 1.5rem; }
.schedule-sidebar-close:hover, .schedule-sidebar-close:focus-visible { background: rgba(255, 255, 255, .12); }
.schedule-header { min-height: 72px; padding: .75rem 1rem; background: var(--burgundy-dark); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.schedule-brand { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; }
.schedule-brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--burgundy); font-weight: 900; }
.schedule-brand span:last-child, .schedule-account > span { display: grid; }
.schedule-brand small, .schedule-account small { color: #f1dce1; font-size: .75rem; }
.schedule-topbar { position: sticky; z-index: 20; top: 0; min-height: 72px; padding: .65rem 1.25rem; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .96); box-shadow: 0 4px 18px rgba(23, 32, 42, .05); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.schedule-page-context { min-width: 0; display: grid; }
.schedule-page-context span { color: var(--muted); font-size: .75rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.schedule-page-context strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-account { display: flex; align-items: center; gap: 1rem; text-align: right; }
.schedule-account small { color: var(--muted); }
.schedule-account-menu { position: relative; }
.schedule-account-menu-toggle { position: relative; width: 44px; min-width: 44px; height: 44px; padding: 0; border: 1px solid #b9aeb1; border-radius: 50%; color: var(--burgundy-dark); background: #fff; cursor: pointer; list-style: none; display: grid; place-items: center; }
.schedule-account-menu-toggle::-webkit-details-marker { display: none; }
.schedule-account-menu-toggle svg, .schedule-account-dropdown svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.schedule-account-menu-toggle:hover, .schedule-account-menu-toggle:focus-visible, .schedule-account-menu[open] > .schedule-account-menu-toggle { border-color: var(--burgundy); color: #fff; background: var(--burgundy); }
.schedule-account-dropdown { position: absolute; z-index: 45; top: calc(100% + .45rem); right: 0; width: min(15rem, calc(100vw - 1.5rem)); padding: .35rem; border: 1px solid var(--line); border-radius: .65rem; background: #fff; box-shadow: 0 16px 40px rgba(23,32,42,.18); display: none; }
.schedule-account-menu[open] > .schedule-account-dropdown { display: block; }
.schedule-account-dropdown a, .schedule-account-dropdown button { width: 100%; min-height: 44px; padding: .6rem .7rem; border: 0; border-radius: .45rem; color: var(--text); background: transparent; text-align: left; text-decoration: none; display: flex; align-items: center; justify-content: flex-start; gap: .65rem; }
.schedule-account-dropdown a:hover, .schedule-account-dropdown a:focus-visible, .schedule-account-dropdown button:hover, .schedule-account-dropdown button:focus-visible { color: var(--burgundy); background: var(--burgundy-soft); }
.schedule-account-dropdown form { margin: 0; }
.schedule-account-unread { position: absolute; top: -.4rem; right: -.45rem; min-width: 1.3rem; height: 1.3rem; padding: 0 .3rem; border: 2px solid #fff; border-radius: 999px; color: #fff; background: var(--danger); font-size: .65rem; font-weight: 900; line-height: 1rem; display: grid; place-items: center; }
.schedule-account-menu-count { margin-left: auto; padding: .12rem .4rem; border-radius: 999px; color: #fff; background: var(--danger); font-size: .68rem; font-weight: 850; white-space: nowrap; }
.schedule-home-link { color: #fff; }
.schedule-nav { display: grid; gap: .2rem; margin-top: 1.5rem; }
.schedule-nav-label { margin: 1rem .75rem .35rem; color: #cdaeb4; font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.schedule-nav-label:first-child { margin-top: 0; }
.schedule-nav-link { min-height: 46px; padding: .55rem .7rem; border-left: 3px solid transparent; border-radius: .45rem; color: #eadde0; text-decoration: none; display: grid; grid-template-columns: 1.65rem minmax(0, 1fr); gap: .55rem; align-items: center; font-weight: 700; }
.schedule-nav-icon { width: 1.5rem; height: 1.5rem; color: #d9bac0; display: grid; place-items: center; font-size: 1rem; }
.schedule-nav-link:hover, .schedule-nav-link:focus-visible { color: #fff; background: rgba(255, 255, 255, .09); }
.schedule-nav-link.is-active { border-left-color: #f0b1bb; color: #fff; background: rgba(255, 255, 255, .14); }
.schedule-nav-link.is-active .schedule-nav-icon { color: #fff; }
.schedule-sidebar-footer { display: grid; gap: .15rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .15); }
.schedule-sidebar-footer a { min-height: 40px; padding: .55rem .75rem; color: #dac4c8; text-decoration: none; display: flex; align-items: center; justify-content: space-between; }
.schedule-sidebar-footer a:hover, .schedule-sidebar-footer a:focus-visible { color: #fff; }
.schedule-menu-toggle { display: none; min-height: 44px; padding: .55rem .7rem; gap: .45rem; }
.schedule-sidebar-backdrop { display: none; }
.schedule-container { width: 100%; min-width: 0; margin: 0; padding: 1.5rem 1.5rem 3rem; }
.schedule-guest .schedule-container { width: min(520px, calc(100% - 2rem)); min-height: calc(100vh - 144px); margin-inline: auto; display: grid; align-content: center; }
.schedule-footer { min-height: 72px; padding: 1rem 1.5rem; border-top: 1px solid var(--line); background: #fff; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--muted); }
.schedule-footer p { margin: 0; }
.auth-card, .panel, .hero-panel { background: var(--surface); border: 1px solid var(--line); border-radius: .85rem; box-shadow: var(--shadow); padding: clamp(1.25rem, 3vw, 2rem); }
.auth-card form { margin-top: 1.5rem; }
.auth-card button { width: 100%; margin-top: .5rem; }
.auth-alternate { margin: 1rem 0 0; text-align: center; }
.auth-card-compact { padding: clamp(1rem, 2.25vw, 1.5rem); }
.auth-card-compact h1 { margin-bottom: .85rem; font-size: clamp(1.75rem, 3vw, 2.15rem); }
.auth-card-compact form { margin-top: .9rem; }
.auth-card-compact input { margin-bottom: .7rem; }
.auth-card-compact button { margin-top: .2rem; }
.auth-intro { margin: -.25rem 0 .75rem; color: var(--muted); }
.auth-link-row { margin-top: .8rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .2rem .55rem; text-align: center; }
.auth-link-row a { min-height: 44px; display: inline-flex; align-items: center; }
.auth-activation-link { margin: .15rem 0 0; text-align: center; }
.auth-activation-link a { min-height: 44px; display: inline-flex; align-items: center; }
.eyebrow { margin: 0; color: var(--burgundy); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero-panel { background: linear-gradient(125deg, var(--burgundy-dark), var(--burgundy)); color: #fff; display: flex; justify-content: space-between; align-items: center; gap: 2rem; margin-bottom: 2rem; }
.hero-panel .eyebrow { color: #f6cdd5; }
.hero-panel p:last-child { max-width: 48rem; margin-bottom: 0; }
.foundation-badge { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; padding: .45rem .75rem; font-size: .875rem; font-weight: 800; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 2rem; }
.metric-grid article { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1.25rem; display: grid; }
.metric-grid strong { color: var(--burgundy); font-size: 2rem; }
.metric-grid span, .record-list span, .record-card span { color: var(--muted); font-size: .875rem; }
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.next-loop { margin-top: 1rem; }
.record-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.record-list li { display: grid; border-bottom: 1px solid var(--line); padding-bottom: .75rem; }
.record-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.page-heading { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 1.25rem; }
.page-heading p:last-child { color: var(--muted); max-width: 50rem; margin-bottom: 0; }
.privacy-callout, .info-callout, .integrity-state, .activation-notice { border-radius: .75rem; padding: 1rem 1.25rem; margin-bottom: 1rem; display: grid; gap: .2rem; }
.privacy-callout { background: #fff5df; border-left: 5px solid #c27b00; }
.info-callout { background: #eaf4fb; border-left: 5px solid #27709b; }
.integrity-state.valid { background: #e8f6ef; border-left: 5px solid var(--success); }
.integrity-state.invalid { background: #fae9ec; border-left: 5px solid var(--danger); }
.activation-notice { background: #fff7dc; border: 1px solid #d7ad32; }
.activation-notice dl { margin: 0; display: grid; gap: .75rem; }
.activation-notice dl div { display: grid; }
.activation-notice dt { font-weight: 800; }
.activation-notice dd { margin: 0; }
.secret-value { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.admin-grid { display: grid; grid-template-columns: minmax(300px, .85fr) minmax(0, 1.4fr); gap: 1.5rem; align-items: start; }
.sticky-form { position: sticky; top: 1rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.check-label { min-height: 44px; display: flex; align-items: center; gap: .65rem; font-weight: 650; }
.check-label input { width: 1.25rem; min-height: 1.25rem; margin: 0; flex: 0 0 auto; }
.check-label span { display: grid; color: var(--text); font-size: 1rem; font-weight: 650; }
.check-label small { color: var(--muted); font-weight: 500; }
.check-grid { display: grid; gap: .25rem; max-height: 18rem; overflow: auto; }
.reporting-scope-editor { display: grid; gap: .65rem; }
[data-scope-roles][hidden] { display: none; }
.reporting-scope-selection { padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--surface); }
.reporting-scope-selection ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.reporting-scope-selection li { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; padding-bottom: .45rem; border-bottom: 1px solid var(--line); }
.reporting-scope-selection li:last-child { padding-bottom: 0; border-bottom: 0; }
.reporting-scope-selection li strong { min-width: 0; overflow-wrap: anywhere; }
.reporting-scope-selection li span { flex: 0 0 auto; color: var(--muted); font-size: .82rem; text-align: right; }
.reporting-scope-selection p { margin: 0; color: var(--muted); }
.reporting-scope-manage { width: fit-content; }
.user-profile-modal { width: min(38rem,calc(100% - 1rem)); }
.user-profile-modal .admin-editor-modal-header { min-height: 3.5rem; }
.user-profile-modal .admin-editor-modal-header h2 { margin: 0; font-size: 1.15rem; }
.user-profile-modal .admin-editor-modal-body { padding-top: .7rem; }
.user-profile-modal label { margin-top: .55rem; }
.user-profile-advanced { margin-top: .65rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--surface); }
.user-profile-advanced > summary { min-height: 40px; padding: .55rem .7rem; color: var(--burgundy); cursor: pointer; font-size: .8rem; font-weight: 800; display: flex; align-items: center; }
.user-profile-advanced[open] { padding: 0 .7rem .7rem; }
.user-profile-advanced[open] > summary { margin-inline: -.7rem; border-bottom: 1px solid var(--line); }
.user-profile-advanced .secondary-form { margin: 0; }
.user-profile-advanced .secondary-form p { margin: .65rem 0; font-size: .8rem; }
.reporting-scope-options > .field-help { margin: 0 0 .55rem; }
.reporting-scope-dialog { width: min(calc(100% - 1rem), 38rem); max-width: none; max-height: min(44rem, calc(100dvh - 1rem)); padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; color: var(--text); background: #fff; box-shadow: 0 24px 70px rgba(34,8,13,.3); }
.reporting-scope-dialog[open] { display: flex; flex-direction: column; }
.reporting-scope-dialog::backdrop { background: rgba(32,8,13,.68); backdrop-filter: blur(3px); }
.reporting-scope-dialog header { min-height: 4rem; padding: .6rem .65rem .6rem 1rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.reporting-scope-dialog header h2 { margin: .1rem 0 0; }
.reporting-scope-dialog header button { width: 44px; height: 44px; min-height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: transparent; font-size: 1.35rem; }
.reporting-scope-dialog-body { min-height: 0; flex: 1 1 auto; padding: .8rem 1rem; overflow-y: auto; overscroll-behavior: contain; }
.reporting-scope-dialog .check-grid { max-height: none; overflow: visible; }
.reporting-scope-dialog footer { position: sticky; bottom: 0; z-index: 1; flex: 0 0 auto; padding: .7rem 1rem 1rem; border-top: 1px solid var(--line); background: #fff; display: flex; justify-content: flex-end; gap: .5rem; }
.assignment-check { margin-top: 1.8rem; }
.assignment-district-search { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .25rem .75rem; margin-bottom: .55rem; }
.assignment-district-search label, .assignment-district-search input { grid-column: 1 / -1; }
.assignment-district-search label { margin-top: 0; }
.assignment-district-search p { margin: 0; color: var(--muted); font-size: .8rem; }
.assignment-group-options { display: grid; gap: .35rem; max-height: 22rem; padding: .35rem .65rem; overflow: auto; border: 1px solid var(--line); border-radius: .8rem; background: var(--surface); }
.assignment-group-options .check-label { border-bottom: 1px solid var(--line); }
.assignment-group-options .check-label:last-child { border-bottom: 0; }
.assignment-group-options .check-label[hidden] { display: none; }
.assignment-district-empty { margin: 0; padding: .85rem .35rem; color: var(--muted); text-align: center; }
.field-help { margin: -.5rem 0 .75rem; color: var(--muted); font-size: .875rem; }
.field-error { margin: -.75rem 0 1rem; color: var(--danger); font-weight: 700; font-size: .875rem; }
.alert { border-radius: .65rem; padding: .85rem 1rem; margin-bottom: 1rem; border: 1px solid var(--line); background: #fff; }
.alert.error { border-color: #d88b95; background: #fae9ec; color: #711320; }
.alert.success { border-color: #8ac3a8; background: #e8f6ef; color: #12543a; }
.card-list { display: grid; gap: .75rem; }
.record-card { min-height: 88px; background: #fff; border: 1px solid var(--line); border-radius: .7rem; padding: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.record-card > div { display: grid; gap: .15rem; }
.record-card > div:last-child { justify-items: end; }
.record-card form { margin: 0; }
.record-card-actions { display: flex !important; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem !important; }
.record-icon-button { width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--burgundy); border-radius: 50%; color: var(--burgundy); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.record-icon-button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.record-icon-button:hover, .record-icon-button:focus-visible { color: #fff; background: var(--burgundy); }
.record-icon-button.is-reactivate { border-color: var(--success); color: var(--success); }
.record-icon-button.is-reactivate:hover, .record-icon-button.is-reactivate:focus-visible { color: #fff; background: var(--success); }
.record-icon-button.is-delete { border-color: var(--danger); color: var(--danger); }
.record-icon-button.is-delete:hover, .record-icon-button.is-delete:focus-visible { color: #fff; background: var(--danger); }
.record-delete-action { position: relative; }
.record-delete-action > summary { list-style: none; }
.record-delete-action > summary::-webkit-details-marker { display: none; }
.record-delete-action > summary:focus-visible { outline: 3px solid #e3a834; outline-offset: 2px; }
.record-delete-action form { position: absolute; z-index: 5; top: calc(100% + .35rem); right: 0; width: min(19rem, calc(100vw - 2rem)); padding: .8rem; border: 1px solid #d88b95; border-radius: .65rem; background: #fff8f8; box-shadow: var(--shadow); }
.record-delete-action form p { margin: 0 0 .7rem; color: var(--text); font-size: .875rem; }
.record-delete-action .danger-button { width: 100%; }
.status-pill { display: inline-flex; width: fit-content; border-radius: 999px; background: var(--burgundy-soft); color: var(--burgundy) !important; padding: .25rem .55rem; font-weight: 800; }
.secondary-button { background: #fff; color: var(--burgundy); border: 1px solid var(--burgundy); }
.secondary-form { margin-top: 1.5rem; }
.text-button { min-height: 44px; padding: 0; background: transparent; color: var(--danger); text-decoration: underline; }
.text-button:hover, .text-button:focus-visible { background: transparent; color: #69111c; }
.text-button:disabled, button:disabled { cursor: not-allowed; opacity: .55; }
.empty-copy { color: var(--muted); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); padding: .75rem; }
th { color: var(--muted); font-size: .875rem; }
td span { display: block; color: var(--muted); font-size: .75rem; }
td code { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .75rem; }
.filter-bar { display: grid; grid-template-columns: minmax(180px, .5fr) minmax(240px, 1fr) auto; gap: 1rem; align-items: end; margin-bottom: 1rem; padding: 1rem; }
.filter-bar input, .filter-bar select { margin-bottom: 0; }
html.has-admin-editor-modal { overflow: hidden; }
.admin-editor-modal-backdrop { position: fixed; z-index: 80; inset: 0; padding: clamp(.5rem, 2vw, 1.5rem); background: rgba(32, 8, 13, .72); backdrop-filter: blur(5px); display: grid; place-items: center; }
.admin-editor-modal { width: min(58rem, 100%); max-height: calc(100dvh - clamp(1rem, 4vw, 3rem)); border: 1px solid var(--line); border-radius: .9rem; overflow: hidden; background: var(--background); box-shadow: 0 30px 90px rgba(22, 7, 10, .42); display: flex; flex-direction: column; }
.admin-editor-modal-header { min-height: 4.25rem; padding: .6rem .8rem .6rem 1rem; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-editor-modal-header h2 { margin: .1rem 0 0; }
.admin-editor-modal-actions { display: flex; align-items: center; gap: .5rem; }
.admin-editor-modal-actions > * { white-space: nowrap; }
.admin-editor-modal-body { min-height: 0; padding: 1rem; overflow-y: auto; overscroll-behavior: contain; }
.admin-editor-modal-body > .info-callout { margin-bottom: 1rem; }
.rule-editor-modal { width: min(74rem, 100%); }
.rule-editor-modal .admin-editor-modal-header { flex: 0 0 auto; flex-wrap: wrap; }
.rule-editor-modal .admin-editor-modal-header > div { min-width: 0; }
.rule-editor-modal .admin-editor-modal-actions { flex-wrap: wrap; }
.rule-editor-modal .admin-editor-modal-actions > * { white-space: normal; }
.rule-editor-description { margin: 0 0 .75rem; color: var(--muted); font-size: .875rem; }
.rule-editor-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .75fr); gap: 1rem; align-items: start; }
.rule-editor-calendar-column, .rule-editor-settings-column { min-width: 0; }
.rule-editor-settings-column fieldset { min-inline-size: 0; }
.organization-filter-bar { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(140px, .8fr)); gap: .85rem; align-items: end; margin-bottom: 1rem; padding: 1rem; }
.organization-filter-bar input, .organization-filter-bar select { margin-bottom: 0; }
.organization-filter-bar .filter-actions { flex-wrap: wrap; grid-column: 1 / -1; }
.organization-results-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.organization-results-heading h2 { margin: 0; }
.organization-results-heading span { color: var(--muted); font-size: .875rem; }
.admin-directory-filter-bar { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(150px, .8fr)); gap: .85rem; align-items: end; margin-bottom: 1rem; padding: 1rem; }
.admin-directory-filter-bar input, .admin-directory-filter-bar select { margin-bottom: 0; }
.admin-directory-filter-bar .filter-actions { flex-wrap: wrap; grid-column: 1 / -1; }
.compact-directory-filter-bar { grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(150px, .8fr)); }
.admin-directory-results-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.admin-directory-results-heading h2 { margin: 0; }
.admin-directory-results-heading span { color: var(--muted); font-size: .875rem; }
.activity-card-list { display: grid; gap: .75rem; }
.activity-card { background: #fff; border: 1px solid var(--line); border-radius: .75rem; padding: 1rem; box-shadow: var(--shadow); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem 1.25rem; }
.activity-card-main { min-width: 0; display: grid; gap: .4rem; }
.activity-card-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .7rem; }
.activity-card-heading strong { overflow-wrap: anywhere; color: var(--burgundy-dark); }
.activity-card-heading span { color: var(--muted); font-size: .78rem; }
.activity-card-meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; color: var(--muted); font-size: .875rem; }
.activity-card-meta strong { color: var(--text); }
.activity-card-time { min-width: 9rem; display: grid; align-content: start; justify-items: end; text-align: right; }
.activity-card-time strong { color: var(--text); }
.activity-card-time span { color: var(--muted); font-size: .78rem; }
.activity-card-context { min-width: 0; grid-column: 1 / -1; padding-top: .7rem; border-top: 1px solid var(--line); display: grid; gap: .3rem; }
.activity-card-context > span { color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.activity-card-context code { overflow-wrap: anywhere; white-space: pre-wrap; font-size: .78rem; }
.admin-pagination { margin-top: .8rem; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .6rem; }
.admin-pagination .pagination-status { grid-column: 2; color: var(--muted); font-size: .82rem; font-weight: 700; text-align: center; }
.admin-pagination .pagination-previous { grid-column: 1; grid-row: 1; justify-self: start; }
.admin-pagination .pagination-next { grid-column: 3; grid-row: 1; justify-self: end; }
.population-reference-metrics { margin-bottom: 1rem; }
.population-reference-card > div:first-child { min-width: 0; }
.population-source-details { margin-top: .35rem; border-top: 1px solid var(--line); }
.population-source-details > summary { min-height: 44px; padding-top: .45rem; color: var(--burgundy); cursor: pointer; font-size: .82rem; font-weight: 800; display: flex; align-items: center; }
.population-source-details dl { margin: 0; padding: .15rem 0 .3rem; display: grid; gap: .55rem; }
.population-source-details dl > div { display: grid; gap: .1rem; }
.population-source-details dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.population-source-details dd { margin: 0; overflow-wrap: anywhere; font-size: .84rem; }
.rule-mode-fieldset { margin-top: 0; }
.rule-mode-options { display: grid; gap: .5rem; }
.rule-mode-options label { min-height: 4.25rem; padding: .65rem; border: 1px solid var(--line); border-radius: .65rem; background: #fff; display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; }
.rule-mode-options label:has(input:checked) { border-color: var(--burgundy); background: var(--burgundy-soft); box-shadow: inset 0 0 0 1px var(--burgundy); }
.rule-mode-options input { width: 1.2rem; min-height: 1.2rem; margin: .15rem 0 0; flex: 0 0 auto; }
.rule-mode-options span { display: grid; gap: .15rem; }
.rule-mode-options small { color: var(--muted); font-weight: 500; }
.rule-calendar { display: none; margin: 0; padding: .75rem; overflow-x: auto; border: 1px solid var(--line); border-radius: .8rem; background: #fff; }
.rule-calendar[data-enhanced="true"] { display: block; }
.rule-calendar-toolbar { margin-bottom: .5rem; display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: .5rem; }
.rule-calendar-toolbar h3 { margin: 0; text-align: center; }
.rule-calendar-toolbar button { width: 44px; min-height: 44px; padding: 0; }
.rule-calendar-weekdays, .rule-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; }
.rule-weekday-short { display: none; }
.rule-calendar-weekdays { margin-bottom: .35rem; }
.rule-calendar-weekdays strong { padding: .35rem .15rem; color: var(--muted); font-size: .72rem; text-align: center; }
.rule-calendar-day-spacer { min-height: 2.75rem; }
.rule-calendar-day { min-height: 2.75rem; padding: .25rem; border: 1px solid var(--line); color: var(--text); background: #fff; font-weight: 750; }
.rule-calendar-day:disabled { cursor: not-allowed; color: #8b929a; background: #f1f3f5; opacity: .72; }
.rule-calendar-day:not(:disabled):hover, .rule-calendar-day:not(:disabled):focus-visible { border-color: var(--burgundy); color: var(--burgundy); background: var(--burgundy-soft); }
.rule-calendar-day[aria-pressed="true"] { border-color: var(--burgundy); color: #fff; background: var(--burgundy); }
.rule-calendar-selection { margin-top: .6rem; padding-top: .55rem; border-top: 1px solid var(--line); }
.rule-calendar-selection > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.rule-calendar-selection-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .4rem; }
.rule-calendar-selection-actions .secondary-button, .rule-calendar-selection-actions .text-button { min-height: 44px; padding: .4rem .65rem; font-size: .8rem; }
.rule-calendar-selection p { margin: .5rem 0 0; color: var(--muted); }
.rule-fixed-date { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; background: #f8fafb; }
.rule-fixed-date h3 { margin: 0 0 .45rem; }
.rule-fixed-date > strong { color: var(--burgundy); font-size: 1.15rem; }
.rule-fixed-date p { margin: .65rem 0 0; color: var(--muted); font-size: .875rem; }
.picker-trigger-group { display: none; }
.event-filter-bar.is-picker-enhanced .native-picker-control { display: none; }
.event-filter-bar.is-picker-enhanced .picker-trigger-group { display: block; }
.picker-field-label { display: block; margin-bottom: .35rem; color: var(--text); font-weight: 750; }
.filter-picker-trigger { width: 100%; min-height: 44px; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; border: 1px solid #aeb5bd; color: var(--text); background: #fff; text-align: left; }
.filter-picker-trigger:hover, .filter-picker-trigger:focus-visible { border-color: var(--burgundy); color: var(--burgundy-dark); background: var(--burgundy-soft); }
.filter-clear-button { border: 1px solid var(--burgundy); color: var(--burgundy); background: #fff; }
.filter-clear-button:hover, .filter-clear-button:focus-visible { color: #fff; background: var(--burgundy); }
.filter-actions, .form-actions, .heading-actions, .section-heading { display: flex; align-items: center; gap: .75rem; }
.filter-actions { padding-bottom: 0; }
.filter-picker-dialog { width: min(calc(100% - 1rem), 34rem); max-width: none; max-height: min(46rem, calc(100dvh - 1rem)); padding: 0; overflow: auto; border: 1px solid var(--line); border-radius: .8rem; color: var(--text); background: #fff; box-shadow: 0 24px 70px rgba(34,8,13,.3); }
.filter-picker-dialog::backdrop { background: rgba(32,8,13,.68); backdrop-filter: blur(3px); }
.filter-picker-header { min-height: 4.5rem; padding: .7rem .75rem .7rem 1rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.filter-picker-header .eyebrow { margin-bottom: .12rem; }
.filter-picker-header h2 { margin: 0; font-size: 1.2rem; }
.filter-picker-close { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: transparent; font-size: 1.35rem; }
.filter-picker-close:hover, .filter-picker-close:focus-visible { color: var(--burgundy); background: var(--burgundy-soft); }
.filter-picker-body { padding: 1rem; }
.filter-picker-body > p { margin-bottom: 1rem; color: var(--muted); font-size: .9rem; }
.filter-picker-body h3 { margin: .25rem 0 .75rem; text-align: center; }
.year-picker-toolbar { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.year-picker-toolbar strong { text-align: center; }
.picker-step-button { width: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); color: var(--burgundy); background: #fff; }
.picker-step-button:hover, .picker-step-button:focus-visible { color: #fff; background: var(--burgundy); }
.year-picker-grid, .month-picker-grid, .status-picker-grid { display: grid; gap: .55rem; }
.year-picker-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.month-picker-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.status-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.picker-option { position: relative; min-width: 0; min-height: 44px; padding: .6rem .75rem; border: 1px solid var(--line); color: var(--text); background: #fff; }
.picker-option:hover, .picker-option:focus-visible { border-color: var(--burgundy); color: var(--burgundy); background: var(--burgundy-soft); }
.picker-option[aria-pressed="true"] { padding-right: 2rem; border-color: var(--burgundy); color: #fff; background: var(--burgundy); }
.picker-option[aria-pressed="true"]::after { content: "\2713"; position: absolute; right: .7rem; font-weight: 900; }
.picker-option[aria-pressed="true"]:hover, .picker-option[aria-pressed="true"]:focus-visible { color: #fff; background: var(--burgundy-dark); }
.picker-back-button { min-height: 44px; padding: .45rem .65rem; border: 0; color: var(--burgundy); background: transparent; }
.picker-back-button:hover, .picker-back-button:focus-visible { color: var(--burgundy-dark); background: var(--burgundy-soft); }
.filter-picker-actions { padding: .75rem 1rem 1rem; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: .5rem; }
.schedule-card-list { display: grid; gap: .75rem; }
.schedule-event-card { background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--burgundy); border-radius: .8rem; box-shadow: var(--shadow); overflow: hidden; }
.schedule-event-main { min-width: 0; padding: .8rem 1rem; }
.schedule-event-main h2 { margin: 0 0 .35rem; font-size: clamp(1.15rem,2vw,1.45rem); line-height: 1.2; }
.schedule-event-support { list-style: none; margin: 0; padding: 0; color: var(--muted); display: flex; flex-wrap: wrap; gap: .15rem .45rem; font-size: .78rem; }
.schedule-event-support li { min-width: 0; overflow-wrap: anywhere; }
.schedule-event-support li + li::before { content: "·"; margin-right: .45rem; color: var(--line); }
.schedule-event-join { margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.schedule-event-join span { color: var(--muted); font-size: .85rem; }
.schedule-event-join button { flex: 0 0 auto; }
html.has-event-editor-modal { overflow: hidden; }
.event-editor-modal-backdrop { position: fixed; z-index: 80; inset: 0; padding: clamp(.5rem, 2vw, 1.5rem); background: rgba(32, 8, 13, .72); backdrop-filter: blur(5px); display: grid; place-items: center; }
.event-editor-modal { width: min(74rem, 100%); max-height: calc(100dvh - clamp(1rem, 4vw, 3rem)); border: 1px solid var(--line); border-radius: .9rem; overflow: hidden; background: var(--background); box-shadow: 0 30px 90px rgba(22, 7, 10, .42); display: flex; flex-direction: column; }
.event-editor-modal-header { min-height: 4.25rem; padding: .6rem .8rem .6rem 1rem; border-bottom: 1px solid var(--line); background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.event-editor-modal-title { min-width: 0; }
.event-editor-modal-title .eyebrow { margin-bottom: .12rem; }
.event-editor-modal-title h1 { margin: 0; overflow: hidden; font-size: 1.35rem; text-overflow: ellipsis; white-space: nowrap; }
.event-editor-modal-actions { display: flex; align-items: center; gap: .5rem; }
.event-editor-modal-actions .secondary-button, .event-editor-modal-actions button { min-height: 44px; white-space: nowrap; }
.event-editor-modal-body { min-height: 0; padding: 1rem; overflow-y: auto; overscroll-behavior: contain; }
.event-editor { display: grid; gap: 1rem; }
.floating-field { --floating-label-bg: #fff; position: relative; min-width: 0; }
.floating-field > label { position: absolute; z-index: 1; top: calc(.35rem + 22px); left: .75rem; max-width: calc(100% - 1.5rem); margin: 0; overflow: hidden; color: var(--muted); font-weight: 650; line-height: 1; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; transform: translateY(-50%); transform-origin: left center; transition: top 140ms ease, transform 140ms ease, color 140ms ease, font-size 140ms ease, padding 140ms ease, background-color 140ms ease; }
.floating-field > input, .floating-field > textarea, .floating-field > select { margin-top: .35rem; }
.floating-field:focus-within > label, .floating-field.is-focused > label, .floating-field.has-value > label, .floating-field.has-visible-placeholder > label, .floating-field.has-select > label, .floating-field:has(> select) > label, .floating-field:has(> input:not(:placeholder-shown)) > label, .floating-field:has(> textarea:not(:placeholder-shown)) > label { top: .35rem; padding: 0 .3rem; color: var(--burgundy); background: var(--floating-label-bg); font-size: .75rem; font-weight: 800; transform: translateY(-50%); }
.floating-field:focus-within > input, .floating-field:focus-within > textarea, .floating-field:focus-within > select, .floating-field.is-focused > input, .floating-field.is-focused > textarea, .floating-field.is-focused > select { border-color: var(--burgundy); }
.floating-field:not(.has-value):not(:focus-within) > input[type="date"]::-webkit-datetime-edit, .floating-field:not(.has-value):not(:focus-within) > input[type="month"]::-webkit-datetime-edit, .floating-field:not(.has-value):not(:focus-within) > input[type="time"]::-webkit-datetime-edit, .floating-field:not(.has-value):not(:focus-within) > input[type="datetime-local"]::-webkit-datetime-edit { color: transparent; }
.floating-field:focus-within > input[type="date"]::-webkit-datetime-edit, .floating-field:focus-within > input[type="month"]::-webkit-datetime-edit, .floating-field:focus-within > input[type="time"]::-webkit-datetime-edit, .floating-field:focus-within > input[type="datetime-local"]::-webkit-datetime-edit, .floating-field.has-value > input[type="date"]::-webkit-datetime-edit, .floating-field.has-value > input[type="month"]::-webkit-datetime-edit, .floating-field.has-value > input[type="time"]::-webkit-datetime-edit, .floating-field.has-value > input[type="datetime-local"]::-webkit-datetime-edit { color: var(--text); }
.custom-event-picker-trigger[hidden] { display: none; }
.custom-event-picker-trigger { width: 100%; min-height: 44px; margin-top: .35rem; padding: .65rem .75rem; border: 1px solid #aeb5bd; color: var(--text); background: #fff; justify-content: space-between; text-align: left; }
.custom-event-picker-trigger:hover, .custom-event-picker-trigger:focus-visible { border-color: var(--burgundy); color: var(--burgundy-dark); background: var(--burgundy-soft); }
.floating-field:focus-within > .custom-event-picker-trigger, .floating-field.is-focused > .custom-event-picker-trigger { border-color: var(--burgundy); }
.event-editor.has-custom-event-pickers input[data-custom-date-input], .event-editor.has-custom-event-pickers input[data-custom-time-input] { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; border: 0; clip-path: inset(50%); white-space: nowrap; }
.schedule-picker-native-input { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; border: 0; clip-path: inset(50%); white-space: nowrap; }
.schedule-input-picker-trigger { width: 100%; min-height: 44px; margin: .35rem 0 1rem; padding: .65rem .75rem; border: 1px solid #aeb5bd; color: var(--text); background: #fff; justify-content: space-between; text-align: left; }
.schedule-input-picker-trigger::after { content: "▾"; margin-left: auto; }
.schedule-input-picker-trigger:hover, .schedule-input-picker-trigger:focus-visible { border-color: var(--burgundy); color: var(--burgundy-dark); background: var(--burgundy-soft); }
.floating-field > .schedule-input-picker-trigger { margin-top: .35rem; }
.floating-field:focus-within > .schedule-input-picker-trigger, .floating-field.is-focused > .schedule-input-picker-trigger { border-color: var(--burgundy); }
.schedule-input-picker-dialog { width: min(calc(100% - 1rem), 38rem); }
.event-day-picker-weekdays, .event-day-picker-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; }
.event-day-picker-weekdays { margin-bottom: .4rem; color: var(--muted); font-size: .75rem; font-weight: 800; text-align: center; }
.event-day-picker-grid .picker-option { padding-inline: .25rem; }
.event-time-picker-dialog { width: min(calc(100% - 1rem), 38rem); }
.event-time-picker-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.event-time-picker-columns section { min-width: 0; }
.event-time-picker-columns h3 { margin-top: 0; }
.event-time-option-list { max-height: min(17rem, 42dvh); padding: .25rem; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: .55rem; display: grid; gap: .35rem; scrollbar-gutter: stable; }
.event-time-option-list .picker-option { width: 100%; padding-inline: .35rem; }
.event-time-preview { margin: 1rem 0 0; text-align: center; }
.organizations-panel { padding: clamp(1rem, 2vw, 1.35rem); }
.organizations-panel > h2 { margin-bottom: .8rem; }
.stakeholder-row { --floating-label-bg: #fafbfc; }
.lead-host-row { --floating-label-bg: var(--burgundy-soft); background: var(--burgundy-soft); }
.organization-lead-row { margin: 0; padding: .7rem .8rem .8rem; border-left: 4px solid var(--burgundy); }
.organization-row-heading { min-width: 0; margin: -.1rem 0 .55rem; display: flex; align-items: baseline; gap: .5rem; }
.organization-row-heading strong { overflow-wrap: anywhere; }
.organization-row-heading span { color: var(--muted); font-size: .75rem; }
.organization-field-grid { gap: .65rem .8rem; }
.organization-field-grid > div:last-child { align-self: center; }
.compact-readonly-field { min-width: 0; min-height: 44px; margin: .35rem 0 1rem; padding: .45rem .7rem; border: 1px solid rgba(117, 26, 41, .24); border-radius: .5rem; background: #fff; display: grid; align-content: center; }
.compact-readonly-field span { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.compact-readonly-field strong { overflow-wrap: anywhere; font-size: .9rem; }
.section-heading { justify-content: space-between; align-items: start; }
.section-heading p { color: var(--muted); margin-bottom: 0; }
.stakeholder-row { position: relative; margin: 0; background: #fafbfc; }
.compact-travel-fields { margin-top: .1rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.compact-travel-fields textarea { min-height: 4.5rem; }
.travel-fields[hidden] { display: none; }
.availability-state { grid-column: 1 / -1; border: 1px solid var(--line); border-left-width: 5px; border-radius: .65rem; padding: .8rem 1rem; background: #f7f9fb; color: var(--muted); }
.availability-state:empty { display: none; }
.availability-state.is-available { border-left-color: var(--success); background: #e8f6ef; color: #12543a; }
.availability-state.is-blocked { border-left-color: var(--danger); background: #fae9ec; color: #711320; }
.availability-state.is-warning { border-left-color: #c27b00; background: #fff5df; color: #6b4700; }
.event-detail-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 1rem; margin-bottom: 1rem; }
.detail-list { margin: 0; display: grid; gap: .7rem; }
.detail-list div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .65rem; }
.detail-list div:last-child { border: 0; }
.detail-list dt { color: var(--muted); font-weight: 700; }
.detail-list dd { margin: 0; }
.participant-card { border: 1px solid var(--line); border-radius: .65rem; padding: .85rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; }
.participant-card > div { display: grid; }
.participant-card span { color: var(--muted); font-size: .875rem; }
.travel-summary { border-left: 3px solid #27709b; padding-left: .8rem; max-width: 24rem; }
.event-summary-panel { padding: clamp(1rem, 2vw, 1.35rem); display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.event-summary-main { min-width: 0; }
.event-summary-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.event-summary-kicker code { color: var(--muted); font-size: .78rem; }
.event-summary-panel h1 { margin: .3rem 0 .5rem; overflow-wrap: anywhere; font-size: clamp(1.5rem, 3vw, 2.1rem); }
.event-summary-meta { color: var(--muted); font-size: .85rem; display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.event-summary-meta span { display: inline-flex; align-items: center; }
.event-summary-meta span + span::before { content: "•"; margin-right: 1rem; color: #a1a8af; }
.event-summary-actions { flex: 0 0 auto; display: flex; flex-wrap: wrap; gap: .45rem; }
.event-summary-action { position: relative; z-index: 5; }
.event-summary-action > summary { min-height: 44px; border: 1px solid var(--burgundy); border-radius: .55rem; padding: .68rem 1rem; cursor: pointer; font-weight: 700; list-style: none; display: inline-flex; align-items: center; justify-content: center; }
.event-summary-action > summary::-webkit-details-marker { display: none; }
.event-summary-submit > summary { color: #fff; background: var(--burgundy); }
.event-summary-transition > summary { color: var(--burgundy); background: #fff; }
.event-summary-action > summary:hover, .event-summary-action > summary:focus-visible, .event-summary-action[open] > summary { color: #fff; background: var(--burgundy-dark); }
.event-summary-action form { position: absolute; z-index: 10; top: calc(100% + .45rem); right: 0; width: min(26rem, calc(100vw - 2rem)); padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; background: #fff; box-shadow: 0 20px 55px rgba(34,8,13,.24); text-align: left; }
.event-summary-action form > button { width: 100%; }
.event-notice-list { margin-bottom: .75rem; display: grid; gap: .4rem; }
.event-inline-notice { margin: 0; padding: .55rem .75rem; border-left: 4px solid #27709b; border-radius: .4rem; background: #eef6fb; font-size: .82rem; display: flex; align-items: baseline; gap: .55rem; }
.event-inline-notice strong { flex: 0 0 auto; }
.event-inline-notice span { color: var(--muted); }
.event-inline-notice.is-warning { border-left-color: #c27b00; background: #fff7df; }
.compact-event-section { margin: .75rem 0; padding: 1rem; }
.compact-section-heading { margin-bottom: .65rem; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.compact-section-heading h2 { margin: 0; font-size: 1.05rem; }
.compact-section-heading > span { color: var(--muted); font-size: .78rem; font-weight: 700; text-align: right; }
.compact-participant-list { border-top: 1px solid var(--line); }
.compact-participant { min-width: 0; padding: .6rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, auto); align-items: center; gap: .75rem; }
.compact-participant:last-child { padding-bottom: 0; border-bottom: 0; }
.compact-participant-main { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .55rem; }
.compact-participant-main strong { overflow-wrap: anywhere; }
.compact-participant-main span, .compact-travel span { color: var(--muted); font-size: .8rem; }
.compact-travel { min-width: 0; padding-left: .7rem; border-left: 3px solid #27709b; }
.compact-travel summary { color: var(--burgundy); cursor: pointer; font-size: .75rem; font-weight: 800; }
.compact-travel span { display: block; margin-top: .15rem; }
.compact-action-panel { min-height: 0; margin: .75rem 0; padding: .8rem 1rem; }
.compact-action-panel h2 { margin: .1rem 0; font-size: 1rem; }
.compact-action-panel p { font-size: .82rem; }
.event-team-panel { margin: 1rem 0; }
.publication-panel { margin: 1rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-left: 5px solid #27709b; }
.publication-panel h2 { margin-top: .15rem; }
.publication-panel p:last-child { margin-bottom: 0; color: var(--muted); }
.publication-panel .secondary-button { flex: 0 0 auto; }
.draft-delete-panel { border-color: #d88b95; background: #fff8f8; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.draft-delete-panel h2, .draft-delete-confirmation h1 { margin-top: 0; }
.draft-delete-panel p:last-child { margin-bottom: 0; color: var(--muted); }
.draft-delete-panel .danger-button { flex: 0 0 auto; }
.draft-delete-dialog { width: min(calc(100% - 1rem), 36rem); max-width: none; padding: 0; overflow: hidden; border: 1px solid #d88b95; border-radius: .8rem; color: var(--text); background: #fff; box-shadow: 0 24px 70px rgba(34,8,13,.3); }
.draft-delete-dialog::backdrop { background: rgba(32,8,13,.72); backdrop-filter: blur(3px); }
.draft-delete-dialog header { min-height: 4rem; padding: .6rem .65rem .6rem 1rem; border-bottom: 1px solid #edc7cc; background: #fff8f8; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.draft-delete-dialog header h2 { margin: .1rem 0 0; }
.draft-delete-dialog header button { width: 44px; height: 44px; min-height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid #d88b95; border-radius: 50%; color: var(--danger); background: transparent; font-size: 1.35rem; }
.draft-delete-dialog-body { padding: 1rem; }
.draft-delete-dialog-body p:first-child { padding-bottom: .75rem; border-bottom: 1px solid var(--line); }
.draft-delete-dialog-body p:last-child { margin-bottom: 0; color: var(--muted); }
.draft-delete-dialog footer { padding: .75rem 1rem 1rem; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: flex-end; gap: .5rem; }
.draft-delete-dialog footer form { margin: 0; }
.draft-delete-confirmation { width: min(42rem, 100%); margin-inline: auto; border-color: #d88b95; }
.draft-delete-confirmation .form-actions { margin-top: 1.25rem; justify-content: flex-end; }
.draft-delete-confirmation form { margin: 0; }
.event-team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.event-team-card { border: 1px solid var(--line); border-radius: .65rem; padding: 1rem; display: grid; gap: 1rem; align-content: start; }
.event-team-card > div { display: grid; gap: .2rem; }
.event-team-card > div span { font-size: 1.05rem; }
.event-team-card small { color: var(--muted); }
.event-team-form { display: grid; gap: .55rem; }
.compact-team-card { padding: .75rem; gap: .55rem; }
.compact-team-card > div span { font-size: .95rem; font-weight: 750; }
.compact-editor { border-top: 1px solid var(--line); }
.compact-editor > summary, .compact-history > summary { min-height: 44px; color: var(--burgundy); cursor: pointer; font-weight: 800; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.compact-editor > summary::after, .compact-history > summary::after { content: "+"; flex: 0 0 auto; font-size: 1.1rem; }
.compact-editor[open] > summary::after, .compact-history[open] > summary::after { content: "−"; }
.compact-editor > summary:hover, .compact-editor > summary:focus-visible, .compact-history > summary:hover, .compact-history > summary:focus-visible { color: var(--burgundy-dark); }
.compact-editor[open] > summary { border-bottom: 1px solid var(--line); }
.compact-editor form { padding-top: .7rem; }
.compact-editor input, .compact-editor select, .compact-editor textarea { margin-bottom: .6rem; }
.compact-editor textarea { min-height: 4rem; }
.workflow-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.workflow-actions form { border: 1px solid var(--line); border-radius: .65rem; padding: 1rem; }
.workflow-actions textarea { min-height: 4.5rem; }
.publication-authorization { margin-bottom: 1rem; padding: .85rem; border: 1px solid #d7ad32; border-radius: .55rem; background: #fff7dc; align-items: flex-start; }
.publication-authorization input { margin-top: .15rem; }
.outcome-form { border-top: 1px solid var(--line); padding-top: 1rem; }
.outcome-metrics { margin-bottom: 1rem; }
.compact-outcome-metrics { gap: .65rem; margin-bottom: .65rem; }
.compact-outcome-metrics article { min-height: 0; padding: .75rem; }
.compact-outcome-metrics strong { font-size: 1.45rem; }
.compact-notes { margin: .4rem 0; color: var(--muted); font-size: .85rem; }
.outcome-editor { margin-top: .55rem; }
.report-filter { grid-template-columns: minmax(180px,1fr) minmax(180px,1fr) auto; }
.report-metrics { margin-bottom: 1rem; }
.report-trend-panel { margin-bottom: 1rem; }
.report-chart-legend { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--muted); font-size: .8rem; font-weight: 750; }
.report-chart-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.report-chart-legend span::before { content: ""; width: 1.8rem; border-top: 3px solid var(--success); }
.report-chart-legend .is-target::before { border-top-color: var(--burgundy); border-top-style: dashed; }
.report-chart-scroll { overflow-x: auto; margin-top: .75rem; border: 1px solid var(--line); border-radius: .65rem; background: #fff; }
.report-chart-scroll:focus-visible { outline: 3px solid #e3a834; outline-offset: 2px; }
.report-line-chart { display: block; width: 100%; min-width: 42rem; height: auto; }
.report-chart-grid { stroke: #d9dee4; stroke-width: 1; }
.report-chart-axis { fill: var(--muted); font: 12px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.report-chart-date { font-size: 11px; }
.report-chart-target, .report-chart-actual { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; vector-effect: non-scaling-stroke; }
.report-chart-target { stroke: var(--burgundy); stroke-dasharray: 8 6; }
.report-chart-actual { stroke: var(--success); }
.report-chart-target-point { fill: #fff; stroke: var(--burgundy); stroke-width: 3; vector-effect: non-scaling-stroke; }
.report-chart-actual-point { fill: var(--success); stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
.report-chart-values { margin-top: 1rem; }
.report-chart-values summary { min-height: 44px; display: flex; align-items: center; width: fit-content; color: var(--burgundy); cursor: pointer; font-weight: 750; }
.report-chart-values .table-wrap { margin-top: .5rem; }
.reports-workspace { width: 100%; margin-inline: 0; }
.report-page-heading { gap: 1rem; margin-bottom: .75rem; }
.report-page-heading h1 { font-size: clamp(1.45rem,2.4vw,1.9rem); }
.report-page-heading p:last-child { max-width: 62rem; font-size: .84rem; line-height: 1.4; }
.report-privacy-callout { padding: .6rem .8rem; border-left-width: 4px; font-size: .8rem; line-height: 1.35; }
.annual-report-filter { display: flex; flex-wrap: wrap; align-items: end; gap: .55rem; margin-bottom: .8rem; padding: .65rem; box-shadow: 0 5px 16px rgba(23,32,42,.05); }
.annual-report-filter > div { min-width: 10rem; flex: 1 1 11rem; }
.annual-report-filter > div:first-child { min-width: 7.5rem; flex: 0 1 8.5rem; }
.annual-report-filter label { font-size: .75rem; }
.annual-report-filter select { min-height: 40px; margin: .2rem 0 0; padding-block: .45rem; font-size: .84rem; }
.annual-report-filter .filter-actions { min-width: auto; flex: 0 0 auto; align-self: end; }
.annual-report-filter .filter-actions button { min-height: 40px; padding: .5rem .8rem; font-size: .82rem; }
.reports-workspace > section .section-heading { margin-bottom: .55rem; }
.reports-workspace .section-heading h2, .annual-outcome-panel h2 { margin-bottom: .25rem; font-size: 1.05rem; }
.reports-workspace .section-heading p, .annual-outcome-panel p { font-size: .8rem; line-height: 1.4; }
.annual-report-metrics { grid-template-columns: repeat(auto-fit,minmax(8.5rem,1fr)); gap: .5rem; margin-bottom: .8rem; }
.annual-report-metrics article { min-height: 4.4rem; padding: .6rem .75rem; border-radius: .6rem; }
.annual-report-metrics strong { font-size: 1.3rem; line-height: 1.15; }
.annual-report-metrics span { margin-top: .15rem; font-size: .74rem; line-height: 1.25; }
.annual-report-metrics.is-non-lgu { grid-template-columns: repeat(2,minmax(0,11rem)); }
.annual-chart-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(14rem,.62fr); align-items: start; gap: .75rem; }
.annual-chart-grid > .panel { margin: 0; }
.annual-chart-grid > .panel, .detailed-report { padding: .85rem 1rem; box-shadow: 0 5px 16px rgba(23,32,42,.05); }
.reports-workspace .report-chart-scroll { margin-top: .5rem; }
.reports-workspace .report-line-chart { min-width: 36rem; }
.reports-workspace .report-chart-values { margin-top: .5rem; }
.reports-workspace .report-chart-values summary { min-height: 40px; font-size: .8rem; }
.annual-outcome-panel { display: grid; gap: .65rem; }
.annual-outcome-panel h2, .annual-outcome-panel p { margin-top: 0; }
.annual-donut-layout { display: grid; justify-items: center; gap: .65rem; }
.annual-donut { width: min(9rem,100%); overflow: visible; transform: rotate(-90deg); }
.annual-donut-track, .annual-donut-segment { fill: none; stroke-width: 6; }
.annual-donut-track { stroke: #edf0f2; }
.annual-donut-segment { transition: stroke-width .2s ease; }
.annual-donut-segment.is-actual { stroke: var(--success); }
.annual-donut-segment.is-deferred { stroke: #c27b00; }
.annual-donut-segment.is-registered { stroke: var(--burgundy); }
.annual-outcome-legend { width: 100%; margin: 0; display: grid; gap: .3rem; font-size: .76rem; }
.annual-outcome-legend div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .5rem; padding-bottom: .28rem; border-bottom: 1px solid var(--line); }
.annual-outcome-legend div::before { content: ""; width: .7rem; height: .7rem; border-radius: 50%; background: var(--burgundy); grid-row: 1; align-self: center; }
.annual-outcome-legend div { grid-template-columns: .7rem 1fr auto; }
.annual-outcome-legend dt { grid-column: 2; }
.annual-outcome-legend dd { grid-column: 3; margin: 0; font-weight: 850; }
.annual-outcome-legend .is-actual::before { background: var(--success); }
.annual-outcome-legend .is-deferred::before { background: #c27b00; }
.annual-outcome-legend .is-total::before { background: var(--muted); }
.detailed-report { margin-top: .75rem; }
.detailed-report > summary { min-height: 44px; color: var(--burgundy); cursor: pointer; font-weight: 800; display: flex; align-items: center; }
.detailed-report[open] > summary { margin-bottom: .75rem; border-bottom: 1px solid var(--line); }
.detailed-export-actions { margin: .75rem 0; }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.timeline li { border-left: 3px solid var(--burgundy-soft); padding-left: 1rem; display: grid; }
.timeline span { color: var(--muted); font-size: .875rem; }
.timeline p { margin: .35rem 0 0; }
.compact-history { margin-top: .75rem; padding: .35rem 1rem 1rem; }
.compact-history > summary { margin-bottom: 0; font-size: 1rem; list-style-position: inside; }
.compact-history > summary small { margin-left: auto; color: var(--muted); font-size: .75rem; font-weight: 700; }
.compact-history[open] > summary { margin-bottom: .7rem; border-bottom: 1px solid var(--line); }
.compact-history .timeline { gap: .55rem; }
.compact-history .timeline li { padding-left: .7rem; }
.notification-list { display: grid; gap: .75rem; }
.notification-card { background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--line); border-radius: .7rem; padding: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.notification-card.is-unread { border-left-color: var(--burgundy); background: #fffafb; }
.notification-card p { margin: .35rem 0; }
.notification-card small { color: var(--muted); }
.notification-heading, .notification-actions { display: flex; align-items: center; gap: .75rem; }
.notification-heading .status-pill { font-size: .75rem; }
.notification-actions form { margin: 0; }
.calendar-filter { display: grid; grid-template-columns: minmax(160px,.6fr) minmax(290px,1fr) minmax(220px,1fr) auto; gap: 1rem; align-items: end; margin-bottom: 1rem; }
.calendar-filter-field > input, .calendar-filter-field > select, .calendar-filter-field > .schedule-input-picker-trigger { min-height: 44px; margin: .35rem 0 0; }
.calendar-view-toggle { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.calendar-view-toggle legend { margin-bottom: .35rem; color: var(--muted); font-size: .75rem; font-weight: 750; }
.calendar-view-toggle label { position: relative; cursor: pointer; }
.calendar-view-toggle input { position: absolute; width: 1px; min-height: 1px; height: 1px; margin: 0; opacity: 0; }
.calendar-view-toggle span { min-height: 44px; padding: .55rem .7rem; border: 1px solid var(--line); color: var(--muted); background: #fff; font-size: .78rem; font-weight: 800; display: flex; align-items: center; justify-content: center; text-align: center; }
.calendar-view-toggle label:first-of-type span { border-radius: .55rem 0 0 .55rem; }
.calendar-view-toggle label:last-of-type span { margin-left: -1px; border-radius: 0 .55rem .55rem 0; }
.calendar-view-toggle input:checked + span { position: relative; border-color: var(--burgundy); color: #fff; background: var(--burgundy); }
.calendar-view-toggle input:focus-visible + span { outline: 3px solid rgba(113,19,39,.22); outline-offset: 2px; }
.calendar-filter-actions { display: flex; align-items: center; gap: .5rem; }
.calendar-filter-actions > * { min-height: 44px; white-space: nowrap; }
.calendar-filter-open { border: 1px solid var(--burgundy); color: var(--burgundy); background: #fff; }
.calendar-filter-open:hover, .calendar-filter-open:focus-visible { color: #fff; }
.calendar-filter-summary { min-width: 0; border-top: 1px solid var(--line); padding-top: .7rem; grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .55rem; }
.calendar-filter-summary span { color: var(--muted); font-size: .78rem; font-weight: 750; }
.calendar-filter-summary strong { font-size: .86rem; }
.calendar-filter-summary small { color: var(--muted); font-size: .75rem; }
.calendar-event-filters { min-width: 0; margin: 0; padding: .7rem 0 0; border: 0; border-top: 1px solid var(--line); grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .5rem; }
.calendar-event-filters legend { padding: 0 .45rem 0 0; color: var(--muted); font-size: .78rem; font-weight: 800; }
.event-filter { position: relative; cursor: pointer; }
.event-filter input { position: absolute; width: 1px; min-height: 1px; height: 1px; margin: 0; padding: 0; opacity: 0; pointer-events: none; }
.event-filter span { min-height: 36px; border: 1px solid var(--line); border-left: 5px solid var(--muted); border-radius: .4rem; padding: .35rem .55rem; color: var(--muted); background: #fff; font-size: .8rem; font-weight: 750; display: inline-flex; align-items: center; gap: .4rem; }
.event-filter small { min-width: 1.4rem; border-radius: 999px; padding: .08rem .35rem; color: inherit; background: var(--background); font-size: .7rem; text-align: center; }
.event-filter.event-confirmed span { border-left-color: #27709b; }
.event-filter.event-pending span { border-left-color: #c27b00; }
.event-filter.event-draft span { border-left-style: dashed; }
.event-filter.event-completed span { border-left-color: var(--success); }
.event-filter.event-cancelled span { border-left-color: var(--danger); }
.event-filter input:checked + span { color: var(--text); background: var(--burgundy-soft); box-shadow: inset 0 0 0 1px var(--burgundy); }
.event-filter input:focus-visible + span { outline: 3px solid rgba(113, 19, 39, .22); outline-offset: 2px; }
.calendar-filter-dialog { width: min(calc(100% - 1rem), 34rem); max-width: none; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; color: var(--text); background: #fff; box-shadow: 0 24px 70px rgba(34,8,13,.3); }
.calendar-filter-dialog::backdrop { background: rgba(32,8,13,.68); backdrop-filter: blur(3px); }
.calendar-filter-dialog header { min-height: 4rem; padding: .6rem .65rem .6rem 1rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.calendar-filter-dialog header h2 { margin: .1rem 0 0; }
.calendar-filter-dialog header button { width: 44px; height: 44px; min-height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: transparent; font-size: 1.35rem; }
.calendar-filter-dialog-body { padding: 1rem; }
.calendar-filter-dialog .calendar-event-filters { padding: 0; border: 0; display: grid; grid-template-columns: 1fr; }
.calendar-filter-dialog .calendar-event-filters legend { margin-bottom: .35rem; }
.calendar-filter-dialog .event-filter span { width: 100%; justify-content: space-between; }
.calendar-filter-dialog footer { padding: .7rem 1rem 1rem; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: .5rem; }
.calendar-toolbar { min-height: 52px; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.calendar-toolbar a { min-height: 44px; display: inline-flex; align-items: center; font-weight: 700; }
.calendar-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.calendar-legend > strong { margin-right: .15rem; font-size: .8rem; }
.calendar-key, .event-key { display: inline-flex; align-items: center; border: 1px solid var(--line); border-left-width: 5px; border-radius: .4rem; background: #fff; padding: .35rem .55rem; font-size: .8rem; font-weight: 750; }
.key-available { border-left-color: var(--success); }
.key-unavailable { border-left-color: var(--danger); background: #fae9ec; }
.event-confirmed { border-left-color: #27709b; }
.event-pending { border-left-color: #c27b00; }
.event-draft { border-left-color: var(--muted); border-style: dashed; }
.calendar-grid { overflow: hidden; border: 1px solid var(--line); border-radius: .75rem; background: var(--line); }
.calendar-weekdays, .calendar-week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 1px; }
.calendar-days { display: grid; gap: 1px; }
.calendar-weekdays div { background: var(--burgundy-dark); color: #fff; padding: .65rem; text-align: center; font-size: .8rem; font-weight: 800; }
.calendar-day { min-width: 0; min-height: 12.5rem; background: #fff; padding: .65rem; border-top: 5px solid var(--success); }
.calendar-day.day-unavailable { border-top-color: var(--danger); background: #fff5f6; }
.calendar-day.is-outside-month { opacity: .48; }
.calendar-day-heading { display: grid; gap: .2rem; }
.calendar-day-heading time { font-weight: 850; font-size: .8rem; }
.calendar-day-heading span { color: var(--muted); font-size: .72rem; font-weight: 750; }
.calendar-day > small { display: block; color: var(--muted); font-size: .68rem; line-height: 1.35; margin: .35rem 0 .55rem; }
.calendar-events { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.calendar-events li { border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: .35rem; overflow: hidden; }
.calendar-events li.event-confirmed { border-left-color: #27709b; }
.calendar-events li.event-pending { border-left-color: #c27b00; }
.calendar-events li.event-draft { border-left-style: dashed; }
.calendar-events li.event-cancelled { border-left-color: var(--danger); text-decoration: line-through; }
.calendar-events li.event-completed { border-left-color: var(--success); }
.calendar-events a, .calendar-event-summary { display: grid; padding: .4rem; color: var(--text); text-decoration: none; font-size: .72rem; line-height: 1.3; }
.calendar-events a:hover, .calendar-events a:focus-visible { background: var(--burgundy-soft); }
.calendar-events span, .calendar-empty, .calendar-event-summary small { color: var(--muted); font-size: .68rem; }
.calendar-event-summary small { margin-top: .15rem; font-weight: 750; }
.calendar-day-action { margin-top: .6rem; }
.calendar-request-button { width: 100%; min-height: 44px; border: 1px solid var(--burgundy); border-radius: .45rem; padding: .45rem .55rem; color: var(--burgundy); background: #fff; font-size: .72rem; font-weight: 800; text-align: center; text-decoration: none; display: flex; align-items: center; justify-content: center; }
.calendar-request-button:hover, .calendar-request-button:focus-visible { color: #fff; background: var(--burgundy); }
.calendar-request-dialog { width: min(calc(100% - 1rem), 29rem); max-width: none; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .75rem; color: var(--text); background: #fff; box-shadow: 0 24px 70px rgba(34,8,13,.3); }
.calendar-request-dialog::backdrop { background: rgba(32,8,13,.68); backdrop-filter: blur(3px); }
.calendar-request-dialog header { min-height: 4rem; padding: .6rem .65rem .6rem 1rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.calendar-request-dialog header h2 { margin: .1rem 0 0; }
.calendar-request-dialog header button { width: 44px; height: 44px; min-height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: transparent; font-size: 1.35rem; }
.calendar-request-body { padding: 1rem; }
.calendar-request-state { width: fit-content; margin-bottom: .65rem; border-radius: 999px; padding: .25rem .6rem; color: var(--burgundy); background: var(--burgundy-soft); font-size: .78rem; font-weight: 850; display: inline-flex; }
.calendar-request-body p { margin-bottom: 0; color: var(--muted); }
.calendar-request-dialog footer { padding: .7rem 1rem 1rem; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: .5rem; }
.calendar-request-proceed { min-height: 44px; border-radius: .55rem; padding: .68rem 1rem; color: #fff; background: var(--burgundy); font-weight: 750; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.calendar-request-proceed:hover, .calendar-request-proceed:focus-visible { color: #fff; background: var(--burgundy-dark); }
.report-export-dialog { width: min(calc(100% - 1rem),27rem); max-width: none; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: .65rem; color: var(--text); background: #fff; box-shadow: 0 20px 55px rgba(34,8,13,.28); }
.report-export-dialog::backdrop { background: rgba(32,8,13,.68); backdrop-filter: blur(3px); }
.report-export-header { min-height: 3.5rem; padding: .4rem .5rem .4rem .85rem; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.report-export-header h2 { margin: 0; font-size: 1.05rem; }
.report-export-close { width: 44px; height: 44px; min-height: 44px; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--text); background: transparent; font-size: 1.35rem; }
.report-export-close:hover, .report-export-close:focus-visible { color: var(--burgundy); background: var(--burgundy-soft); }
.report-export-body { padding: .85rem; }
.report-export-body > p { margin-bottom: .65rem; color: var(--muted); font-size: .875rem; }
.report-export-summary { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .7rem; align-items: center; padding: .7rem; border: 1px solid var(--line); border-radius: .45rem; }
.report-export-summary > span { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: .35rem; background: var(--burgundy-soft); color: var(--burgundy); font-size: .72rem; font-weight: 900; }
.report-export-summary div, .report-export-summary small { display: grid; }
.report-export-summary small { margin-top: .15rem; color: var(--muted); font-size: .75rem; }
.report-export-actions { padding: .65rem .85rem .85rem; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: .5rem; }
.report-export-proceed { background: var(--burgundy); color: #fff; }

@media (max-width: 960px) {
    .rule-editor-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 850px) {
    .schedule-app-shell { grid-template-columns: minmax(0, 1fr); }
    .schedule-sidebar { position: fixed; left: 0; width: min(18rem, 86vw); visibility: hidden; box-shadow: 18px 0 45px rgba(23, 10, 13, .25); transform: translateX(-105%); transition: transform 180ms ease, visibility 180ms ease; }
    .schedule-sidebar-close { display: inline-flex; }
    .schedule-workspace { grid-column: 1; }
    .schedule-menu-toggle { display: inline-flex; }
    .schedule-sidebar-backdrop { position: fixed; z-index: 25; inset: 0; width: 100%; height: 100%; min-height: 0; padding: 0; border: 0; border-radius: 0; opacity: 0; pointer-events: none; background: rgba(20, 12, 14, .52); display: block; transition: opacity 180ms ease; }
    .schedule-nav-open { overflow: hidden; }
    .schedule-nav-open .schedule-sidebar { visibility: visible; transform: translateX(0); }
    .schedule-nav-open .schedule-sidebar-backdrop { opacity: 1; pointer-events: auto; }
    .schedule-container { padding: 1.25rem 1rem 2.5rem; }
    .metric-grid { grid-template-columns: 1fr 1fr; }
    .admin-grid { grid-template-columns: 1fr; }
    .event-detail-grid, .event-team-grid { grid-template-columns: 1fr; }
    .sticky-form { position: static; }
}

@media (max-width: 640px) {
    body { font-size: .875rem; line-height: 1.45; }
    h1 { font-size: 1.6rem; }
    h2 { font-size: 1.05rem; }
    button, .secondary-button, .danger-button { font-size: .875rem; }
    input, select, textarea { font-size: 1rem; }
    .metric-grid strong { font-size: 1.65rem; }
    .hero-panel p:last-child, .page-heading p:last-child, .privacy-callout, .info-callout { font-size: .84rem; }
    .schedule-guest .schedule-header { align-items: flex-start; }
    .schedule-guest .schedule-brand small, .schedule-account small { display: none; }
    .schedule-sidebar .schedule-brand small { display: block; }
    .schedule-topbar { min-height: 64px; padding: .5rem .75rem; }
    .schedule-page-context span { display: none; }
    .schedule-page-context strong { max-width: 28vw; font-size: .875rem; }
    .schedule-account { gap: .5rem; }
    .schedule-account > .schedule-account-identity { display: none; }
    .schedule-container { padding: 1rem .75rem 2rem; }
    .event-summary-panel { align-items: stretch; flex-direction: column; }
    .event-summary-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .event-summary-actions > *, .event-summary-action > summary { width: 100%; }
    .event-summary-action { grid-column: 1 / -1; }
    .event-summary-action form { right: auto; left: 0; width: min(26rem, calc(100vw - 1.5rem)); }
    .event-summary-actions .secondary-button:only-child { grid-column: 1 / -1; }
    .event-summary-meta { display: grid; gap: .2rem; }
    .event-summary-meta span + span::before { content: none; }
    .event-inline-notice { align-items: flex-start; flex-direction: column; gap: .1rem; }
    .compact-participant { grid-template-columns: 1fr; gap: .4rem; }
    .compact-travel { padding: .4rem .6rem; border-left-width: 3px; background: #f5f9fc; }
    .hero-panel, .page-heading, .schedule-footer { align-items: flex-start; flex-direction: column; }
    .foundation-badge { align-self: flex-start; }
    .metric-grid, .two-column, .form-grid, .filter-bar, .organization-filter-bar, .admin-directory-filter-bar, .workflow-actions, .calendar-filter { grid-template-columns: 1fr; }
    .organization-filter-bar .filter-actions, .admin-directory-filter-bar .filter-actions { grid-column: auto; }
    .activity-card { grid-template-columns: 1fr; }
    .activity-card-time { min-width: 0; justify-items: start; text-align: left; }
    .activity-card-context { grid-column: auto; }
    .admin-pagination { grid-template-columns: 1fr 1fr; }
    .admin-pagination .pagination-status { grid-column: 1 / -1; grid-row: 1; }
    .admin-pagination .pagination-previous { grid-column: 1; grid-row: 2; }
    .admin-pagination .pagination-next { grid-column: 2; grid-row: 2; }
    .admin-pagination .secondary-button { width: 100%; }
    .rule-mode-options { grid-template-columns: 1fr; }
    .reporting-scope-selection li { align-items: flex-start; flex-direction: column; gap: .15rem; }
    .reporting-scope-selection li span { text-align: left; }
    .reporting-scope-manage { width: 100%; }
    .reporting-scope-dialog { width: 100%; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
    .reporting-scope-dialog footer { display: grid; grid-template-columns: 1fr 1fr; }
    .reporting-scope-dialog footer > * { width: 100%; }
    .assignment-check { margin-top: 0; }
    .record-card { align-items: flex-start; }
    .record-card > div:last-child { justify-items: end; }
    .participant-card, .section-heading, .notification-card { display: grid; grid-template-columns: 1fr; }
    .notification-actions { flex-wrap: wrap; }
    .publication-panel, .draft-delete-panel { align-items: stretch; flex-direction: column; }
    .draft-delete-panel .danger-button { width: 100%; }
    .draft-delete-dialog footer { display: grid; grid-template-columns: 1fr; }
    .draft-delete-dialog footer > *, .draft-delete-dialog footer button { width: 100%; }
    .draft-delete-confirmation .form-actions { align-items: stretch; flex-direction: column; }
    .draft-delete-confirmation .form-actions > *, .draft-delete-confirmation .danger-button { width: 100%; }
    .detail-list div { grid-template-columns: 1fr; gap: .1rem; }
    table, thead, tbody, tr, th, td { display: block; }
    thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    tr { border-bottom: 1px solid var(--line); padding: .75rem 0; }
    td { border: 0; padding: .35rem 0 .35rem 7rem; position: relative; min-height: 2rem; }
    td::before { content: attr(data-label); position: absolute; left: 0; width: 6.5rem; color: var(--muted); font-size: .75rem; font-weight: 800; }
    .calendar-weekdays { display: none; }
    .calendar-week { grid-template-columns: 1fr; }
    .calendar-day { min-height: 0; }
    .calendar-day.is-outside-month { display: none; }
    .calendar-toolbar { flex-wrap: wrap; }
    .calendar-filter-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .calendar-filter-actions > * { width: 100%; }
    .calendar-event-filters { align-items: stretch; flex-direction: column; }
    .event-filter span { width: 100%; justify-content: space-between; }
    .calendar-filter-dialog footer { display: grid; grid-template-columns: 1fr 1fr; }
    .calendar-filter-dialog footer > * { width: 100%; }
    .calendar-request-dialog footer { display: grid; grid-template-columns: 1fr 1fr; }
    .calendar-request-dialog footer > * { width: 100%; }
    .report-export-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .report-export-actions .secondary-button { width: 100%; }
    .year-picker-grid, .month-picker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .status-picker-grid { grid-template-columns: 1fr; }
    .filter-picker-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .filter-picker-actions .secondary-button { width: 100%; }
    .event-editor-modal-backdrop { padding: 0; place-items: stretch; }
    .event-editor-modal { width: 100%; max-height: 100dvh; border: 0; border-radius: 0; }
    .event-editor-modal-header { padding: .5rem .55rem .5rem .75rem; }
    .event-editor-modal-title h1 { font-size: 1.05rem; }
    .event-editor-modal-actions { gap: .35rem; }
    .event-editor-modal-actions .secondary-button, .event-editor-modal-actions button { padding-inline: .65rem; font-size: .875rem; }
    .event-editor-modal-body { padding: .7rem; }
    .admin-editor-modal-backdrop { padding: 0; place-items: stretch; }
    .admin-editor-modal { width: 100%; max-height: 100dvh; border: 0; border-radius: 0; }
    .admin-editor-modal-header { padding: .5rem .55rem .5rem .75rem; }
    .admin-editor-modal-header h2 { font-size: 1.05rem; }
    .admin-editor-modal-actions { gap: .35rem; }
    .admin-editor-modal-actions > * { padding-inline: .65rem; font-size: .875rem; }
    .admin-editor-modal-body { padding: .7rem; }
    .rule-editor-modal .admin-editor-modal-header { gap: .4rem; padding: .6rem .7rem; }
    .rule-editor-modal .admin-editor-modal-header > div { width: 100%; }
    .rule-editor-modal .admin-editor-modal-header .eyebrow { margin: 0; }
    .rule-editor-modal .admin-editor-modal-actions { display: grid; grid-template-columns: auto minmax(0, 1fr); }
    .rule-editor-modal .admin-editor-modal-actions > * { min-height: 44px; }
    .rule-editor-modal .admin-editor-modal-body { padding-bottom: max(.7rem, env(safe-area-inset-bottom)); }
    .rule-calendar { padding: .4rem; }
    .rule-weekday-full { display: none; }
    .rule-weekday-short { display: inline; }
    .rule-calendar-selection > div { align-items: stretch; flex-direction: column; gap: .35rem; }
    .rule-calendar-selection-actions { justify-content: flex-start; }
    .schedule-event-join { align-items: stretch; flex-direction: column; }
    .schedule-event-join button { width: 100%; }
    .organization-row-heading { align-items: flex-start; flex-direction: column; gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .floating-field > label { transition: none; }
    .login-security-switch > span, .login-security-switch > span::before { transition: none; }
}

.auth-card-wide { width: min(100%, 36rem); }
.auth-divider { display: flex; align-items: center; gap: .75rem; margin: 1rem 0; color: var(--muted); }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; background: var(--line); flex: 1; }
.auth-card-compact .auth-divider { margin: .75rem 0; }
.auth-provider-button { width: 100%; justify-content: center; gap: .6rem; }
.auth-provider-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.onboarding-panel { width: min(100%, 64rem); margin-inline: auto; padding: clamp(1rem,3vw,2rem); }
.onboarding-header { max-width: 46rem; }
.onboarding-header p:last-child { margin-bottom: 0; color: var(--muted); }
.onboarding-step-number, .onboarding-step > legend > span { width: 1.55rem; height: 1.55rem; border-radius: 50%; color: #fff; background: var(--burgundy); display: inline-grid; place-items: center; font-size: .72rem; font-weight: 900; }
.onboarding-panel > form { display: grid; gap: 1rem; }
.onboarding-panel [hidden], .onboarding-organization-dialog [hidden] { display: none !important; }
.onboarding-step { margin: 0; padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: #fff; display: grid; gap: .85rem; }
.onboarding-step > legend { padding: 0 .4rem; display: inline-flex; align-items: center; gap: .45rem; }
.onboarding-step-help, .onboarding-step-heading p { margin: 0; color: var(--muted); font-size: .875rem; }
.onboarding-step-heading > div { display: flex; align-items: flex-start; gap: .65rem; }
.onboarding-step-heading h2 { margin: .15rem 0 .2rem; }
.onboarding-step-number { flex: 0 0 auto; }
.onboarding-role-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.choice-card { min-width: 0; min-height: 8rem; padding: .85rem; border: 1px solid var(--line); border-radius: .65rem; cursor: pointer; display: flex; align-items: flex-start; gap: .65rem; }
.choice-card:hover { border-color: var(--burgundy); background: #fffafb; }
.choice-card:has(input:checked) { border-color: var(--burgundy); background: var(--burgundy-soft); box-shadow: inset 0 0 0 1px var(--burgundy); }
.choice-card input { width: 1.15rem; min-height: 1.15rem; height: 1.15rem; margin: .15rem 0 0; flex: 0 0 auto; accent-color: var(--burgundy); }
.choice-card span { min-width: 0; display: grid; gap: .25rem; }
.choice-card small { color: var(--muted); font-weight: 500; line-height: 1.4; }
.segmented-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; }
.segmented-choice label { position: relative; cursor: pointer; }
.segmented-choice input { position: absolute; width: 1px; min-height: 1px; height: 1px; margin: 0; opacity: 0; }
.segmented-choice label > span { min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--line); color: var(--muted); background: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.segmented-choice label:first-child > span { border-radius: .55rem 0 0 .55rem; }
.segmented-choice label:last-child > span { margin-left: -1px; border-radius: 0 .55rem .55rem 0; }
.segmented-choice input:checked + span { position: relative; border-color: var(--burgundy); color: #fff; background: var(--burgundy); }
.segmented-choice input:focus-visible + span { outline: 3px solid #e3a834; outline-offset: 2px; }
.onboarding-existing { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .65rem; }
.onboarding-derived-note { margin: 0 0 .55rem; padding: .55rem .7rem; border-left: 4px solid var(--success); border-radius: .35rem; color: var(--muted); background: #eef8f3; font-size: .82rem; }
.selection-summary { min-height: 4.4rem; padding: .75rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--background); display: grid; align-content: center; gap: .12rem; }
.selection-summary span, .selection-summary small { color: var(--muted); }
.selection-summary small { margin-top: .15rem; font-size: .75rem; }
.onboarding-proposal { margin: 0; background: var(--background); }
.onboarding-proposal .field-help { margin-bottom: .55rem; }
.onboarding-staff-scope select { margin-bottom: 0; }
.onboarding-submit { position: sticky; z-index: 4; bottom: .5rem; padding: .75rem; border: 1px solid var(--line); border-radius: .7rem; background: rgba(255,255,255,.96); box-shadow: 0 10px 30px rgba(23,32,42,.12); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.onboarding-submit > div { display: grid; }
.onboarding-submit span { color: var(--muted); font-size: .78rem; }
.onboarding-submit button { flex: 0 0 auto; }
.selection-dialog { width: min(30rem, calc(100% - 1rem)); max-height: min(34rem, calc(100dvh - 1rem)); padding: 0; border: 1px solid var(--line); border-radius: .75rem; color: var(--text); overflow: hidden; }
.selection-dialog::backdrop { background: rgb(26 13 16 / .58); }
.selection-dialog-header, .selection-dialog-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .5rem .65rem; border-bottom: 1px solid var(--line); }
.selection-dialog-header h2 { margin: 0; font-size: 1rem; }
.selection-dialog-header button { width: 44px; min-width: 44px; padding: .5rem; }
.selection-dialog-description { margin: .5rem .65rem 0; color: var(--muted); font-size: .75rem; }
.selection-dialog > label, .selection-dialog > input { margin-inline: .65rem; width: calc(100% - 1.3rem); }
.selection-dialog > label { display: block; margin-top: .45rem; font-size: .78rem; }
.selection-dialog > input { min-height: 40px; margin-top: .2rem; margin-bottom: .35rem; padding-block: .45rem; }
.selection-dialog-results { display: grid; gap: .3rem; padding: .35rem .65rem .5rem; max-height: 17rem; overflow: auto; }
.selection-dialog-results button { min-height: 44px; display: grid; justify-items: start; gap: 0; width: 100%; padding: .45rem .55rem; color: var(--text); text-align: left; background: var(--surface); border: 1px solid var(--line); }
.selection-dialog-results button strong { font-size: .82rem; }
.selection-dialog-results button span { color: var(--muted); font-size: .72rem; font-weight: 500; }
.selection-dialog-results button[aria-pressed="true"] { border-color: var(--burgundy); background: var(--burgundy-soft); box-shadow: inset 0 0 0 1px var(--burgundy); }
.selection-dialog-empty { margin: .5rem 0; color: var(--muted); text-align: center; }
.selection-dialog-footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
.selection-dialog-footer button { min-height: 40px; padding: .45rem .7rem; font-size: .8rem; }
.admission-queue-link { gap: .45rem; }
.admission-queue-link span { min-width: 1.45rem; min-height: 1.45rem; padding: .1rem .38rem; border-radius: 999px; color: var(--burgundy); background: #fff; font-size: .72rem; font-weight: 900; display: inline-grid; place-items: center; }
.compact-page-heading h1 { font-size: clamp(1.6rem,3vw,2rem); }
.compact-page-heading p:last-child { margin-bottom: 0; }
.admission-review-list { display: grid; gap: .5rem; }
.admission-review-card { min-height: 0; margin: 0; padding: .7rem .8rem; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .75rem; }
.admission-review-main { min-width: 0; }
.admission-review-main > div { display: flex; align-items: center; gap: .45rem; }
.admission-review-main h2 { margin: 0; overflow-wrap: anywhere; font-size: 1rem; }
.admission-review-main p { margin: .18rem 0 0; overflow-wrap: anywhere; font-size: .8rem; font-weight: 700; }
.admission-review-main small { color: var(--muted); font-size: .72rem; }
.admission-review-form { margin: 0; display: flex; align-items: flex-start; gap: .4rem; }
.admission-review-form > button, .admission-review-form details > summary { min-height: 40px; padding: .45rem .7rem; font-size: .8rem; }
.admission-review-form details { width: 11rem; border: 1px solid var(--line); border-radius: .55rem; background: #fff; }
.admission-review-form details > summary { color: var(--burgundy); cursor: pointer; font-weight: 800; list-style: none; display: flex; align-items: center; justify-content: center; }
.admission-review-form details > summary::-webkit-details-marker { display: none; }
.admission-review-form details[open] { width: min(19rem,calc(100vw - 2rem)); padding: 0 .6rem .6rem; }
.admission-review-form details[open] > summary { margin-inline: -.6rem; border-bottom: 1px solid var(--line); }
.admission-review-form details label { margin-top: .45rem; font-size: .75rem; }
.admission-review-form details textarea { min-height: 3.5rem; margin: .15rem 0 .45rem; font-size: .8rem; }
.admission-review-form details > div { display: grid; grid-template-columns: 1fr auto; gap: .35rem; }
.admission-review-form details button { min-height: 40px; padding: .45rem .6rem; font-size: .75rem; }
.admission-empty { min-height: 5rem; padding: 1rem; color: var(--muted); display: grid; place-content: center; justify-items: center; gap: .1rem; text-align: center; }
.admission-empty strong { color: var(--text); }
@media (max-width: 760px) {
    .reset-target-summary { grid-template-columns: 1fr; }
    .reset-approval-form .form-actions { display: grid; grid-template-columns: 1fr; }
    .onboarding-role-grid { grid-template-columns: 1fr; }
    .choice-card { min-height: 0; }
    .onboarding-existing, .onboarding-submit { align-items: stretch; grid-template-columns: 1fr; }
    .onboarding-existing { display: grid; }
    .onboarding-existing .secondary-button, .onboarding-submit button { width: 100%; }
    .onboarding-submit { display: grid; bottom: .25rem; }
    .selection-dialog { width: calc(100% - 1rem); height: auto; max-height: calc(100dvh - 1rem); border: 1px solid var(--line); border-radius: .75rem; }
    .selection-dialog-results { max-height: min(17rem,45dvh); }
    .admission-review-card { align-items: stretch; grid-template-columns: 1fr; }
    .admission-review-form { justify-content: flex-end; }
    .reports-workspace, .annual-chart-grid, .annual-chart-grid > .panel { min-width: 0; max-width: 100%; }
    .report-page-heading { margin-bottom: .6rem; }
    .report-page-heading h1 { font-size: 1.35rem; }
    .report-privacy-callout { padding: .55rem .65rem; }
    .annual-report-filter { display: grid; grid-template-columns: 1fr; gap: .45rem; padding: .6rem; }
    .annual-report-filter > div, .annual-report-filter > div:first-child { width: 100%; min-width: 0; }
    .annual-report-filter .filter-actions { width: 100%; }
    .annual-report-filter .filter-actions button { width: 100%; }
    .annual-report-metrics, .annual-report-metrics.is-non-lgu { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .annual-report-metrics article { min-width: 0; min-height: 3.9rem; padding: .5rem .6rem; }
    .annual-report-metrics strong { font-size: 1.15rem; }
    .annual-report-metrics span { overflow-wrap: anywhere; font-size: .69rem; }
    .annual-chart-grid { grid-template-columns: minmax(0,1fr); gap: .6rem; }
    .annual-chart-grid > .panel, .detailed-report { padding: .7rem; }
    .reports-workspace .report-chart-scroll { width: 100%; min-width: 0; max-width: 100%; }
    .reports-workspace .report-line-chart { min-width: 30rem; }
    .annual-outcome-panel { gap: .5rem; }
    .annual-donut-layout { grid-template-columns: 6.5rem minmax(0,1fr); align-items: center; justify-items: stretch; gap: .65rem; }
    .annual-donut { width: 6.5rem; justify-self: center; }
    .annual-outcome-legend { min-width: 0; font-size: .7rem; }
    .annual-outcome-legend div { grid-template-columns: .6rem minmax(0,1fr) auto; gap: .35rem; }
}

@media (max-width: 390px) {
    .annual-report-metrics, .annual-report-metrics.is-non-lgu { grid-template-columns: 1fr; }
    .annual-donut-layout { grid-template-columns: 1fr; justify-items: center; }
    .annual-outcome-legend { width: 100%; }
}

/* Compact month overview and separate event results. */
.calendar-workspace { max-width: 74rem; margin-inline: auto; min-width: 0; }
.calendar-workspace [hidden] { display: none !important; }
.calendar-controls { margin-bottom: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.calendar-month-form { min-width: 0; display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; flex: 1; }
.calendar-month-form .calendar-filter-field { min-width: 0; width: 15rem; max-width: 100%; }
.calendar-controls .calendar-filter-summary { flex-basis: 100%; }
.calendar-controls > [data-calendar-filters] { flex-basis: 100%; min-width: 0; }
.calendar-controls > [data-calendar-filters]:has(dialog) { flex-basis: 0; }
.calendar-filter-fallback-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
html.has-calendar-dialog { overflow: hidden; }
.calendar-filter-dialog[open] { display: flex; flex-direction: column; max-height: calc(100dvh - 1rem); }
.calendar-filter-dialog header, .calendar-filter-dialog footer { flex: 0 0 auto; }
.calendar-filter-dialog-body { overflow-y: auto; min-height: 0; overscroll-behavior: contain; }
.calendar-filter-dialog .event-filter span { min-height: 44px; }
.calendar-month-panel { padding: 1rem; }
.calendar-month-panel > .field-help { margin: .8rem 0 0; }
.calendar-workspace .calendar-toolbar { flex-wrap: nowrap; margin-bottom: .8rem; }
.calendar-workspace .calendar-toolbar strong { text-align: center; }
.calendar-workspace .calendar-grid { border: 0; background: transparent; }
.calendar-workspace .calendar-weekdays, .calendar-workspace .calendar-week { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .35rem; }
.calendar-workspace .calendar-days { gap: .35rem; }
.calendar-workspace .calendar-weekdays div { min-width: 0; padding: .5rem 0; background: transparent; color: var(--muted); }
.calendar-date { min-height: 4.5rem; padding: .4rem; border: 1px solid #b9d9c9; border-radius: .55rem; background: #eef8f2; color: #176b45; text-decoration: none; display: grid; grid-template-columns: 1fr auto; align-content: start; gap: .15rem; }
.calendar-date time { font-weight: 850; }
.calendar-date-symbol { font-size: .8rem; }
.calendar-date-count { grid-column: 1 / -1; justify-self: center; min-width: 1.4rem; padding: 0 .25rem; background: #fff; border: 1px solid currentColor; border-radius: 1rem; font-size: .75rem; line-height: 1.4; font-weight: 750; }
.calendar-date.day-unavailable { background: #fbeef0; color: #962635; border-color: #e5bdc4; border-style: dashed; }
.calendar-date.day-past { background: #f1f3f5; color: #56616c; border-color: #d9dee4; }
.calendar-date.is-selected { outline: 3px solid var(--burgundy); outline-offset: -3px; }
.calendar-date:focus-visible { outline: 3px solid #17202a; outline-offset: 1px; }
.calendar-date:hover { box-shadow: inset 0 0 0 2px currentColor; }
.calendar-date-filler { min-height: 4.5rem; padding: .4rem; color: var(--muted); opacity: .65; display: block; }
.key-past { background: #f1f3f5; border-left-color: #56616c; }
.calendar-results { scroll-margin-top: 6rem; margin-top: 1.5rem; }
.calendar-results-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.calendar-results-heading h2, .calendar-results-heading p { margin: 0; }
.calendar-results-heading p { color: var(--muted); font-size: .875rem; }
.calendar-date-details { margin-bottom: 1rem; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; border-left: 4px solid var(--burgundy); }
.calendar-date-details h3, .calendar-date-details p { margin: .2rem 0; }
.calendar-date-details .calendar-request-button { width: auto; min-width: 10rem; font-size: .875rem; }
.calendar-event-cards { margin: 0; display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,20rem),1fr)); gap: .75rem; }
.calendar-event-card { --event-status-color: var(--muted); min-width: 0; margin: 0; padding: .85rem 1rem; display: grid; align-content: start; gap: .2rem; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--muted); border-radius: .75rem; overflow-wrap: anywhere; }
.calendar-event-card.event-confirmed { --event-status-color: #27709b; border-left-color: #27709b; }
.calendar-event-card.event-pending { --event-status-color: #996000; border-left-color: #996000; }
.calendar-event-card.event-completed { --event-status-color: var(--success); border-left-color: var(--success); }
.calendar-event-card.event-cancelled { --event-status-color: var(--danger); border-left-color: var(--danger); }
.calendar-event-card.event-draft { border-left-style: dashed; }
.calendar-event-card h3 { margin: 0; font-size: 1.25rem; line-height: 1.3; }
.calendar-event-card h3 a { display: flex; align-items: center; min-height: 44px; }
.calendar-event-card p { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.45; }
.calendar-event-card .calendar-event-title { color: var(--text); }
.calendar-event-meta { margin-top: .35rem; display: grid; gap: .15rem; }
.calendar-event-activity { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .5rem; }
.calendar-event-status { display: inline-flex; align-items: baseline; gap: .25rem; color: var(--event-status-color); font-size: .75rem; font-weight: 750; }
.calendar-event-status > span { font-size: .65rem; }
@media (max-width: 640px) {
    .calendar-controls, .calendar-month-panel { padding: .65rem; }
    .calendar-month-form { flex-basis: 100%; }
    .calendar-month-form .calendar-filter-field { flex: 1; }
    .calendar-workspace .calendar-toolbar { gap: .4rem; }
    .calendar-workspace .calendar-toolbar a { padding: .45rem .5rem; font-size: .8rem; }
    .calendar-workspace .calendar-toolbar strong { font-size: .875rem; }
    .calendar-workspace .calendar-weekdays, .calendar-workspace .calendar-week { gap: .2rem; }
    .calendar-workspace .calendar-days { gap: .2rem; }
    .calendar-workspace .calendar-weekdays div { font-size: .7rem; }
    .calendar-date { min-height: 4rem; padding: .25rem .1rem; grid-template-columns: 1fr; justify-items: center; gap: 0; }
    .calendar-date-symbol { font-size: .65rem; line-height: 1; }
    .calendar-date-count { font-size: .65rem; }
    .calendar-date-filler { min-height: 4rem; text-align: center; }
    .calendar-legend { gap: .3rem; }
    .calendar-key { font-size: .7rem; padding: .25rem .35rem; }
    .calendar-filter-dialog { margin: 0; width: 100%; height: 100dvh; border: 0; border-radius: 0; }
    .calendar-filter-dialog[open] { max-height: 100dvh; }
    .calendar-filter-dialog-body { flex: 1; }
    .calendar-filter-dialog footer { padding-bottom: max(.75rem,env(safe-area-inset-bottom)); }
    .calendar-results-heading .secondary-button, .calendar-date-details .calendar-request-button { width: 100%; }
}

@media (max-width: 1100px) {
    .calendar-workspace .rule-weekday-full { display: none; }
    .calendar-workspace .rule-weekday-short { display: inline; }
}

/* Align filter labels and reserve a stable selection-check column. */
[data-calendar-filter-options] { display: grid; gap: 1rem; }
.calendar-view-toggle legend, .calendar-event-filters legend { padding: 0; margin: 0 0 .5rem; }
.calendar-view-toggle label { min-width: 0; margin: 0; display: flex; }
.calendar-view-toggle label > span { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) 1rem; gap: .4rem; }
.calendar-filter-area label { margin: 0 0 .35rem; }
.calendar-filter-area select { margin: 0; }
.calendar-event-filters > .event-filter { min-width: 0; margin: 0; padding: 0; border: 0; }
.calendar-event-filters .event-filter > span { width: 100%; min-height: 44px; display: grid; grid-template-columns: minmax(0,1fr) 1rem; gap: .6rem; text-align: left; }
.calendar-filter-check { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.calendar-view-toggle input:checked + span > .calendar-filter-check,
.calendar-event-filters input:checked + span > .calendar-filter-check { visibility: visible; }
[data-calendar-filter-options] .calendar-filter-fallback-actions { margin-top: 0; }

.policy-weekdays { min-inline-size: 0; }
.policy-weekdays .field-help { margin: 0 0 .5rem; }
.policy-weekday-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap: .4rem .75rem; }
.policy-weekday-options .check-label { margin: 0; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: .45rem; cursor: pointer; }
.policy-weekday-options .check-label:has(input:checked) { border-color: var(--burgundy); background: var(--burgundy-soft); }
.policy-editor-modal .admin-editor-modal-header { flex: 0 0 auto; flex-wrap: wrap; }
@media (max-width: 640px) {
    .policy-editor-modal .admin-editor-modal-header > div { width: 100%; min-width: 0; }
    .policy-editor-modal .admin-editor-modal-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Event directory pickers keep actions visible on narrow and short screens. */
.event-filter-bar > *, .picker-trigger-group, .filter-picker-header > div { min-width: 0; }
.filter-picker-trigger > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.filter-picker-dialog[open] { display: flex; flex-direction: column; }
.filter-picker-header, .filter-picker-actions { flex: 0 0 auto; }
.filter-picker-body { min-height: 0; overflow-y: auto; }
.filter-picker-dialog .picker-option { white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }
.filter-picker-dialog .picker-option[aria-pressed="true"]::after { top: 50%; transform: translateY(-50%); }
.event-directory-main { min-width: 0; display: grid; align-content: start; gap: .2rem; }
.event-directory-cards .schedule-event-join { margin-top: .65rem; }
@media (max-width: 640px) {
    .event-filter-bar { grid-template-columns: minmax(0,1fr); }
    .event-filter-bar .filter-actions { flex-wrap: wrap; }
    .event-filter-bar .filter-actions > button { flex: 1 1 auto; }
    .filter-picker-header { padding-inline: .75rem; }
    .filter-picker-body { padding: .75rem; }
}

/* Request editor: readable heading, persistent actions and bounded form columns. */
.event-editor-modal-header { flex: 0 0 auto; flex-wrap: wrap; }
.event-editor-modal-title h1 { white-space: normal; overflow: visible; }
.event-editor-modal .form-grid > *, .event-editor-modal fieldset { min-width: 0; }
.event-editor-modal .organization-row-heading { flex-wrap: wrap; }
.event-editor-modal .travel-toggle { margin-block: .3rem .7rem; }
@media (max-width: 640px) {
    .event-editor-modal-title { width: 100%; }
    .event-editor-modal-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .event-editor-modal .form-grid { grid-template-columns: minmax(0,1fr); }
    .event-editor-modal .organizations-panel { padding: .7rem; }
    .event-editor-modal .organization-lead-row { padding-inline: .6rem; }
}

.event-details-panel .form-grid { gap: .5rem .75rem; }
.event-details-panel .floating-field > input,
.event-details-panel .floating-field > select,
.event-details-panel .floating-field > textarea,
.event-details-panel .floating-field > button { margin-bottom: .15rem; }
.event-details-panel > h2 { margin-bottom: .6rem; }
.event-details-panel > .field-help { margin: .65rem 0 0; }
.event-details-panel > .availability-state:not(:empty) { margin-top: .65rem; }
