:root {
    --cms-ink: #1f1d1b;
    --cms-muted: #6d6862;
    --cms-line: #e5dfd7;
    --cms-canvas: #f5f2ed;
    --cms-surface: #fffdf9;
    --cms-wine: #651d2a;
    --cms-wine-dark: #401018;
    --cms-gold: #c79b47;
    --cms-type-xs: .75rem;
    --cms-type-sm: .875rem;
    --cms-type-base: 1rem;
    --cms-type-md: 1.25rem;
    --cms-type-lg: 1.625rem;
    --cms-type-xl: 2.625rem;
    --cms-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-family: var(--cms-font-family);
    color: var(--cms-ink);
    background: var(--cms-canvas);
}
html.has-settings-media-modal { overflow: hidden; }

* { box-sizing: border-box; }
html { min-width: 20rem; background: var(--cms-canvas); }
body { margin: 0; background: var(--cms-canvas); font-size: var(--cms-type-base); }
a { color: var(--cms-wine); }
button, input, textarea, select { font: inherit; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 100; top: -5rem; left: 1rem; padding: .75rem 1rem; border-radius: .4rem; color: var(--cms-ink); background: #fff; box-shadow: 0 8px 24px #0003; }
.skip-link:focus { top: 1rem; }

.cms-app { min-height: 100vh; }
.cms-authenticated .cms-app { display: grid; grid-template-columns: 16rem minmax(0, 1fr); }
.cms-sidebar { position: sticky; top: 0; display: flex; height: 100vh; flex-direction: column; padding: 1.25rem 1rem; overflow-y: auto; color: #fff; background: linear-gradient(160deg, #521620, var(--cms-wine-dark) 72%); }
.cms-brand { display: inline-flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.cms-brand-mark { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; flex: 0 0 auto; border: 1px solid #e6c47b; border-radius: .65rem; color: #fff8e9; background: linear-gradient(145deg, #8a3040, #55131f); font-family: var(--cms-font-family); font-size: var(--cms-type-md); font-weight: 700; box-shadow: inset 0 0 0 3px #ffffff0d; }
.cms-brand strong, .cms-brand small { display: block; }
.cms-brand strong { color: #fff; font-family: var(--cms-font-family); font-size: var(--cms-type-base); letter-spacing: .04em; }
.cms-brand small { margin-top: .05rem; color: #e7cfd3; font-size: var(--cms-type-xs); letter-spacing: .08em; text-transform: uppercase; }
.cms-primary-nav { margin-top: 2.5rem; }
.cms-nav-label { margin: 0 0 .6rem; padding-inline: .75rem; color: #cdaeb4; font-size: var(--cms-type-xs); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cms-nav-link { display: flex; min-height: 44px; align-items: center; margin-bottom: .3rem; padding: .65rem .75rem; border-radius: .55rem; color: #eadde0; font-size: var(--cms-type-sm); font-weight: 650; text-decoration: none; }
.cms-nav-icon { display: inline-grid; width: 1.35rem; flex: 0 0 1.35rem; place-items: center; margin-right: .55rem; color: #e8c67e; font-size: var(--cms-type-base); line-height: 1; }
.cms-nav-link:hover { color: #fff; background: #ffffff12; }
.cms-nav-link.is-active { color: #fff; background: #ffffff18; box-shadow: inset 3px 0 var(--cms-gold); }
.cms-sidebar-footer { display: grid; gap: .2rem; margin-top: auto; padding-top: 1rem; border-top: 1px solid #ffffff1c; }
.cms-sidebar-footer a { min-height: 38px; padding: .55rem .75rem; color: #ddc9cd; font-size: var(--cms-type-sm); text-decoration: none; }
.cms-sidebar-footer a:hover { color: #fff; }
.cms-mobile-nav { display: none; }

.cms-workspace { min-width: 0; }
.cms-topbar { position: sticky; z-index: 20; top: 0; display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem clamp(1rem, 3vw, 2.25rem); border-bottom: 1px solid var(--cms-line); background: #fffdf9ed; backdrop-filter: blur(14px); }
.cms-page-context span, .cms-page-context strong { display: block; }
.cms-page-context span { margin-bottom: .12rem; color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cms-page-context strong { font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.cms-user-area { display: flex; align-items: center; gap: .7rem; }
.cms-user-area form { margin: 0; }
.cms-user-copy { text-align: right; }
.cms-user-copy strong, .cms-user-copy span { display: block; }
.cms-user-copy strong { font-size: var(--cms-type-sm); }
.cms-user-copy span { margin-top: .1rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.cms-avatar { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: 50%; color: #fff; background: var(--cms-wine); font-size: var(--cms-type-xs); font-weight: 800; }
.cms-signout { min-height: 38px; margin: 0; padding: .45rem .75rem; border: 1px solid var(--cms-line); border-radius: .45rem; color: var(--cms-ink); background: #fff; font-size: var(--cms-type-xs); font-weight: 700; cursor: pointer; }
.cms-signout:hover { border-color: #c9beb2; background: #faf7f2; }
.signout-short { display: none; }
.cms-public-link { min-height: 44px; display: inline-flex; align-items: center; color: var(--cms-wine); font-size: var(--cms-type-sm); font-weight: 700; text-decoration: none; }
.cms-brand-guest { color: var(--cms-ink); }
.cms-brand-guest strong { color: var(--cms-ink); }
.cms-brand-guest small { color: var(--cms-muted); }

.cms-container { width: min(78rem, calc(100% - clamp(2rem, 6vw, 4.5rem))); margin: clamp(1.5rem, 4vw, 2.75rem) auto 4rem; }
.cms-guest .cms-workspace { min-height: 100vh; background: radial-gradient(circle at 15% 20%, #e7d7cf 0, transparent 28rem), linear-gradient(135deg, #f8f5f0, #eee8df); }
.cms-guest .cms-container { display: grid; min-height: calc(100vh - 9rem); place-items: center; margin-block: 1.5rem; }
.panel { padding: clamp(1.2rem, 2.5vw, 1.65rem); border: 1px solid var(--cms-line); border-radius: .75rem; background: var(--cms-surface); }
.auth-panel { width: min(31rem, 100%); margin-inline: auto; box-shadow: 0 22px 60px #4d2b2114; }
.auth-panel h1 { margin: .2rem 0 .55rem; font-family: var(--cms-font-family); font-size: clamp(var(--cms-type-lg), 4vw, var(--cms-type-xl)); }
.auth-panel > p { color: var(--cms-muted); }
.auth-panel > .eyebrow { color: var(--cms-wine); }
.auth-panel form button { width: 100%; }
.auth-alternate { margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--cms-line); font-size: var(--cms-type-sm); text-align: center; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.page-heading h1 { margin: 0; font-family: var(--cms-font-family); font-size: clamp(var(--cms-type-lg), 4vw, var(--cms-type-xl)); }
.page-heading p:last-child { margin-bottom: 0; color: var(--cms-muted); }
.content-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.filter-tabs { display: flex; gap: .25rem; padding: .25rem; border: 1px solid var(--cms-line); border-radius: .55rem; background: #fff; }
.filter-tabs a { display: inline-flex; min-height: 40px; align-items: center; padding: .45rem .75rem; border-radius: .4rem; color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 750; text-decoration: none; }
.filter-tabs a[aria-current="page"] { color: #fff; background: var(--cms-wine); }
.toolbar-actions { display: flex; gap: .5rem; }
.eyebrow { margin: 0 0 .4rem; color: var(--cms-wine); font-size: var(--cms-type-xs); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.dashboard-hero { position: relative; display: flex; min-height: 17rem; align-items: center; overflow: hidden; padding: clamp(1.5rem, 5vw, 3.25rem); color: #fff; background: linear-gradient(118deg, #3f1018 0%, #661d2a 58%, #843041 100%); }
.dashboard-hero::before { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(100deg, transparent 45%, #d8ad5e17), radial-gradient(circle at 85% 5%, #fff2 0, transparent 18rem); }
.dashboard-hero-copy { position: relative; z-index: 1; max-width: 47rem; }
.dashboard-hero .eyebrow { color: #e8c67e; }
.dashboard-hero h1 { max-width: 40rem; margin: 0; font-family: var(--cms-font-family); font-size: clamp(var(--cms-type-lg), 4vw, var(--cms-type-xl)); line-height: 1.08; }
.dashboard-hero p:not(.eyebrow) { max-width: 43rem; margin: 1rem 0 0; color: #f0dfe2; line-height: 1.65; }
.dashboard-hero-seal { position: absolute; right: -2rem; bottom: -3rem; display: grid; width: 15rem; height: 15rem; place-items: center; border: 1px solid #ffffff20; border-radius: 50%; color: #ffffff0b; font-family: var(--cms-font-family); font-size: var(--cms-type-lg); font-weight: 800; box-shadow: inset 0 0 0 1.5rem #ffffff05, inset 0 0 0 1.6rem #ffffff10; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.button, .secondary-action { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .65rem 1rem; border-radius: .45rem; font-weight: 750; text-decoration: none; }
.button { border: 1px solid var(--cms-wine); background: var(--cms-wine); color: #fff; }
.button-light { border-color: #fff; color: var(--cms-wine-dark); background: #fff; }
.secondary-action { border: 1px solid #aaa099; background: #fff; color: var(--cms-ink); }
.secondary-on-dark { border-color: #ffffff62; color: #fff; background: #ffffff0a; }

.stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin: 1.1rem 0; overflow: hidden; border: 1px solid var(--cms-line); background: var(--cms-surface); }
.stat-strip div { padding: 1.15rem 1.35rem; border-right: 1px solid var(--cms-line); }
.stat-strip div:last-child { border-right: 0; }
.stat-strip dt { color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.stat-strip dd { margin: .22rem 0 0; font-family: var(--cms-font-family); font-size: var(--cms-type-lg); font-weight: 700; }
.dashboard-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.dashboard-stat-strip { grid-template-columns: repeat(5, 1fr); }
.dashboard-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.dashboard-overview .panel { min-width: 0; }
.dashboard-upcoming, .dashboard-recent { grid-column: 1 / -1; }
.dashboard-data-alert { margin-top: 1rem; margin-bottom: 0; }
.panel-heading-link { min-height: 40px; align-content: center; color: var(--cms-wine); font-size: var(--cms-type-xs); font-weight: 800; text-decoration: none; }
.dashboard-records, .upcoming-events { margin: 0; padding: 0; list-style: none; }
.dashboard-records li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .75rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--cms-line); }
.dashboard-records li > div { min-width: 0; }
.dashboard-records strong, .dashboard-records small, .record-type { display: block; }
.dashboard-records strong { overflow: hidden; font-size: var(--cms-type-sm); text-overflow: ellipsis; white-space: nowrap; }
.dashboard-records small { margin-top: .2rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.dashboard-records .is-overdue { margin-inline: -.5rem; padding-inline: .5rem; border-left: 3px solid #a4192e; background: #fff7f7; }
.dashboard-records .is-overdue small b { color: #8d1226; }
.dashboard-records a, .upcoming-events a { min-height: 40px; align-content: center; font-size: var(--cms-type-xs); font-weight: 800; text-decoration: none; }
.record-type { margin-bottom: .2rem; color: var(--cms-wine); font-size: var(--cms-type-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.dashboard-empty { margin: .75rem 0 0; padding-top: .8rem; border-top: 1px solid var(--cms-line); color: var(--cms-muted); font-size: var(--cms-type-sm); }
.dashboard-privacy { margin: 0 0 .25rem; padding: .65rem .75rem; }
.upcoming-events li { display: grid; grid-template-columns: 12rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .8rem 0; border-top: 1px solid var(--cms-line); }
.upcoming-events time strong, .upcoming-events time span, .upcoming-events li > div > strong, .upcoming-events small { display: block; }
.upcoming-events time strong, .upcoming-events li > div > strong { font-size: var(--cms-type-sm); }
.upcoming-events time span, .upcoming-events small { margin-top: .2rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: .6rem; }
.panel-heading h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.section-count { padding: .25rem .55rem; border-radius: 999px; color: #235c39; background: #e7f3ea; font-size: var(--cms-type-xs); font-weight: 800; }
.module-list { margin: 0; padding: 0; list-style: none; }
.module-list li { display: flex; min-height: 5rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--cms-line); }
.module-list strong { font-size: var(--cms-type-sm); }
.module-list span, .secondary-text { display: block; color: var(--cms-muted); font-size: var(--cms-type-xs); line-height: 1.45; }
.module-list li > div:first-child { max-width: 75%; }
.module-action { display: grid; justify-items: end; gap: .35rem; }
.module-action a { font-size: var(--cms-type-xs); font-weight: 800; text-decoration: none; }
.module-state { flex: 0 0 auto; padding: .25rem .5rem; border-radius: 999px; background: #f1ede7; font-size: var(--cms-type-xs) !important; font-weight: 800; text-transform: uppercase; }
.module-state.is-available { color: #22613a; background: #e5f2e8; }

label { display: block; margin-top: 1rem; font-size: var(--cms-type-sm); font-weight: 700; }
input, textarea, select { width: 100%; padding: .72rem .8rem; border: 1px solid #aaa099; border-radius: .45rem; background: #fff; color: var(--cms-ink); }
input:focus, textarea:focus, select:focus { border-color: var(--cms-wine); box-shadow: 0 0 0 3px #71202c18; outline: 0; }
textarea { resize: vertical; }
input[aria-invalid="true"], textarea[aria-invalid="true"], select[aria-invalid="true"] { border-color: #a4192e; }
fieldset { margin: 1.5rem 0 0; padding: 0 0 1rem; border: 0; border-bottom: 1px solid var(--cms-line); }
legend { font-family: var(--cms-font-family); font-size: var(--cms-type-md); font-weight: 700; }
.check-label { display: flex; align-items: center; gap: .65rem; font-weight: 500; }
.check-label input { width: 1.1rem; height: 1.1rem; margin: 0; }
.optional, .field-help { color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 400; }
.field-help { margin: .35rem 0 0; }
.field-error { margin: .35rem 0 0; color: #8d1226; font-size: var(--cms-type-sm); font-weight: 650; }
.input-prefix { display: flex; align-items: center; border: 1px solid #aaa099; border-radius: .45rem; background: #f5f2ed; }
.input-prefix span { padding-left: .7rem; color: var(--cms-muted); }
.input-prefix input { border: 0; background: transparent; }
.form-actions { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.form-actions > button { margin: 0; }
.form-actions > a { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .65rem 1rem; border: 1px solid #aaa099; border-radius: .45rem; color: var(--cms-ink); background: #fff; font-weight: 750; text-decoration: none; }
.form-actions > a:hover { border-color: var(--cms-wine); background: #fbf4f5; }
.editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1rem; align-items: start; }
.settings-layout { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 1rem; align-items: start; }
.settings-layout > *, .settings-form, .setting-field, .settings-media-selection > * { min-width: 0; }
.setting-field { padding: 0 0 1.25rem; border-bottom: 1px solid var(--cms-line); }
.setting-field:first-of-type label { margin-top: 0; }
.setting-field:last-of-type { padding-bottom: 0; border-bottom: 0; }
.settings-section-heading { margin: 1.5rem 0 1rem; padding: 1rem 0 .25rem; border-top: 2px solid #eadfe0; }
.settings-section-heading:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.settings-section-heading .eyebrow { margin-bottom: .2rem; }
.settings-section-heading h2 { margin: 0; font-size: var(--cms-type-md); }
.settings-guidance { position: sticky; top: 6rem; }
.settings-guidance h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.settings-guidance p:not(.eyebrow) { line-height: 1.6; }
.settings-readonly { margin: 1.25rem 0 0; padding: .8rem; border-radius: .45rem; color: var(--cms-muted); background: #f5f2ed; font-size: var(--cms-type-sm); }
.settings-media-selection { display: grid; grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .8rem; border: 1px solid var(--cms-line); border-radius: .55rem; background: #faf7f2; }
.settings-media-preview { display: grid; width: 100%; height: 5rem; place-items: center; overflow: hidden; border-radius: .4rem; background: #eee8df; }
.settings-media-preview img { width: 100%; height: 100%; object-fit: cover; }
.settings-media-preview span { padding: .5rem; color: var(--cms-muted); font-size: var(--cms-type-xs); text-align: center; }
.settings-media-selection strong, .settings-media-selection span { display: block; }
.settings-media-selection strong, .settings-media-selection span, .settings-guidance p { overflow-wrap: anywhere; }
.settings-media-selection span { margin-top: .2rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.settings-media-selection .secondary-action { min-height: 44px; margin: 0; white-space: nowrap; }
.settings-media-modal { width: min(76rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; overflow: hidden; border: 1px solid #d4c7bd; border-radius: .9rem; color: var(--cms-ink); background: var(--cms-canvas); box-shadow: 0 30px 90px #16070a66; }
.settings-media-modal::backdrop { background: #241014b8; backdrop-filter: blur(5px); }
.settings-media-modal-shell { display: flex; max-height: calc(100dvh - 2rem); flex-direction: column; }
.settings-media-modal-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; border-bottom: 1px solid var(--cms-line); background: var(--cms-surface); }
.settings-media-modal-actions { display: flex; align-items: center; gap: .5rem; }
.settings-media-modal-actions .secondary-action { min-height: 44px; margin: 0; white-space: nowrap; }
.settings-media-modal-header h2, .settings-media-modal-body h3 { margin: 0; font-family: var(--cms-font-family); }
.settings-media-modal-header h2 { font-size: var(--cms-type-md); }
.settings-media-close { display: grid; width: 44px; height: 44px; margin: 0; padding: 0; place-items: center; border: 1px solid #aaa099; border-radius: .45rem; color: var(--cms-ink); background: #fff; font-size: var(--cms-type-md); }
.settings-media-modal-body { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; min-height: 0; overflow: hidden; }
.content-media-modal .settings-media-modal-body { grid-template-columns: minmax(0, 1fr); }
.content-media-modal .settings-media-grid { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); }
.settings-media-browser { min-width: 0; padding: 1rem; overflow-y: auto; }
.settings-media-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.settings-media-toolbar h3, .settings-media-upload h3 { font-size: var(--cms-type-base); }
.settings-media-toolbar p, .settings-media-upload > p { margin: .2rem 0 0; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.settings-media-toolbar label { width: min(18rem, 50%); margin: 0; font-size: var(--cms-type-xs); }
.settings-media-toolbar input { margin-top: .25rem; }
.settings-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .75rem; }
.settings-media-option { display: grid; min-width: 0; margin: 0; padding: .45rem; border: 2px solid transparent; border-radius: .55rem; color: var(--cms-ink); background: #fff; box-shadow: 0 0 0 1px var(--cms-line); text-align: left; }
.settings-media-option:hover { border-color: #bc8b94; background: #fff; }
.settings-media-option[aria-pressed="true"] { border-color: var(--cms-wine); box-shadow: 0 0 0 2px #f0dce0; }
.settings-media-option img { width: 100%; aspect-ratio: 16 / 9; border-radius: .35rem; object-fit: cover; background: #eee8df; }
.settings-media-option span { margin-top: .5rem; overflow: hidden; font-size: var(--cms-type-xs); font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.settings-media-option small { color: var(--cms-muted); font-size: .6875rem; }
.settings-media-empty { padding: 1rem; border: 1px dashed #c9beb2; border-radius: .5rem; color: var(--cms-muted); background: #faf7f2; }
.settings-media-upload { padding: 1rem; overflow-y: auto; border-left: 1px solid var(--cms-line); background: #faf7f2; }
.settings-media-upload form { margin-top: 1rem; }
.settings-media-upload input[type="file"] { padding: .45rem; font-size: var(--cms-type-xs); }
.settings-media-upload-status { min-height: 1.5rem; margin: .75rem 0; color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 650; }
.media-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 1.25rem; align-items: start; }
.section-toolbar { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-toolbar h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.media-card { border: 1px solid var(--cms-line); background: #fff; }
.media-preview { display: grid; height: 10rem; place-items: center; overflow: hidden; color: var(--cms-wine); background: #eee8df; text-decoration: none; }
.media-preview img { width: 100%; height: 100%; object-fit: cover; }
.media-file-mark { display: grid; width: 4.5rem; height: 5.5rem; place-items: center; border-radius: .3rem; color: #fff; background: var(--cms-wine); font-size: var(--cms-type-sm); font-weight: 850; box-shadow: 8px 8px 0 #c8bdb1; }
.media-card-copy { display: grid; gap: .25rem; padding: .9rem; }
.media-card-copy strong { overflow: hidden; font-size: var(--cms-type-sm); text-overflow: ellipsis; white-space: nowrap; }
.media-card-copy span { color: var(--cms-muted); font-size: var(--cms-type-xs); }
.media-card-copy a { margin-top: .3rem; font-size: var(--cms-type-xs); font-weight: 750; text-decoration: none; }
.media-upload-panel { position: sticky; top: 6rem; }
.media-upload-panel h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.media-upload-panel input[type="file"] { padding: .5rem; font-size: var(--cms-type-xs); }
.cms-toast { position: fixed; z-index: 80; top: 1rem; right: 1rem; display: flex; width: min(28rem, calc(100% - 2rem)); align-items: flex-start; gap: .75rem; padding: .9rem 1rem; border: 1px solid #d8aab1; border-left: .3rem solid #a4192e; border-radius: .55rem; color: #67101f; background: #fff8f8; box-shadow: 0 14px 40px #35101626; font-size: var(--cms-type-sm); font-weight: 650; }
.cms-toast[hidden] { display: none; }
.cms-toast span { flex: 1 1 auto; line-height: 1.45; }
.cms-toast button { display: grid; width: 44px; height: 44px; margin: -.65rem -.65rem -.65rem 0; padding: 0; place-items: center; border: 0; border-radius: .45rem; color: inherit; background: transparent; font-size: var(--cms-type-md); cursor: pointer; }
.cms-toast button:hover { background: #f7e4e7; }
.legacy-media-note { display: flex; gap: .5rem 1rem; margin-top: 1.25rem; padding: 1rem; border: 1px dashed #c9beb2; border-radius: .55rem; color: var(--cms-muted); background: #faf7f2; font-size: var(--cms-type-xs); }
.legacy-media-note strong { flex: 0 0 auto; color: var(--cms-ink); }
.media-detail-layout { display: grid; grid-template-columns: minmax(18rem, .9fr) minmax(22rem, 1.1fr); gap: 1rem; align-items: start; }
.media-detail-preview > img { display: block; width: 100%; max-height: 32rem; border-radius: .5rem; object-fit: contain; background: #eee8df; }
.media-pdf-preview { display: grid; min-height: 18rem; place-items: center; align-content: center; gap: 1rem; border-radius: .5rem; background: #eee8df; }
.media-pdf-preview > span { font-family: var(--cms-font-family); font-size: var(--cms-type-lg); font-weight: 800; }
.media-facts { margin: 1rem 0 0; }
.media-facts div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--cms-line); font-size: var(--cms-type-xs); }
.media-facts dt { color: var(--cms-muted); font-weight: 700; }
.media-facts dd { margin: 0; overflow-wrap: anywhere; }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1rem; border-color: #deb7bc; }
.danger-zone h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.danger-zone p:last-child { margin-bottom: 0; color: var(--cms-muted); font-size: var(--cms-type-sm); }
.danger-zone form { display: grid; width: min(100%, 18rem); flex: 0 0 auto; gap: 1rem; }
.danger-zone form .check-label { min-height: 44px; margin: 0; }
.danger-button { margin: 0; background: #8d1226; }
.editor-sidebar { display: grid; gap: 1rem; }
.editor-sidebar h2 { margin-top: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.editor-sidebar .field-help a[href="/cms/media/"] { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; margin-top: .45rem; padding: .42rem .7rem; border: 1px solid #aaa099; border-radius: .4rem; color: var(--cms-wine); background: #fff; font-size: var(--cms-type-xs); font-weight: 750; line-height: 1.2; text-decoration: none; }
.editor-sidebar .field-help a[href="/cms/media/"]:hover { border-color: var(--cms-wine); background: #fbf4f5; }
.revision-list { margin: 0; padding-left: 1.25rem; }
.revision-list li { margin-bottom: .8rem; }
.revision-list span { display: block; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.revision-list a { display: inline-flex; min-height: 40px; align-items: center; font-size: var(--cms-type-xs); font-weight: 800; text-decoration: none; }
.preview-warning { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid #d3b36d; border-left: .3rem solid #9b6a0d; border-radius: .45rem; color: #514423; background: #fff9e8; }
.preview-warning span { font-size: var(--cms-type-xs); font-weight: 750; }
.editorial-preview { max-width: 62rem; margin-inline: auto; padding: clamp(1.25rem,4vw,3rem); }
.editorial-preview header { padding-bottom: 1.25rem; border-bottom: 1px solid var(--cms-line); }
.editorial-preview h2 { max-width: 48rem; margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-xl); line-height: 1.12; }
.editorial-preview-summary { max-width: 46rem; margin: .8rem 0 0; color: var(--cms-muted); font-size: var(--cms-type-md); line-height: 1.5; }
.editorial-preview-body { max-width: 46rem; margin: 2rem auto; color: #303943; line-height: 1.75; }
.editorial-preview-body p { margin: 0 0 1.35rem; }
.editorial-preview-body p:last-child { margin-bottom: 0; }
.editorial-preview footer { padding-top: 1rem; border-top: 1px solid var(--cms-line); color: var(--cms-muted); font-size: var(--cms-type-xs); overflow-wrap: anywhere; }
.editorial-preview-image { display: block; width: 100%; max-height: 28rem; margin-bottom: 1.5rem; border-radius: .5rem; object-fit: cover; background: #eee8df; }
.restore-panel { display: flex; max-width: 62rem; align-items: center; justify-content: space-between; gap: 2rem; margin: 1rem auto 0; border-color: #d3b36d; }
.restore-panel h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.restore-panel p { margin: .35rem 0 0; color: var(--cms-muted); font-size: var(--cms-type-sm); }
.restore-panel form { flex: 0 0 auto; }
.restore-panel button { margin: 0; }
.lifecycle-confirm { max-width: 46rem; }
.lifecycle-confirm h2 { margin-top: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.lifecycle-confirm > p { color: var(--cms-muted); line-height: 1.6; }
.lifecycle-confirm .privacy-callout { margin: 1rem 0 0; }
.danger-zone .secondary-action { flex: 0 0 auto; }
button { min-height: 44px; margin-top: 1rem; padding: .7rem 1rem; border: 0; border-radius: .45rem; color: #fff; background: var(--cms-wine); font-weight: 750; cursor: pointer; }
.alert { margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--cms-line); border-left: .3rem solid var(--cms-wine); border-radius: .45rem; background: #fff; }
.error { border-left-color: #a4192e; }
.success { border-left-color: #24713a; }
.empty-state { max-width: 42rem; }
.privacy-callout { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .5rem 1rem; margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid #d3b36d; border-left: .3rem solid #9b6a0d; border-radius: .45rem; color: #514423; background: #fff9e8; }
.privacy-callout span { color: #6e6040; font-size: var(--cms-type-sm); }
.source-callout { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .5rem 1rem; margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid #a8cadf; border-left: .3rem solid #27709b; border-radius: .45rem; color: #163f59; background: #eef7fc; }
.source-callout span { color: #3c6278; font-size: var(--cms-type-sm); }
.relationship-list { display: grid; gap: .75rem; margin-top: 1rem; }
.relationship-row { padding-top: .75rem; border-top: 1px solid var(--cms-line); }
.relationship-row label { margin-top: 0; }
.relationship-row input[type="text"], .relationship-row > input { margin-top: .4rem; }
.module-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.module-directory .panel h2 { margin-top: 0; font-size: var(--cms-type-md); }
.menu-editor-layout { display: grid; grid-template-columns: minmax(17rem, .65fr) minmax(0, 1.35fr); gap: 1rem; align-items: start; }
.menu-tree, .menu-tree ol { margin: 0; padding: 0; list-style: none; }
.menu-tree > li { border-top: 1px solid var(--cms-line); }
.menu-tree ol { margin-left: 1.5rem; border-left: 3px solid #e4d7c6; }
.menu-tree ol li { padding-left: 1rem; border-top: 1px solid var(--cms-line); }
.menu-tree-row { display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; }
.menu-tree-row > div:first-child { min-width: 0; }
.menu-tree-row strong, .menu-tree-row span { display: block; }
.menu-tree-row > div:first-child span { overflow: hidden; color: var(--cms-muted); font-size: var(--cms-type-xs); text-overflow: ellipsis; white-space: nowrap; }
.menu-tree-row > div:last-child { display: flex; align-items: center; gap: .75rem; }
.menu-item-form { max-width: 58rem; }
.menu-enabled { min-height: 44px; margin-top: 1rem; }
.activation-notice { border-left-color: #9b6a0d; background: #fff9e8; }
.activation-notice h2 { margin: 0 0 .75rem; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.activation-notice code { display: block; padding: .75rem; overflow-wrap: anywhere; border: 1px solid #d3b36d; border-radius: .4rem; color: var(--cms-wine-dark); background: #fff; font-size: var(--cms-type-sm); user-select: all; }
.activation-notice p:last-child { margin-bottom: 0; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.account-facts { margin: 0; }
.account-facts div { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: .75rem; padding: .6rem 0; border-top: 1px solid var(--cms-line); font-size: var(--cms-type-xs); }
.account-facts dt { color: var(--cms-muted); font-weight: 750; }
.account-facts dd { margin: 0; overflow-wrap: anywhere; }
.role-editor { display: grid; gap: 1rem; }
.permission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.permission-group { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--cms-line); }
.permission-group legend { padding: 0 .35rem; font-size: var(--cms-type-base); }
.permission-option { display: flex; align-items: flex-start; gap: .65rem; margin-top: .8rem; font-weight: 500; }
.permission-option input { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; margin: .15rem 0 0; }
.permission-option strong, .permission-option small { display: block; overflow-wrap: anywhere; }
.permission-option strong { font-size: var(--cms-type-xs); }
.permission-option small { margin-top: .2rem; color: var(--cms-muted); font-size: var(--cms-type-xs); line-height: 1.4; }
.activity-filters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; gap: .75rem; align-items: end; margin-bottom: 1rem; }
.activity-filters label { margin-top: 0; font-size: var(--cms-type-xs); }
.activity-filter-actions { display: flex; min-height: 44px; align-items: center; gap: .75rem; }
.activity-filter-actions button { margin: 0; white-space: nowrap; }
.activity-filter-actions a { font-size: var(--cms-type-xs); font-weight: 750; }
.activity-summary { align-items: center; margin-bottom: .65rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.activity-summary p { margin: 0; color: var(--cms-ink); font-weight: 750; }
.activity-table time, .activity-table code { font-size: var(--cms-type-xs); }
.activity-details-trigger { min-height: 40px; margin: 0; padding: .45rem .7rem; border: 1px solid #aaa099; color: var(--cms-wine); background: #fff; font-size: var(--cms-type-xs); }
.activity-details-trigger:hover { border-color: var(--cms-wine); background: #fbf4f5; }
.activity-detail-modal { width: min(36rem, calc(100% - 2rem)); max-height: calc(100dvh - 3rem); padding: 0; overflow: hidden; border: 1px solid #d4c7bd; border-radius: .8rem; color: var(--cms-ink); background: var(--cms-canvas); box-shadow: 0 28px 80px #16070a66; }
.activity-detail-modal::backdrop { background: #241014b8; backdrop-filter: blur(5px); }
.activity-modal-header { display: flex; min-height: 4rem; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .75rem .8rem .75rem 1rem; border-bottom: 1px solid var(--cms-line); background: var(--cms-surface); }
.activity-modal-header h2 { margin: 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); }
.activity-modal-header p:last-child { margin: .25rem 0 0; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.activity-modal-header .icon-button { margin: 0; }
.activity-modal-body { max-height: calc(100dvh - 8rem); padding: 1rem; overflow-y: auto; overscroll-behavior: contain; }
.activity-modal-body dl { margin: 0; }
.activity-modal-body dl div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: .75rem; padding: .7rem 0; border-top: 1px solid var(--cms-line); font-size: var(--cms-type-sm); }
.activity-modal-body dl div:first-child { border-top: 0; }
.activity-modal-body dt { color: var(--cms-muted); font-weight: 750; }
.activity-modal-body dd { margin: 0; overflow-wrap: anywhere; }
.activity-modal-actions { display: flex; justify-content: flex-end; padding-top: .75rem; border-top: 1px solid var(--cms-line); }
.activity-modal-actions button { margin: 0; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.page-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); gap: 1rem; }
.page-card { display: flex; min-width: 0; min-height: 15rem; flex-direction: column; padding: 1.15rem; border: 1px solid var(--cms-line); border-radius: .75rem; background: var(--cms-surface); box-shadow: 0 8px 28px #4d2b2109; }
.page-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.page-card-heading > div { min-width: 0; }
.page-card-heading h2 { margin: .3rem 0 0; font-family: var(--cms-font-family); font-size: var(--cms-type-md); line-height: 1.25; overflow-wrap: anywhere; white-space: normal; }
.page-card-path { margin: 0; color: var(--cms-wine); font-size: var(--cms-type-xs); font-weight: 750; overflow-wrap: anywhere; }
.page-card-heading .status { flex: 0 0 auto; }
.page-card-facts { display: grid; gap: .55rem; margin: 1rem 0; }
.page-card-facts div { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: .65rem; padding-top: .55rem; border-top: 1px solid var(--cms-line); }
.page-card-facts dt { color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 750; }
.page-card-facts dd { margin: 0; font-size: var(--cms-type-sm); line-height: 1.45; overflow-wrap: anywhere; }
.page-card-facts dd span { display: block; margin-top: .15rem; color: var(--cms-muted); font-size: var(--cms-type-xs); }
.page-card-actions { display: flex; justify-content: flex-end; margin-top: auto; }
.menu-card-description { margin: .85rem 0 0; color: var(--cms-muted); font-size: var(--cms-type-sm); line-height: 1.5; overflow-wrap: anywhere; white-space: normal; }
.user-card-registration { margin-top: .85rem; }
.icon-button { display: inline-grid; width: 44px; height: 44px; place-items: center; flex: 0 0 44px; border: 1px solid #aaa099; border-radius: .5rem; color: var(--cms-wine); background: #fff; text-decoration: none; }
.icon-button:hover { border-color: var(--cms-wine); background: #fbf4f5; }
.editor-modal-backdrop { position: fixed; z-index: 80; inset: 0; display: grid; place-items: center; padding: clamp(.5rem, 2vw, 1.5rem); background: #241014b8; backdrop-filter: blur(5px); }
.editor-modal { display: flex; width: min(74rem, 100%); max-height: calc(100dvh - clamp(1rem, 4vw, 3rem)); flex-direction: column; overflow: hidden; border: 1px solid #d4c7bd; border-radius: .9rem; background: var(--cms-canvas); box-shadow: 0 30px 90px #16070a66; }
.editor-modal-narrow { width: min(58rem, 100%); }
.editor-modal-header { display: flex; min-height: 3.75rem; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem .8rem .55rem 1rem; border-bottom: 1px solid var(--cms-line); background: var(--cms-surface); }
.editor-modal-title { min-width: 0; }
.editor-modal-header .eyebrow { margin-bottom: .12rem; font-size: .6875rem; line-height: 1; }
.editor-modal-header h1 { margin: 0; overflow: hidden; font-family: var(--cms-font-family); font-size: var(--cms-type-md); line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.editor-modal-header .toolbar-actions { align-items: center; }
.editor-modal-header .secondary-action, .editor-modal-header .modal-save { min-height: 44px; padding: .5rem .8rem; font-size: var(--cms-type-xs); white-space: nowrap; }
.editor-modal-header .modal-save { margin: 0; }
.editor-modal-body { padding: 1rem; overflow-y: auto; overscroll-behavior: contain; }
.editor-modal-body .danger-zone { margin-bottom: 0; }
.table-wrap { overflow-x: auto; border: 1px solid var(--cms-line); border-radius: .65rem; background: #fff; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .85rem 1rem; border-bottom: 1px solid var(--cms-line); text-align: left; vertical-align: top; }
th { color: var(--cms-muted); background: #f5f2ed; font-size: var(--cms-type-xs); letter-spacing: .06em; text-transform: uppercase; }
tbody tr:last-child td { border-bottom: 0; }
.table-action { text-align: right; }
.status { display: inline-flex; padding: .2rem .55rem; border: 1px solid #aaa099; border-radius: 999px; font-size: var(--cms-type-xs); font-weight: 750; }
.status-published { border-color: #4a9661; color: #185429; background: #f0f8f2; }
.status-review, .status-scheduled { border-color: #c89a32; color: #704c00; background: #fff9e9; }
:focus-visible { outline: 3px solid #2457a7; outline-offset: 3px; }

@media (max-width: 64rem) {
    .cms-authenticated .cms-app { grid-template-columns: 5.25rem minmax(0, 1fr); }
    .cms-sidebar { align-items: center; padding: .8rem .4rem; }
    .cms-sidebar .cms-brand { justify-content: center; }
    .cms-sidebar .cms-brand > span:last-child, .cms-nav-label, .cms-sidebar-footer { display: none; }
    .cms-brand-mark { width: 2.35rem; height: 2.35rem; }
    .cms-primary-nav { width: 100%; margin-top: 1.4rem; }
    .cms-nav-link { min-height: 3.8rem; flex-direction: column; justify-content: center; gap: .3rem; margin-bottom: .35rem; padding: .35rem .2rem; font-size: var(--cms-type-xs); line-height: 1; text-align: center; }
    .cms-nav-icon { width: auto; flex: 0 0 auto; margin: 0; font-size: var(--cms-type-md); }
    .cms-nav-link.is-active { box-shadow: inset 3px 0 var(--cms-gold); }
    .cms-topbar { min-height: 3.75rem; padding-block: .45rem; }
    .cms-container { width: min(100% - 2rem, 78rem); margin-top: 1.5rem; }
    .dashboard-hero { min-height: 14rem; padding: 2rem; }
    .dashboard-hero h1 { font-size: clamp(var(--cms-type-lg), 4vw, var(--cms-type-xl)); }
    .panel { padding: 1.2rem; }
    .dashboard-layout { grid-template-columns: 1fr; }
    .dashboard-overview { grid-template-columns: 1fr; }
    .dashboard-upcoming, .dashboard-recent { grid-column: auto; }
    .activity-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .settings-layout { grid-template-columns: minmax(0, 1fr); }
    .settings-guidance { position: static; }
    .settings-form, .settings-guidance { width: 100%; }
    .settings-media-modal-body { grid-template-columns: minmax(0, 1fr) minmax(17rem, 19rem); }
    .content-media-modal .settings-media-modal-body { grid-template-columns: minmax(0, 1fr); }
    .settings-media-grid { grid-template-columns: repeat(2, minmax(0, 9rem)); justify-content: center; }
    .settings-media-option { align-content: start; }
    .settings-media-option img { height: 1in; aspect-ratio: auto; object-fit: contain; }
}

@media (max-width: 48rem) {
    .cms-authenticated .cms-app { display: block; }
    .cms-authenticated { padding-bottom: calc(3.9rem + env(safe-area-inset-bottom)); }
    .cms-sidebar { display: none; }
    .cms-mobile-nav { position: fixed; z-index: 50; inset: auto 0 0; display: flex; width: 100%; height: calc(3.9rem + env(safe-area-inset-bottom)); margin: 0; padding: 0 0 env(safe-area-inset-bottom); overflow: hidden; border-top: 1px solid #8b4450; background: #48131c; box-shadow: 0 -8px 24px #3010171f; }
    .cms-nav-link { min-width: 0; min-height: 3.9rem; flex: 1 1 0; gap: .2rem; margin: 0; padding: .35rem .15rem .25rem; border-radius: 0; color: #d9c5c9; font-size: clamp(.625rem, 2.8vw, var(--cms-type-xs)); line-height: 1; }
    .cms-nav-icon { color: #d4a956; font-size: var(--cms-type-base); }
    .cms-nav-link.is-active { color: #fff; background: #ffffff10; box-shadow: inset 0 3px var(--cms-gold); }
    .cms-topbar { position: sticky; min-height: 3.35rem; padding: .35rem .75rem; }
    .cms-page-context span, .cms-user-copy { display: none; }
    .cms-page-context strong { max-width: 11rem; overflow: hidden; font-size: var(--cms-type-base); text-overflow: ellipsis; white-space: nowrap; }
    .cms-user-area { gap: .35rem; }
    .cms-avatar { width: 1.9rem; height: 1.9rem; font-size: var(--cms-type-xs); }
    .cms-signout { min-height: 44px; padding: .35rem .55rem; border-color: transparent; background: transparent; }
    .signout-full { display: none; }
    .signout-short { display: inline; }
    .cms-container { width: calc(100% - 1.25rem); margin: .85rem auto 1.25rem; }
    .panel { padding: 1rem; border-radius: .65rem; }
    .page-heading { align-items: flex-start; flex-direction: row; margin-bottom: .9rem; }
    .page-heading > div { min-width: 0; }
    .page-heading h1 { font-size: var(--cms-type-lg); line-height: 1.1; }
    .page-heading p:last-child { margin-top: .4rem; font-size: var(--cms-type-xs); line-height: 1.4; }
    .page-heading .button, .page-heading .secondary-action { width: auto; min-height: 44px; flex: 0 0 auto; padding-inline: .75rem; font-size: var(--cms-type-xs); }
    .page-card-grid { grid-template-columns: 1fr; gap: .7rem; }
    .page-card { min-height: 0; padding: 1rem; }
    .editor-modal-backdrop { padding: 0; place-items: stretch; }
    .editor-modal { width: 100%; max-height: 100dvh; border: 0; border-radius: 0; }
    .editor-modal-header { position: sticky; z-index: 2; top: 0; padding: .45rem .55rem .45rem .7rem; }
    .editor-modal-header .modal-preview { display: none; }
    .editor-modal-header .toolbar-actions { width: auto; }
    .editor-modal-header .secondary-action, .editor-modal-header .modal-save { flex: 0 0 auto; padding-inline: .65rem; }
    .editor-modal-body { padding: .65rem; }
    .content-toolbar { align-items: stretch; flex-direction: column; }
    .filter-tabs, .toolbar-actions { display: flex; width: 100%; }
    .filter-tabs a, .toolbar-actions a { flex: 1 1 0; text-align: center; }
    .eyebrow { margin-bottom: .25rem; font-size: var(--cms-type-xs); }
    .dashboard-hero { min-height: 12.5rem; padding: 1.3rem; border-radius: .7rem; }
    .dashboard-hero h1 { font-size: var(--cms-type-lg); }
    .dashboard-hero p:not(.eyebrow) { margin-top: .65rem; font-size: var(--cms-type-sm); line-height: 1.45; }
    .dashboard-hero-seal { width: 10rem; height: 10rem; }
    .hero-actions { gap: .5rem; margin-top: 1rem; }
    .hero-actions .button, .hero-actions .secondary-action { min-height: 40px; padding: .5rem .7rem; font-size: var(--cms-type-xs); }
    .stat-strip { grid-template-columns: repeat(2, 1fr); }
    .stat-strip { margin: .7rem 0; }
    .stat-strip div { padding: .7rem .85rem; }
    .stat-strip dt { font-size: var(--cms-type-xs); }
    .stat-strip dd { font-size: var(--cms-type-md); }
    .stat-strip div:nth-child(2) { border-right: 0; }
    .stat-strip div:nth-child(-n + 2) { border-bottom: 1px solid var(--cms-line); }
    .dashboard-stat-strip { grid-template-columns: repeat(5, minmax(7rem, 1fr)); overflow-x: auto; }
    .dashboard-stat-strip div { border-right: 1px solid var(--cms-line); border-bottom: 0 !important; }
    .dashboard-layout { gap: .7rem; }
    .dashboard-overview { gap: .7rem; }
    .panel-heading h2, .section-toolbar h2 { font-size: var(--cms-type-md); }
    .module-list li { min-height: 4rem; padding: .7rem 0; }
    .module-list strong { font-size: var(--cms-type-sm); }
    .module-list span, .secondary-text { font-size: var(--cms-type-xs); }
    .module-state { font-size: var(--cms-type-xs) !important; }
    .upcoming-events li { grid-template-columns: 1fr auto; gap: .55rem; }
    .upcoming-events time { grid-column: 1 / -1; }
    .editor-layout, .settings-layout, .media-workspace, .media-detail-layout, .menu-editor-layout, .permission-grid { grid-template-columns: 1fr; }
    .module-directory { grid-template-columns: 1fr; }
    .activity-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .activity-filter-actions { grid-column: 1 / -1; }
    .privacy-callout, .source-callout { grid-template-columns: 1fr; padding: .75rem; }
    .settings-guidance, .media-upload-panel { position: static; }
    .settings-form .form-actions { position: relative; z-index: 1; }
    .settings-form .form-actions > button { width: 100%; min-height: 48px; }
    .settings-media-selection { grid-template-columns: 8rem minmax(0, 1fr); }
    .settings-media-selection .secondary-action { grid-column: 1 / -1; width: 100%; }
    .settings-media-modal { width: 100%; max-width: none; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
    .settings-media-modal-shell { height: 100%; max-height: 100dvh; }
    .settings-media-modal-header { padding: .55rem .65rem .55rem .8rem; }
    .settings-media-modal-body { grid-template-columns: 1fr; overflow-y: auto; }
    .settings-media-browser, .settings-media-upload { padding: .8rem; overflow: visible; }
    .settings-media-upload { border-top: 1px solid var(--cms-line); border-left: 0; }
    .settings-media-toolbar { align-items: stretch; flex-direction: column; }
    .settings-media-toolbar label { width: 100%; }
    .settings-media-grid { grid-template-columns: repeat(2, minmax(0, 9rem)); }
    .settings-media-option { min-height: 44px; }
    .settings-media-option span { line-height: 1.25; text-overflow: clip; white-space: normal; }
    .settings-media-upload input[type="file"] { max-width: 100%; min-width: 0; }
    .settings-media-upload button[type="submit"] { width: 100%; min-height: 48px; }
    .media-upload-panel { order: -1; }
    .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .media-preview { height: 7rem; }
    .media-card-copy { padding: .65rem; }
    .media-card-copy strong { font-size: var(--cms-type-xs); }
    .legacy-media-note { align-items: flex-start; flex-direction: column; margin-top: .8rem; padding: .75rem; }
    .media-facts div { grid-template-columns: 6.5rem 1fr; gap: .5rem; }
    .danger-zone { align-items: flex-start; flex-direction: column; }
    .editorial-preview { padding: 1.1rem; }
    .editorial-preview h2 { font-size: var(--cms-type-lg); }
    .editorial-preview-summary { font-size: var(--cms-type-base); }
    .editorial-preview-body { margin-block: 1.25rem; }
    .restore-panel { align-items: stretch; flex-direction: column; gap: .75rem; }
    .restore-panel button { width: 100%; }
    label { margin-top: .8rem; font-size: var(--cms-type-sm); }
    input, textarea, select { padding: .62rem .7rem; font-size: var(--cms-type-base); }
    .form-actions { margin-top: 1rem; }
    .table-wrap { overflow: visible; border: 0; background: transparent; }
    table, thead, tbody, tr, th, td { display: block; }
    thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    tbody { display: grid; gap: .65rem; }
    tbody tr { padding: .75rem; border: 1px solid var(--cms-line); border-radius: .65rem; background: #fff; box-shadow: 0 3px 10px #3e211a0a; }
    tbody td { display: grid; min-height: 1.8rem; grid-template-columns: 4.6rem 1fr; gap: .55rem; align-items: start; padding: .28rem 0; border: 0; font-size: var(--cms-type-xs); text-align: left; }
    tbody td::before { content: attr(data-label); color: var(--cms-muted); font-size: var(--cms-type-xs); font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
    .activity-table tbody td:last-child { grid-template-columns: 4.6rem minmax(0, 1fr); }
    .activity-detail-modal { width: 100%; max-width: none; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
    .activity-modal-body { max-height: calc(100dvh - 4rem); }
    .activity-modal-body dl div { grid-template-columns: 7rem minmax(0, 1fr); gap: .5rem; font-size: var(--cms-type-xs); }
    .table-action { text-align: left; }
    .table-action a { display: inline-flex; min-height: 40px; align-items: center; font-weight: 750; }
    .cms-guest .cms-topbar { min-height: 3.6rem; }
    .cms-guest .cms-brand-mark { width: 2rem; height: 2rem; font-size: var(--cms-type-base); }
    .cms-guest .cms-brand strong { font-size: var(--cms-type-sm); }
    .cms-guest .cms-brand small { font-size: var(--cms-type-xs); }
    .cms-guest .cms-container { min-height: calc(100vh - 6.5rem); margin-block: .75rem; }
    .auth-panel h1 { font-size: var(--cms-type-lg); }
    .auth-panel > p { font-size: var(--cms-type-sm); }
}

@media (max-width: 30rem) {
    .cms-container { width: calc(100% - .9rem); }
    .cms-page-context strong { max-width: 8.5rem; }
    .page-heading { gap: .6rem; }
    .page-heading p:last-child { display: none; }
    .settings-media-selection { grid-template-columns: 1fr; }
    .settings-media-preview { height: auto; aspect-ratio: 16 / 7; }
    .settings-media-selection .secondary-action { grid-column: auto; }
    .settings-media-grid { grid-template-columns: repeat(2, minmax(0, 8rem)); }
    .dashboard-hero { min-height: 11.5rem; }
    .dashboard-hero-copy > p:not(.eyebrow) { display: none; }
    .hero-actions { margin-top: .8rem; }
    .module-list li { gap: .5rem; }
    .module-list li > div:first-child { max-width: 68%; }
    .dashboard-records li { grid-template-columns: minmax(0, 1fr) auto; }
    .dashboard-records .status { display: none; }
    .media-grid { gap: .45rem; }
    .media-preview { height: 6rem; }
    .activity-filters { grid-template-columns: 1fr; }
    .activity-filter-actions { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
