:root {
    --admin-wine: #64140a;
    --admin-wine-dark: #481007;
    --admin-ink: #252525;
    --admin-muted: #6b6b6b;
    --admin-line: #dedede;
    --admin-bg: #f4f3f1;
    --admin-paper: #ffffff;
    --admin-success: #2f6a42;
    --admin-warning: #986815;
    --admin-error: #992f2f;
    --admin-sidebar: 270px;
    --admin-radius: 8px;
    --admin-shadow: 0 12px 34px rgba(31, 28, 25, .08);
}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; font-family: var(--body, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); color: var(--admin-ink); background: var(--admin-bg); line-height: 1.5; }
a { color: var(--admin-wine); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
code { padding: .12rem .35rem; border-radius: var(--audience-control-radius, 4px); background: #eeeae6; color: #5e5852; font-size: .78rem; }

.auth-body, .install-body { min-height: 100vh; padding: 3rem 1rem; background: radial-gradient(circle at 15% 10%, #8f2c20 0, var(--admin-wine) 24%, #32100c 100%); }
.auth-body { display: grid; place-items: center; }
.auth-card { width: min(480px, 100%); padding: 3rem; border-radius: 14px; background: #fff; box-shadow: 0 25px 70px rgba(0,0,0,.28); }
.auth-card h1, .install-header h1 { margin: 0 0 1rem; font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3rem); font-weight: 400; color: var(--admin-wine); }
.auth-kicker, .admin-kicker { margin: 0 0 .4rem; color: var(--admin-wine); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.auth-intro { color: var(--admin-muted); margin-bottom: 2rem; }
.auth-form { display: grid; gap: 1.15rem; }
.auth-form .auth-checkbox { display: flex; align-items: flex-start; gap: .65rem; font-weight: 650; line-height: 1.35; }
.auth-form .auth-checkbox input { width: 1.15rem; min-height: 1.15rem; height: 1.15rem; margin-top: .08rem; padding: 0; flex: 0 0 auto; }
.checklist-field { border: 1px solid var(--admin-line); border-radius: 14px; padding: 1rem; }
.checklist-field legend { padding-inline: .35rem; font-weight: 800; }
.check-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: .65rem; }
.check-grid label { display: flex; align-items: center; gap: .5rem; }
.check-grid input { width: 1.1rem; min-height: 1.1rem; height: 1.1rem; }
.auth-form label, .account-form label { display: grid; gap: .4rem; font-size: .85rem; font-weight: 700; }
.auth-form input, .account-form input, .account-form select { width: 100%; min-height: 48px; border: 1px solid #cfcac5; border-radius: 6px; padding: .7rem .85rem; }
.auth-form input:focus, .account-form input:focus, .account-form select:focus { border-color: var(--admin-wine); outline: 3px solid rgba(100,20,10,.13); }
.auth-back { display: inline-block; margin-top: 1.5rem; color: var(--admin-muted); font-size: .85rem; text-decoration: none; }

.install-shell { width: min(980px, 100%); margin: 0 auto; }
.install-header { padding: 2.5rem 3rem; border-radius: 14px 14px 0 0; background: #fff; }
.install-header p:last-child { margin-bottom: 0; color: var(--admin-muted); }
.install-shell > .panel, .install-shell > .alert, .install-shell > form { border-radius: 0; margin: 0; border-top: 1px solid var(--admin-line); box-shadow: none; }
.install-shell > :last-child { border-radius: 0 0 14px 14px; }
.requirements-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.requirement { display: flex; gap: .65rem; align-items: center; padding: .75rem; border: 1px solid var(--admin-line); border-radius: 6px; font-size: .85rem; }
.requirement > span:first-child { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; font-weight: 800; }
.requirement.is-ok > span:first-child { background: var(--admin-success); }
.requirement.is-error > span:first-child { background: var(--admin-error); }
.install-form fieldset { margin: 0 0 2rem; padding: 0; border: 0; }
.install-form legend { margin-bottom: 1.15rem; color: var(--admin-wine); font-family: Georgia, serif; font-size: 1.45rem; }
.install-success { min-height: 320px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 40px; border: 1px solid transparent; border-radius: 6px; padding: .55rem .9rem; font-weight: 750; text-decoration: none; transition: background .15s ease, border-color .15s ease, transform .15s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--admin-wine); color: #fff; border-color: var(--admin-wine); }
.button-primary:hover { background: var(--admin-wine-dark); }
.button-secondary { background: #fff; color: var(--admin-wine); border-color: #c9b7b3; }
.button-secondary:hover { border-color: var(--admin-wine); }
.button-muted { background: #ebe9e7; color: #4b4845; border-color: #d4d0cc; }
.button-danger { background: #8e2020; color: #fff; border-color: #8e2020; }
.button-danger:hover { background: #6f1717; border-color: #6f1717; }
.button-large { min-height: 48px; padding-inline: 1.25rem; }
.button[disabled] { opacity: .5; cursor: not-allowed; transform: none; }
.button-row, .form-actions, .message-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }

.alert { margin: 0 0 1.25rem; padding: 1rem 1.15rem; border: 1px solid; border-radius: var(--audience-control-radius, 7px); }
.alert ul { margin-bottom: 0; }
.alert-error { color: #751e1e; border-color: #e7b2b2; background: #fff2f2; }
.alert-success { color: #235132; border-color: #b8d8c2; background: #eff9f2; }
.alert-warning { color: #68470d; border-color: #e2c890; background: #fff8e8; }
.alert-info { color: #344f68; border-color: #bdd1e0; background: #f0f7fc; }

.admin-body { min-height: 100vh; }
.admin-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; width: var(--admin-sidebar); display: flex; flex-direction: column; background: #24211f; color: #fff; overflow-y: auto; }
.admin-brand { display: grid; gap: .2rem; padding: 2rem 1.6rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.admin-brand > span { color: #d9a69b; font-size: .7rem; font-weight: 800; letter-spacing: .16em; }
.admin-brand strong { font-family: Georgia, serif; font-size: 1.25rem; }
.admin-brand small { color: #aaa39e; }
.admin-nav { display: grid; padding: 1rem .75rem; }
.admin-nav a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; min-height: 44px; padding: .65rem .85rem; border-radius: 6px; color: #d9d5d2; text-decoration: none; font-size: .9rem; }
.admin-nav a:hover { background: rgba(255,255,255,.07); color: #fff; }
.admin-nav a.active { background: var(--admin-wine); color: #fff; }
.nav-badge { display: inline-flex; min-width: 22px; height: 22px; align-items: center; justify-content: center; border-radius: var(--audience-control-radius, 11px); background: #fff; color: var(--admin-wine); font-size: .72rem; font-weight: 800; }
.nav-badge-warn { background: #f0bd57; color: #4a3100; }
.admin-sidebar-footer { margin-top: auto; padding: 1.3rem 1.6rem; border-top: 1px solid rgba(255,255,255,.1); color: #c0bab5; font-size: .8rem; }
.admin-sidebar-footer p { margin-top: 0; }
.sidebar-logout { border: 0; padding: 0; background: transparent; color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.admin-mobile-header { display: none; }
.admin-main { width: calc(100% - var(--admin-sidebar)); min-height: 100vh; margin-left: var(--admin-sidebar); padding: 2.5rem clamp(1.25rem, 3vw, 3.5rem) 5rem; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.admin-topbar h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3rem); font-weight: 400; color: var(--admin-ink); }

.panel { margin-bottom: 1.5rem; padding: 1.6rem; border: 1px solid #e3e0dd; border-radius: var(--admin-radius); background: var(--admin-paper); box-shadow: var(--admin-shadow); }
.panel h2 { color: var(--admin-ink); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.panel-heading h2 { margin: 0; font-family: Georgia, serif; font-size: 1.75rem; font-weight: 400; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.stat-card { display: grid; min-height: 150px; padding: 1.35rem; border: 1px solid #e3e0dd; border-radius: var(--admin-radius); background: #fff; color: var(--admin-ink); text-decoration: none; box-shadow: var(--admin-shadow); }
.stat-card > span { color: var(--admin-muted); font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.stat-card strong { align-self: center; color: var(--admin-wine); font-family: Georgia, serif; font-size: 2.65rem; font-weight: 400; }
.stat-card small { align-self: end; color: var(--admin-muted); }
.stat-card:hover { border-color: #b9a19c; }

.editor-layout { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.editor-stack { min-width: 0; }
.record-list { position: sticky; top: 1.25rem; max-height: calc(100vh - 2.5rem); overflow-y: auto; border: 1px solid #ddd9d5; border-radius: var(--admin-radius); background: #fff; box-shadow: var(--admin-shadow); }
.record-list > a { display: grid; min-width: 0; gap: .15rem; padding: .85rem 1rem; border-bottom: 1px solid #ece9e6; color: var(--admin-ink); text-decoration: none; }
.record-list > a:last-child { border-bottom: 0; }
.record-list > a:hover { background: #f8f5f3; }
.record-list > a.active { background: #f5e9e6; border-left: 4px solid var(--admin-wine); padding-left: calc(1rem - 4px); }
.record-list strong { min-width: 0; overflow-wrap: anywhere; font-size: .9rem; }
.record-list small { min-width: 0; overflow-wrap: anywhere; color: var(--admin-muted); font-size: .73rem; }
.record-list .record-new { color: var(--admin-wine); font-weight: 800; }
.editor-form { min-width: 0; }

.form-grid { display: grid; gap: 1rem; }
.form-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid label, .editor-label, .setting-field { display: grid; align-content: start; gap: .38rem; color: #4e4b48; font-size: .82rem; font-weight: 750; }
.form-grid input, .form-grid select, .form-grid textarea, .setting-field input, .setting-field textarea, .setting-field select { width: 100%; min-height: 42px; border: 1px solid #cbc6c1; border-radius: 5px; background: #fff; color: var(--admin-ink); padding: .62rem .72rem; }
.form-grid textarea, .setting-field textarea { resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus, .setting-field input:focus, .setting-field textarea:focus { outline: 3px solid rgba(100,20,10,.12); border-color: var(--admin-wine); }
.form-grid small, .setting-field small, .field-help { color: var(--admin-muted); font-size: .73rem; font-weight: 400; }
.span-two { grid-column: 1 / -1; }
.editor-label { margin-top: 1.25rem; }
.wysiwyg-shell { font-weight: 400; }
.wysiwyg-input { width: 100%; min-height: 180px; border: 1px solid #cbc6c1; padding: .75rem; }
.ql-toolbar.ql-snow { border-color: #cbc6c1 !important; border-radius: var(--audience-control-radius, 5px) var(--audience-control-radius, 5px) 0 0; background: #faf9f8; }
.ql-container.ql-snow { min-height: 200px; border-color: #cbc6c1 !important; border-radius: 0 0 var(--audience-control-radius, 5px) var(--audience-control-radius, 5px); background: #fff; font-size: 15px; }
.ql-editor { min-height: 200px; line-height: 1.6; }
.check-row { display: flex; flex-wrap: wrap; gap: 1.2rem; margin: 1.25rem 0; }
.check-row label, .switch-field { display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 700; }
.check-row input, .switch-field input { width: 18px; height: 18px; accent-color: var(--admin-wine); }
.form-actions { margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid var(--admin-line); }

.table-scroll { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .84rem; }
.admin-table th, .admin-table td { padding: .8rem .7rem; border-bottom: 1px solid #e9e6e3; text-align: left; vertical-align: top; }
.admin-table th { color: var(--admin-muted); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.admin-table a { font-weight: 750; }
.admin-table select, .admin-table input[type="number"] { width: 100%; min-height: 42px; border: 1px solid #cfcac5; border-radius: 6px; padding: .55rem .65rem; background: #fff; color: var(--admin-ink); }
.admin-table select:focus, .admin-table input[type="number"]:focus { border-color: var(--admin-wine); outline: 3px solid rgba(100,20,10,.13); }
.admin-table input[type="number"] { min-width: 7.5rem; }
.settings-form { padding-bottom: 5rem; }
.settings-group { margin-bottom: 1.25rem; }
.settings-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.setting-field > span:first-child { color: #4e4b48; }
.setting-field code { justify-self: start; font-weight: 400; }
.sticky-save { position: sticky; bottom: 1rem; z-index: 20; display: flex; justify-content: flex-end; padding: .8rem; border: 1px solid #d8d3cf; border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 10px 32px rgba(0,0,0,.15); backdrop-filter: blur(8px); }

.status-badge { display: inline-flex; align-items: center; min-height: 28px; padding: .25rem .65rem; border-radius: var(--audience-control-radius, 99px); background: #e9e7e4; color: #5b5754; font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.status-good, .status-read { background: #e3f2e8; color: #28583a; }
.status-warning, .status-new { background: #fff0cc; color: #73500b; }
.status-archived { background: #ececec; color: #555; }
.migration-list { display: grid; gap: .6rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.migration-list li { display: flex; gap: 1rem; padding: .9rem; border: 1px solid #e3dfdb; border-radius: var(--audience-control-radius, 6px); }
.migration-list strong { color: var(--admin-wine); }
.message-item.status-new { border-left: 4px solid #d69520; }
.message-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0 0 1.5rem; }
.message-meta div { padding: .85rem; background: #f7f5f3; }
.message-meta dt { color: var(--admin-muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.message-meta dd { min-width: 0; margin: .2rem 0 0; overflow-wrap: anywhere; }
.message-body { min-width: 0; min-height: 180px; padding: 1.4rem; border: 1px solid #e1ddda; background: #fff; overflow-wrap: anywhere; white-space: normal; }
.message-actions { margin-top: 1.25rem; }
.message-actions form { display: flex; flex-wrap: wrap; gap: .75rem; }
.empty-state { padding: 1rem; color: var(--admin-muted); }
.account-panel { max-width: 700px; }
.account-form { display: grid; gap: 1rem; max-width: 500px; }

.media-field { display: grid; gap: .55rem; padding: 1rem; border: 1px solid #d8d2cd; border-radius: 7px; background: #faf8f6; }
.media-field-label { color: #4e4b48; font-size: .82rem; font-weight: 800; }
.media-field-body { display: grid; grid-template-columns: minmax(180px, 260px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.media-field-preview { position: relative; width: 100%; aspect-ratio: 16 / 10; margin: 0; overflow: hidden; border: 1px solid #d4cfca; border-radius: var(--audience-control-radius, 6px); background: #e6e1dc; }
.media-field-preview img { width: 100%; height: 100%; object-fit: contain; display: block; }
.media-field-preview.is-placeholder img { object-fit: contain; padding: 1rem; opacity: .62; }
.media-field-controls { display: grid; min-width: 0; gap: .5rem; }
.media-field-controls p { margin: .15rem 0; color: var(--admin-muted); font-size: .78rem; font-weight: 400; }
.media-path-label { display: grid; gap: .3rem; color: #4e4b48; font-size: .76rem; font-weight: 750; }
.media-path-label input { width: 100%; min-height: 40px; border: 1px solid #cbc6c1; border-radius: var(--audience-control-radius, 5px); background: #efedeb; color: #615d59; padding: .58rem .68rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .74rem; }
.media-file-status { color: var(--admin-success); font-size: .74rem; font-weight: 700; }
.media-file-status.is-missing { color: var(--admin-error); }
.media-file-status.is-new { color: #7b5105; }

.media-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.5rem 0; }
.media-toolbar label, .media-search-label { display: grid; gap: .35rem; width: min(500px, 100%); color: #4e4b48; font-size: .78rem; font-weight: 750; }
.media-toolbar input, .media-search-label input { width: 100%; min-height: 42px; border: 1px solid #cbc6c1; border-radius: 5px; padding: .62rem .72rem; }
.media-toolbar > span { color: var(--admin-muted); font-size: .8rem; }
.media-library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.media-card { min-width: 0; overflow: hidden; border: 1px solid #ddd8d3; border-radius: 7px; background: #fff; }
.media-card figure { position: relative; width: 100%; aspect-ratio: 16 / 10; margin: 0; overflow: hidden; background: #e8e4e0; }
.media-card figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.media-card.is-busy { opacity: .62; }
.media-card-delete { position: absolute; right: .65rem; bottom: .65rem; z-index: 4; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(139, 35, 28, .38); border-radius: 50%; background: rgba(255, 250, 248, .96); color: #922d25; box-shadow: 0 5px 18px rgba(55, 25, 20, .2); cursor: pointer; }
.media-card figure.is-video .media-card-delete { bottom: 3.15rem; }
.media-card-delete svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.media-card-delete:hover { border-color: #922d25; background: #fff; color: #731d18; transform: translateY(-1px); }
.media-card-delete:focus-visible { outline: 3px solid rgba(146, 45, 37, .28); outline-offset: 3px; }
.media-card-delete:disabled { cursor: wait; opacity: .55; transform: none; }
.media-card-body { display: grid; min-width: 0; gap: .35rem; padding: .85rem; }
.media-card-body > strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .84rem; }
.media-card-body > small { color: var(--admin-muted); font-size: .7rem; overflow-wrap: anywhere; }
.media-card-body .media-usage.is-used { color: var(--admin-success); }
.media-card-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .4rem; }
.media-card-actions .button { min-height: 34px; padding: .38rem .58rem; font-size: .72rem; }
.media-empty { grid-column: 1 / -1; margin: 0; padding: 2rem; border: 1px dashed #d5cfca; border-radius: var(--audience-control-radius, 7px); color: var(--admin-muted); text-align: center; background: #faf9f8; }
.media-overview-status { min-height: 1.2rem; margin: -.55rem 0 .8rem; }

.media-dialog { width: min(1460px, calc(100vw - 28px)); max-width: none; height: min(900px, calc(100vh - 28px)); height: min(900px, calc(100dvh - 28px)); max-height: none; margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: 12px; background: #fff; color: var(--admin-ink); box-shadow: 0 28px 90px rgba(0,0,0,.34); }
.media-dialog::backdrop { background: rgba(25, 20, 18, .72); backdrop-filter: blur(3px); }
.media-dialog-shell { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.media-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.3rem 1.5rem .6rem; }
.media-dialog-header h2 { margin: 0; font-family: var(--heading, Georgia, serif); font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: var(--audience-heading-weight, 400); letter-spacing: var(--audience-heading-spacing, normal); }
.media-dialog-close { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border: 1px solid #cfc8c2; border-radius: var(--audience-control-radius, 50%); background: #fff; color: var(--admin-ink); font-size: 1.7rem; line-height: 1; }
.media-dialog-close:hover { border-color: var(--admin-wine); color: var(--admin-wine); }
.media-dialog-intro { margin: 0; padding: 0 1.5rem 1.1rem; color: var(--admin-muted); }
.media-dialog-content { display: grid; grid-template-columns: minmax(390px, .82fr) minmax(520px, 1.18fr); min-height: 0; flex: 1; border-top: 1px solid var(--admin-line); }
.media-dialog-library, .media-dialog-upload { min-width: 0; min-height: 0; padding: 1.25rem 1.4rem 1.5rem; overflow-y: auto; }
.media-dialog-library { border-right: 1px solid var(--admin-line); background: #f8f7f5; }
.media-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.media-section-heading h3 { margin: 0; font-family: var(--heading, Georgia, serif); font-size: 1.35rem; font-weight: var(--audience-heading-weight, 400); letter-spacing: var(--audience-heading-spacing, normal); }
.media-section-heading span { color: var(--admin-muted); font-size: .75rem; }
.media-library-grid-dialog { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1rem; }

.media-dropzone { position: relative; display: grid; place-items: center; min-height: 112px; padding: 1rem; border: 2px dashed #bba9a3; border-radius: 8px; background: #fbf7f5; color: var(--admin-wine); text-align: center; cursor: pointer; }
.media-dropzone strong { font-size: 1rem; }
.media-dropzone span { color: var(--admin-muted); font-size: .75rem; font-weight: 400; }
.media-dropzone input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.media-dropzone:focus-within, .media-dropzone.is-dragging { border-color: var(--admin-wine); outline: 3px solid rgba(100,20,10,.12); background: #f8ebe7; }
.media-dropzone.is-disabled { opacity: .5; cursor: not-allowed; }
.media-crop-workspace { display: grid; gap: .9rem; margin-top: 1rem; }
.media-crop-workspace[hidden] { display: none; }
.media-crop-stage { position: relative; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border: 0; border-radius: 7px; background: #302c29; box-shadow: inset 0 0 0 2px #2e2926; cursor: grab; touch-action: none; user-select: none; }
.media-crop-stage:focus { outline: 4px solid rgba(100,20,10,.22); outline-offset: 2px; }
.media-crop-stage.is-dragging { cursor: grabbing; }
.media-crop-stage canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.media-crop-grid { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(to right, transparent 33.2%, rgba(255,255,255,.58) 33.33%, rgba(255,255,255,.58) 33.55%, transparent 33.66%, transparent 66.2%, rgba(255,255,255,.58) 66.33%, rgba(255,255,255,.58) 66.55%, transparent 66.66%), linear-gradient(to bottom, transparent 33.2%, rgba(255,255,255,.58) 33.33%, rgba(255,255,255,.58) 33.55%, transparent 33.66%, transparent 66.2%, rgba(255,255,255,.58) 66.33%, rgba(255,255,255,.58) 66.55%, transparent 66.66%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.media-crop-help { margin: 0; color: var(--admin-muted); font-size: .76rem; }
.media-crop-controls { display: grid; grid-template-columns: 1.2fr 1fr; gap: .85rem; }
.media-crop-controls label, .media-alt-suggestion { display: grid; gap: .32rem; color: #4e4b48; font-size: .78rem; font-weight: 750; }
.media-crop-controls select, .media-alt-suggestion input { width: 100%; min-height: 42px; border: 1px solid #cbc6c1; border-radius: var(--audience-control-radius, 5px); padding: .58rem .68rem; background: #fff; }
.media-crop-controls input[type="range"] { width: 100%; accent-color: var(--admin-wine); }
.media-crop-controls output { color: var(--admin-muted); font-size: .72rem; }
.media-alt-suggestion small { color: var(--admin-muted); font-size: .7rem; font-weight: 400; }
.media-crop-buttons .button { min-height: 36px; padding: .4rem .65rem; font-size: .75rem; }
.media-upload-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; color: var(--admin-muted); font-size: .75rem; }
.media-upload-summary strong { min-width: 0; color: var(--admin-ink); overflow-wrap: anywhere; }
.media-status { min-height: 24px; padding: .55rem .7rem; border-radius: var(--audience-control-radius, 5px); color: var(--admin-muted); background: #f4f2f0; font-size: .78rem; }
.media-status:empty { display: none; }
.media-status.is-error { color: #751e1e; background: #fff0f0; }
.media-status.is-success { color: #235132; background: #edf8f0; }
.media-crop-workspace[aria-busy="true"] { opacity: .68; pointer-events: none; }

.admin-users-layout { display: grid; gap: 1.5rem; }
.admin-create-panel { max-width: 900px; }
.admin-create-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-create-form > label, .password-reset-details label { display: grid; gap: .35rem; color: #4e4b48; font-size: .8rem; font-weight: 750; }
.admin-create-form input, .password-reset-details input { width: 100%; min-height: 42px; border: 1px solid #cbc6c1; border-radius: 5px; padding: .62rem .72rem; }
.admin-create-form > label:first-of-type, .admin-create-form .button-row, .admin-create-form .generated-password, .admin-create-form .field-help { grid-column: 1 / -1; }
.generated-password { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem; border: 1px solid #c9d9cb; border-radius: var(--audience-control-radius, 6px); background: #f1f8f2; color: #20482e; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .8rem; overflow-wrap: anywhere; }
.generated-password[hidden] { display: none; }
.admin-users-table td:first-child strong { display: block; }
.admin-self-label { display: block; margin-top: .2rem; color: var(--admin-success); font-size: .68rem; font-weight: 750; }
.admin-user-actions { display: grid; justify-items: start; gap: .55rem; min-width: 230px; }
.admin-user-actions form { margin: 0; }
.password-reset-details { width: min(360px, 100%); }
.password-reset-details summary { color: var(--admin-wine); font-size: .78rem; font-weight: 750; cursor: pointer; }
.password-reset-details form { display: grid; gap: .7rem; margin-top: .65rem; padding: .85rem; border: 1px solid #ded9d5; border-radius: 6px; background: #faf9f8; }
.password-reset-details .generated-password { display: grid; gap: .5rem; }
.password-reset-details .generated-password[hidden] { display: none; }

@media (max-width: 1250px) {
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .editor-layout { grid-template-columns: 230px minmax(0, 1fr); }
    .media-dialog-content { grid-template-columns: minmax(330px, .75fr) minmax(470px, 1.25fr); }
}

@media (max-width: 980px) {
    .admin-mobile-header { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; min-height: 58px; padding: .6rem 1rem; background: #24211f; color: #fff; }
    .admin-mobile-header a { color: #fff; font-size: .78rem; }
    .admin-menu-button { border: 0; background: transparent; color: #fff; font-size: 1.4rem; }
    .admin-sidebar { top: 58px; visibility: hidden; transform: translateX(-105%); transition: transform .22s ease, visibility .22s; box-shadow: 14px 0 34px rgba(0,0,0,.28); }
    .admin-sidebar.is-open { visibility: visible; transform: translateX(0); }
    .admin-main { width: 100%; margin-left: 0; padding: 1.5rem 1rem 4rem; }
    .admin-topbar { align-items: flex-end; }
    .editor-layout { grid-template-columns: 1fr; }
    .record-list { position: static; max-height: 330px; }
    .media-dialog { width: calc(100vw - 18px); height: calc(100vh - 18px); height: calc(100dvh - 18px); }
    .media-dialog-content { grid-template-columns: 1fr; overflow-y: auto; }
    .media-dialog-library, .media-dialog-upload { overflow: visible; }
    .media-dialog-upload { order: 1; }
    .media-dialog-library { order: 2; border-top: 1px solid var(--admin-line); border-right: 0; }
    .media-library-grid-dialog { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
}

@media (max-width: 700px) {
    .auth-card { padding: 2rem 1.35rem; }
    .install-body { padding: 1rem .5rem; }
    .install-header, .panel, .install-form { padding: 1.25rem; }
    .requirements-grid, .form-grid-two, .settings-fields, .message-meta { grid-template-columns: 1fr; }
    .span-two { grid-column: auto; }
    .stats-grid { grid-template-columns: 1fr; }
    .admin-topbar { align-items: flex-start; flex-direction: column; }
    .panel-heading { align-items: flex-start; flex-direction: column; }
    .sticky-save { justify-content: stretch; }
    .sticky-save .button { width: 100%; }
    .message-actions form, .message-actions .button { width: 100%; }
    .media-field-body, .media-crop-controls, .admin-create-form { grid-template-columns: 1fr; }
    .admin-create-form > label:first-of-type, .admin-create-form .button-row, .admin-create-form .generated-password, .admin-create-form .field-help { grid-column: auto; }
    .media-field-preview { max-width: none; }
    .media-toolbar { align-items: stretch; flex-direction: column; }
    .media-library-grid, .media-library-grid-dialog { grid-template-columns: 1fr; }
    .media-dialog-header { padding: 1rem 1rem .5rem; }
    .media-dialog-intro { padding: 0 1rem .9rem; }
    .media-dialog-library, .media-dialog-upload { padding: 1rem; }
    .media-crop-buttons .button, .media-dialog-upload > .button { width: 100%; }
    .generated-password { align-items: stretch; flex-direction: column; }
}

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

/* V2 glass administration ------------------------------------------------- */
:root {
    --admin-wine: var(--theme-primary, #228b22);
    --admin-wine-dark: var(--theme-secondary, #0f3d2e);
    --admin-ink: var(--theme-text, #173023);
    --admin-muted: var(--theme-muted, #50665a);
    --admin-line: rgb(var(--glass-outline-rgb, 255 255 255) / var(--glass-outline-alpha, .55));
    --admin-bg: var(--theme-background-start, #f4faf5);
    --admin-paper: rgb(var(--glass-rgb, 255 255 255) / var(--glass-alpha, .7));
    --admin-success: #287b3a;
    --admin-radius: var(--glass-radius, 26px);
    --admin-shadow: 0 24px 64px rgb(var(--theme-secondary-rgb, 15 61 46) / var(--glass-shadow-alpha, .14));
    --admin-focus: rgb(var(--theme-primary-rgb, 34 139 34) / .2);
}

[hidden] { display: none !important; }
.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; clip-path: inset(50%) !important; border: 0 !important; white-space: nowrap !important; }

body {
    background:
        radial-gradient(circle at 12% 8%, rgb(var(--theme-accent-rgb, 135 201 141) / .42), transparent 32rem),
        radial-gradient(circle at 92% 18%, rgb(var(--theme-primary-rgb, 34 139 34) / .16), transparent 38rem),
        linear-gradient(145deg, var(--theme-background-start, #f4faf5), var(--theme-background-end, #dceee0));
    background-attachment: fixed;
}

.admin-body::before,
.admin-body::after,
.auth-body::before,
.auth-body::after {
    position: fixed;
    z-index: -1;
    width: min(42vw, 540px);
    aspect-ratio: 1;
    border-radius: 50%;
    content: "";
    filter: blur(10px);
    opacity: .34;
    pointer-events: none;
    animation: admin-ambient calc(18s + var(--motion-slow, 1.5s)) ease-in-out infinite alternate;
    animation-play-state: var(--ambient-play-state, running);
}
.admin-body::before, .auth-body::before { inset: 7vh auto auto 18vw; background: rgb(var(--theme-accent-rgb, 135 201 141) / .62); }
.admin-body::after, .auth-body::after { inset: auto 3vw 3vh auto; width: min(34vw, 430px); background: rgb(var(--theme-primary-rgb, 34 139 34) / .28); animation-delay: -7s; }
@keyframes admin-ambient { to { transform: translate3d(var(--ambient-shift, 10%), -5%, 0) scale(1.08); } }

.auth-body {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgb(var(--theme-secondary-rgb, 15 61 46) / .94), rgb(var(--theme-primary-rgb, 34 139 34) / .72)),
        linear-gradient(145deg, var(--theme-background-start, #f4faf5), var(--theme-background-end, #dceee0));
}
.auth-card {
    border: 1px solid var(--admin-line);
    border-radius: var(--admin-large-radius, max(20px, var(--glass-radius, 26px)));
    background: rgb(var(--glass-rgb, 255 255 255) / var(--glass-alpha-strong, .82));
    box-shadow: 0 36px 100px rgba(2, 25, 15, .34);
    -webkit-backdrop-filter: blur(var(--glass-blur, 22px));
    backdrop-filter: blur(var(--glass-blur, 22px));
    animation: admin-card-in var(--motion-medium, .55s) cubic-bezier(.2,.8,.2,1) both;
}
@keyframes admin-card-in { from { opacity: var(--reveal-start-opacity, 0); transform: translateY(var(--reveal-distance, 24px)) scale(.985); } }
.auth-card h1, .install-header h1 { color: var(--admin-wine-dark); font-family: var(--heading, Inter, ui-sans-serif, system-ui, sans-serif); font-weight: var(--audience-heading-weight, 720); letter-spacing: var(--audience-heading-spacing, -.035em); }
.auth-kicker, .admin-kicker { color: var(--admin-wine); }
.auth-form input, .account-form input, .account-form select,
.form-grid input, .form-grid select, .form-grid textarea,
.setting-field input, .setting-field textarea, .setting-field select,
.media-toolbar input, .media-search-label input,
.admin-create-form input, .password-reset-details input {
    border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .16);
    border-radius: var(--audience-control-radius, 12px);
    background: rgb(var(--theme-surface-rgb, 255 255 255) / .78);
    color: var(--admin-ink);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.66);
    transition: border-color var(--motion-fast, .2s), box-shadow var(--motion-fast, .2s), background var(--motion-fast, .2s);
}
.auth-form input:focus, .account-form input:focus, .account-form select:focus,
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus,
.setting-field input:focus, .setting-field textarea:focus,
.media-toolbar input:focus, .media-search-label input:focus,
.admin-create-form input:focus, .password-reset-details input:focus {
    border-color: var(--admin-wine);
    outline: 3px solid var(--admin-focus);
    background: rgb(var(--theme-surface-rgb, 255 255 255) / .96);
}

.admin-sidebar {
    border-right: 1px solid rgba(255,255,255,.16);
    background:
        linear-gradient(165deg, rgb(var(--theme-secondary-rgb, 15 61 46) / .95), rgb(var(--theme-secondary-rgb, 15 61 46) / .78)),
        rgb(var(--glass-rgb, 255 255 255) / .15);
    box-shadow: 18px 0 55px rgb(var(--theme-secondary-rgb, 15 61 46) / .16);
    -webkit-backdrop-filter: blur(var(--glass-blur, 22px));
    backdrop-filter: blur(var(--glass-blur, 22px));
}
.admin-brand { padding-block: 1.65rem; border-color: rgba(255,255,255,.14); }
.admin-brand > span { color: var(--theme-accent, #87c98d); }
.admin-brand strong { font-family: var(--heading, Inter, ui-sans-serif, system-ui, sans-serif); font-size: 1.18rem; letter-spacing: var(--audience-heading-spacing, -.02em); }
.admin-brand small, .admin-sidebar-footer { color: rgba(255,255,255,.68); }
.admin-nav { gap: .22rem; }
.admin-nav a { border: 1px solid transparent; border-radius: var(--audience-control-radius, 13px); color: rgba(255,255,255,.76); transition: transform var(--motion-fast, .2s), background var(--motion-fast, .2s), border-color var(--motion-fast, .2s); }
.admin-nav a:hover { transform: translateX(3px); border-color: rgba(255,255,255,.12); background: rgba(255,255,255,.09); }
.admin-nav a.active { border-color: rgba(255,255,255,.24); background: linear-gradient(135deg, rgb(var(--theme-primary-rgb, 34 139 34) / .88), rgb(var(--theme-accent-rgb, 135 201 141) / .35)); box-shadow: 0 10px 24px rgba(0,0,0,.16); }
.nav-badge { color: var(--admin-wine-dark); }

.admin-main { position: relative; }
.admin-topbar h1, .panel-heading h2 { font-family: var(--heading, Inter, ui-sans-serif, system-ui, sans-serif); font-weight: var(--audience-heading-weight, 720); letter-spacing: var(--audience-heading-spacing, -.035em); }
.panel,
.stat-card,
.record-list,
.sticky-save,
.media-field,
.media-card,
.message-body,
.password-reset-details form,
.consent-config-card {
    border-color: var(--admin-line);
    border-radius: var(--admin-radius);
    background: var(--admin-paper);
    box-shadow: var(--admin-shadow), inset 0 1px 0 rgba(255,255,255,.7);
    -webkit-backdrop-filter: blur(var(--glass-blur, 22px));
    backdrop-filter: blur(var(--glass-blur, 22px));
}
.panel, .stat-card { animation: admin-card-in var(--motion-medium, .55s) cubic-bezier(.2,.8,.2,1) both; }
.stat-card { border-radius: var(--admin-stat-radius, clamp(18px, var(--glass-radius, 26px), 32px)); transition: transform var(--motion-fast, .2s), box-shadow var(--motion-fast, .2s); }
.stat-card:hover { transform: translateY(-4px); border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .35); box-shadow: 0 28px 64px rgb(var(--theme-secondary-rgb, 15 61 46) / .2); }
.stat-card strong { color: var(--admin-wine); font-family: var(--heading, Inter, ui-sans-serif, system-ui, sans-serif); font-weight: var(--audience-heading-weight, 760); }
.record-list { overflow: hidden auto; }
.record-list > a { border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .1); }
.record-list > a:hover { background: rgb(var(--theme-accent-rgb, 135 201 141) / .13); }
.record-list > a.active { border-left-color: var(--admin-wine); background: rgb(var(--theme-primary-rgb, 34 139 34) / .12); }

.button { border-radius: var(--audience-control-radius, 999px); padding-inline: 1.05rem; transition: transform var(--motion-fast, .2s), box-shadow var(--motion-fast, .2s), background var(--motion-fast, .2s); }
.button-primary { border-color: transparent; background: linear-gradient(135deg, var(--admin-wine), var(--admin-wine-dark)); color: var(--theme-on-primary, #fff); box-shadow: 0 9px 22px rgb(var(--theme-primary-rgb, 34 139 34) / .24); }
.button-primary:hover { background: linear-gradient(135deg, var(--admin-wine-dark), var(--admin-wine)); box-shadow: 0 13px 30px rgb(var(--theme-primary-rgb, 34 139 34) / .32); }
.button-secondary { border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .3); background: rgb(var(--theme-surface-rgb, 255 255 255) / .68); color: var(--admin-wine-dark); }
.button-muted { border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .12); background: rgb(var(--theme-secondary-rgb, 15 61 46) / .08); color: var(--admin-ink); }
.button:focus-visible, .admin-nav a:focus-visible, .language-tabs button:focus-visible, .palette-option:focus-within, .audience-option:focus-within { outline: 3px solid var(--admin-focus); outline-offset: 2px; }
.sticky-save { background: rgb(var(--glass-rgb, 255 255 255) / var(--glass-alpha-strong,.84)); }

.language-tabs,
.media-upload-mode,
.preview-device-switch {
    display: inline-flex;
    gap: .25rem;
    margin: 0 0 1.25rem;
    padding: .28rem;
    border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .12);
    border-radius: var(--audience-control-radius, 999px);
    background: rgb(var(--theme-secondary-rgb, 15 61 46) / .07);
}
.language-tabs button,
.media-upload-mode button,
.preview-device-switch button {
    min-height: 38px;
    border: 0;
    border-radius: var(--audience-control-radius, 999px);
    padding: .48rem .85rem;
    background: transparent;
    color: var(--admin-muted);
    font-weight: 760;
}
.language-tabs button[aria-selected="true"],
.media-upload-mode button[aria-selected="true"],
.preview-device-switch button.active {
    background: rgb(var(--theme-surface-rgb, 255 255 255) / .94);
    color: var(--admin-wine-dark);
    box-shadow: 0 5px 16px rgb(var(--theme-secondary-rgb, 15 61 46) / .12);
}
.language-tabs.compact { margin-block: .8rem; }
.language-tabs.compact button { min-height: 32px; padding: .28rem .7rem; font-size: .74rem; }
.translation-note { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 1.1rem; padding: .8rem 1rem; border-radius: var(--audience-control-radius, 14px); background: rgb(var(--theme-accent-rgb, 135 201 141) / .14); color: var(--admin-muted); }

/* Accessible On/Off control. */
.toggle-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: .8rem; margin-block: 1rem; }
.toggle-control { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 66px; padding: .72rem .85rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .12); border-radius: var(--audience-control-radius, 16px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .5); }
.toggle-control.is-disabled { opacity: .72; }
.toggle-copy { display: grid; gap: .12rem; min-width: 0; }
.toggle-copy strong { font-size: .84rem; }
.toggle-copy small { color: var(--admin-muted); font-size: .7rem; font-weight: 450; }
.toggle-switch { position: relative; flex: 0 0 auto; width: 86px; height: 38px; }
.toggle-switch input { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.toggle-track { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr 1fr; align-items: center; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .18); border-radius: 999px; background: rgb(var(--theme-secondary-rgb, 15 61 46) / .16); color: var(--admin-muted); font-size: .64rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; transition: background var(--motion-fast,.2s), border-color var(--motion-fast,.2s); }
.toggle-track span { z-index: 1; text-align: center; }
.toggle-track i { position: absolute; top: 3px; left: 3px; width: 30px; height: 30px; border-radius: 50%; background: #fff; box-shadow: 0 3px 10px rgba(0,0,0,.2); transition: transform var(--motion-fast,.2s); }
.toggle-switch input:checked + .toggle-track { border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .42); background: linear-gradient(135deg, var(--admin-wine), var(--admin-wine-dark)); color: #fff; }
.toggle-switch input:checked + .toggle-track i { transform: translateX(48px); }
.toggle-switch input:focus-visible + .toggle-track { outline: 3px solid var(--admin-focus); outline-offset: 2px; }
.toggle-switch input:disabled { cursor: not-allowed; }

/* Appearance editor. */
.appearance-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(390px, 44%); gap: 1.5rem; align-items: start; padding-bottom: 5rem; }
.appearance-controls { min-width: 0; }
.appearance-preview-column { position: sticky; top: 1.25rem; min-width: 0; }
.appearance-layout > .sticky-save { grid-column: 1 / -1; }
.preview-panel iframe { display: block; width: 100%; min-height: 680px; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .16); border-radius: var(--audience-control-radius, 18px); background: #fff; transition: width var(--motion-medium,.55s); }
.preview-panel iframe.is-mobile { width: min(390px, 100%); margin-inline: auto; }
.preview-device-switch { margin: 0; }
.brand-live-preview { display: grid; gap: .55rem; margin-bottom: 1rem; padding: .9rem 1rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .12); border-radius: var(--audience-control-radius, 16px); background: linear-gradient(135deg, rgb(var(--theme-surface-rgb, 255 255 255) / .72), rgb(var(--theme-accent-rgb, 135 201 141) / .12)); overflow: hidden; }
.brand-live-preview > span { color: var(--admin-muted); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.brand-live-preview > div { display: flex; align-items: center; gap: .8rem; min-height: 96px; }
.brand-live-preview img { display: block; max-width: 100%; max-height: none; object-fit: contain; object-position: left center; }
.brand-live-preview strong { min-width: 0; color: var(--admin-wine-dark); font-size: clamp(1.1rem,2.2vw,1.65rem); letter-spacing: -.03em; overflow-wrap: anywhere; }
.audience-fieldset { margin: 0; padding: 0; border: 0; }
.audience-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .85rem; margin-top: 1rem; }
.audience-option { position: relative; display: grid; align-content: start; gap: .5rem; min-height: 190px; padding: 1rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .13); border-radius: var(--audience-control-radius, 16px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .5); cursor: pointer; transition: transform var(--motion-fast,.2s), border-color var(--motion-fast,.2s), box-shadow var(--motion-fast,.2s); }
.audience-option:hover { transform: translateY(-2px); border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .38); }
.audience-option input { position: absolute; opacity: 0; }
.audience-option:has(input:checked) { border-color: var(--admin-wine); box-shadow: 0 0 0 3px var(--admin-focus), var(--admin-shadow); }
.audience-option strong { color: var(--admin-wine-dark); font-size: .94rem; line-height: 1.3; }
.audience-option > span:not(.audience-swatches) { color: var(--admin-muted); font-size: .76rem; line-height: 1.45; }
.audience-option small { margin-top: auto; color: var(--admin-ink); font-size: .68rem; font-weight: 750; line-height: 1.45; }
.audience-swatches { display: flex; height: 42px; overflow: hidden; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .1); border-radius: var(--audience-control-radius, 11px); }
.audience-swatches i { flex: 1; background: var(--audience-primary); }
.audience-swatches i:nth-child(2) { background: var(--audience-background); }
.audience-swatches i:nth-child(3) { background: var(--audience-accent); }
.audience-status { margin: 1rem 0 0; color: var(--admin-wine-dark); font-size: .8rem; font-weight: 800; }
.palette-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); gap: .75rem; margin-bottom: 1.25rem; }
.palette-option { position: relative; display: grid; gap: .5rem; min-height: 90px; padding: .8rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .13); border-radius: var(--audience-control-radius, 16px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .5); cursor: pointer; }
.palette-option input { position: absolute; opacity: 0; }
.palette-option:has(input:checked) { border-color: var(--admin-wine); box-shadow: 0 0 0 3px var(--admin-focus); }
.palette-option strong { font-size: .76rem; }
.palette-swatches { display: flex; height: 34px; overflow: hidden; border-radius: var(--audience-control-radius, 10px); }
.palette-swatches i { flex: 1; background: var(--palette-primary); }
.palette-swatches i:nth-child(2) { background: var(--palette-background); }
.palette-swatches i:nth-child(3) { background: var(--palette-accent); }
.color-control-grid { margin-top: 1rem; }
.color-control { display: flex !important; align-items: center; justify-content: space-between; gap: .7rem; min-height: 58px; padding: .65rem .8rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .1); border-radius: var(--audience-control-radius, 14px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .45); }
.color-control > span:last-child { display: flex; align-items: center; gap: .5rem; }
.color-control input[type="color"] { width: 42px; min-height: 36px; padding: 2px; border-radius: var(--audience-control-radius, 10px); cursor: pointer; }
.color-control output { color: var(--admin-muted); font-family: ui-monospace, monospace; font-size: .7rem; }
.range-stack { display: grid; gap: .8rem; margin-top: 1rem; }
.branding-subsection { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--admin-line); }
.branding-subsection h3 { margin: 0 0 .35rem; color: var(--admin-wine-dark); font-size: 1rem; }
.branding-subsection .field-help { margin: 0; }
.logo-placement-grid { margin-top: .9rem; }
.conditional-media-field { display: contents; }
.conditional-media-field[hidden] { display: none; }
.range-control { display: grid; gap: .55rem; padding: .75rem .9rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .1); border-radius: var(--audience-control-radius, 14px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .45); }
.range-control > span { display: flex; justify-content: space-between; gap: 1rem; }
.range-control output { color: var(--admin-wine-dark); font-size: .78rem; font-weight: 800; }
.range-control input[type="range"] { width: 100%; accent-color: var(--admin-wine); }
.segmented-field { margin: 0; padding: 0; border: 0; }
.segmented-field legend { margin-bottom: .45rem; color: var(--admin-muted); font-size: .78rem; font-weight: 760; }
.segmented-control { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.segmented-control label { position: relative; }
.segmented-control input { position: absolute; opacity: 0; }
.segmented-control span { display: grid; place-items: center; min-height: 44px; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .15); border-radius: var(--audience-control-radius, 12px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .5); }
.segmented-control input:checked + span { border-color: var(--admin-wine); background: rgb(var(--theme-primary-rgb, 34 139 34) / .13); color: var(--admin-wine-dark); box-shadow: 0 0 0 2px var(--admin-focus); }
.language-publication-status { display: grid; gap: .25rem; margin-bottom: 1rem; padding: .85rem 1rem; border: 1px solid; border-radius: var(--audience-control-radius, 15px); }
.language-publication-status strong { font-size: .86rem; }
.language-publication-status span { font-size: .76rem; }
.language-publication-status.is-visible { border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .28); background: rgb(var(--theme-accent-rgb, 135 201 141) / .13); color: var(--admin-success); }
.language-publication-status.is-hidden { border-color: #e2c890; background: #fff8e8; color: #68470d; }

.design-transfer-panel { scroll-margin-top: 1.5rem; }
.design-transfer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.design-transfer-card { display: grid; align-content: start; gap: .75rem; min-width: 0; padding: 1rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .12); border-radius: var(--audience-control-radius, 16px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .5); }
.design-transfer-card > span { color: var(--admin-muted); font-size: .76rem; }
.design-transfer-card label { display: grid; gap: .4rem; color: var(--admin-muted); font-size: .76rem; font-weight: 750; }
.design-transfer-card input[type="file"] { width: 100%; min-height: 44px; padding: .5rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .16); border-radius: var(--audience-control-radius, 12px); background: #fff; }
.design-transfer-card .button { justify-self: start; }
.design-import-review { margin-top: 1.25rem; padding: 1rem; border: 1px solid rgb(var(--theme-primary-rgb, 34 139 34) / .28); border-radius: var(--audience-control-radius, 18px); background: rgb(var(--theme-accent-rgb, 135 201 141) / .09); }
.design-import-review .panel-heading h3 { margin: 0; color: var(--admin-ink); font-family: var(--heading, Georgia, serif); font-size: 1.45rem; font-weight: var(--audience-heading-weight, 400); letter-spacing: var(--audience-heading-spacing, normal); }
.design-diff-list { display: grid; gap: .45rem; max-height: 430px; margin-bottom: 1rem; padding-right: .25rem; overflow-y: auto; }
.design-diff-row { display: grid; grid-template-columns: minmax(150px, 1.4fr) minmax(90px, 1fr) auto minmax(90px, 1fr); align-items: center; gap: .65rem; padding: .65rem .75rem; border-radius: var(--audience-control-radius, 12px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .72); font-size: .76rem; }
.design-diff-row > span { display: inline-flex; min-width: 0; align-items: center; gap: .4rem; overflow-wrap: anywhere; }
.design-diff-row i { width: 19px; height: 19px; flex: 0 0 19px; border: 1px solid rgb(0 0 0 / .14); border-radius: var(--audience-control-radius, 50%); background: var(--diff-color); }
.design-diff-old { color: var(--admin-muted); text-decoration: line-through; text-decoration-thickness: 1px; }
.design-diff-new { color: var(--admin-wine-dark); font-weight: 800; }

/* FAQ, closure and consent previews. */
.faq-preview-panel details { border-block: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .14); }
.faq-preview-panel summary { position: relative; padding: 1.15rem 3rem 1.15rem 0; list-style: none; color: var(--admin-wine-dark); cursor: pointer; font-size: 1.05rem; }
.faq-preview-panel summary::-webkit-details-marker { display: none; }
.faq-preview-panel summary::after { position: absolute; top: 50%; right: .5rem; content: "+"; transform: translateY(-50%); font-size: 1.7rem; font-weight: 300; }
.faq-preview-panel details[open] summary::after { content: "−"; }
.faq-preview-panel details > div { padding: 0 0 1.2rem; }
.danger-zone { margin-block: 1rem 1.5rem; padding: 1rem; border: 1px solid rgba(153,47,47,.22); border-radius: var(--audience-control-radius, 16px); background: rgba(255,240,240,.66); }
.closure-preview-dialog, .consent-preview-dialog { width: min(720px, calc(100vw - 2rem)); max-width: none; padding: 0; border: 0; border-radius: var(--admin-radius); background: transparent; }
.closure-preview-dialog::backdrop, .consent-preview-dialog::backdrop { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.closure-preview-card, .consent-preview-card { position: relative; padding: clamp(1.5rem, 5vw, 3rem); border: 1px solid var(--admin-line); border-radius: var(--admin-radius); background: rgb(var(--glass-rgb, 255 255 255) / var(--glass-alpha-strong,.86)); box-shadow: 0 34px 100px rgb(var(--theme-secondary-rgb, 15 61 46) / .34); -webkit-backdrop-filter: blur(var(--glass-blur,22px)); backdrop-filter: blur(var(--glass-blur,22px)); }
.closure-preview-card .media-dialog-close, .consent-preview-card .media-dialog-close { position: absolute; top: 1rem; right: 1rem; }
.closure-preview-date { display: inline-flex; padding: .38rem .7rem; border-radius: var(--audience-control-radius, 999px); background: rgb(var(--theme-primary-rgb, 34 139 34) / .12); color: var(--admin-wine-dark); font-weight: 800; }
.consent-category-grid, .consent-service-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: 1rem; }
.consent-config-card { min-width: 0; padding: 1rem; }
.consent-config-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.consent-config-heading h3 { margin: .35rem 0 0; }
.consent-config-heading small { display: block; color: var(--admin-muted); }
.consent-config-heading .toggle-control { min-width: 190px; }
.consent-translation-fields { display: grid; gap: .75rem; }
.consent-translation-fields label, .consent-sort-field { display: grid; gap: .32rem; color: var(--admin-muted); font-size: .78rem; font-weight: 750; }
.consent-translation-fields input, .consent-translation-fields textarea, .consent-sort-field input { width: 100%; min-height: 42px; padding: .62rem .72rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .16); border-radius: var(--audience-control-radius, 12px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .7); color: var(--admin-ink); }
.consent-sort-field { margin-top: .75rem; }
.consent-preview-categories { display: grid; gap: .5rem; margin-block: 1.2rem; }
.consent-preview-categories > div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .8rem; border-radius: var(--audience-control-radius, 12px); background: rgb(var(--theme-secondary-rgb, 15 61 46) / .07); }
.consent-preview-card .button-primary, .consent-preview-card .button-muted { flex: 1 1 180px; }

/* Media v2. */
.media-field-preview img, .media-field-preview video,
.media-card figure img, .media-card figure video { display: block; width: 100%; height: 100%; object-fit: contain; }
.media-dialog { border: 1px solid var(--admin-line); border-radius: var(--admin-radius); background: rgb(var(--glass-rgb, 255 255 255) / var(--glass-alpha-strong,.88)); color: var(--admin-ink); -webkit-backdrop-filter: blur(var(--glass-blur,22px)); backdrop-filter: blur(var(--glass-blur,22px)); }
.media-dialog::backdrop { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .64); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
.media-dialog-library { border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .12); background: rgb(var(--theme-background-start-rgb, 244 250 245) / .56); }
.media-dialog-content { border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .12); }
.media-dialog-close { border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .16); background: rgb(var(--theme-surface-rgb, 255 255 255) / .7); color: var(--admin-ink); }
.media-dropzone { border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .42); border-radius: var(--audience-control-radius, 18px); background: rgb(var(--theme-accent-rgb, 135 201 141) / .1); color: var(--admin-wine-dark); }
.media-upload-mode { margin-bottom: 1rem; }
.media-video-preview { display: block; width: 100%; max-height: 390px; margin-top: 1rem; border-radius: var(--audience-control-radius, 18px); background: #10241a; }
.media-status.is-warning { color: #68470d; background: #fff8e8; }
.media-card figure video { background: #10241a; }
.media-crop-stage { border-radius: var(--audience-control-radius, 18px); }

/* Lokale 2FA-Einrichtung: Der eigentliche QR-Code bleibt bewusst schwarz auf
   reinweißem Grund, damit Glassmorph- und Zielgruppenfarben die Lesbarkeit
   durch Authenticator-Kameras nicht beeinträchtigen. */
.totp-setup-layout {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    margin-block: 1rem 1.4rem;
}
.totp-qr-card,
.totp-manual-card {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .14);
    border-radius: var(--audience-control-radius, 18px);
    background: rgb(var(--theme-surface-rgb, 255 255 255) / .62);
}
.totp-qr-card h4,
.totp-manual-card h4 { margin: 0 0 .75rem; color: var(--admin-wine-dark); font-size: 1rem; }
.totp-qr-frame {
    display: grid;
    place-items: center;
    width: min(100%, 320px);
    min-height: 250px;
    margin-inline: auto;
    padding: .75rem;
    border: 1px solid #d8d8d8;
    border-radius: 14px;
    background: #fff;
    color: #242424;
    text-align: center;
}
.totp-qr-frame canvas {
    display: block;
    width: 100%;
    height: auto;
    max-width: 296px;
    aspect-ratio: 1;
    image-rendering: pixelated;
}
.totp-qr-frame canvas[hidden],
.totp-qr-frame [hidden] { display: none; }
.totp-qr-frame p { margin: 0; font-size: .78rem; }
.totp-account-details { display: grid; gap: .35rem; margin: .8rem 0; }
.totp-account-details > div { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: .55rem; }
.totp-account-details dt { color: var(--admin-muted); font-size: .72rem; font-weight: 750; }
.totp-account-details dd { margin: 0; overflow-wrap: anywhere; font-size: .78rem; font-weight: 750; }
.totp-manual-card > label { display: block; margin-bottom: .35rem; color: var(--admin-muted); font-size: .78rem; font-weight: 750; }
.totp-secret-copy-row { display: flex; align-items: stretch; gap: .55rem; }
.totp-secret-copy-row .totp-setup-secret {
    min-width: 0;
    flex: 1 1 260px;
    padding: .72rem .8rem;
    border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .18);
    border-radius: var(--audience-control-radius, 12px);
    background: #fff;
    color: #14231b;
    font: 750 .88rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
}
.totp-copy-status { min-height: 1.25rem; margin: .35rem 0 0; color: var(--admin-success); font-size: .75rem; font-weight: 750; }
.totp-copy-status.is-error { color: var(--admin-error); }

@media (max-width: 1250px) {
    .appearance-layout { grid-template-columns: 1fr; }
    .appearance-preview-column { position: static; }
    .preview-panel iframe { min-height: 600px; }
}

@media (max-width: 980px) {
    .admin-mobile-header { border-bottom: 1px solid rgba(255,255,255,.16); background: rgb(var(--theme-secondary-rgb, 15 61 46) / .92); -webkit-backdrop-filter: blur(var(--glass-blur,22px)); backdrop-filter: blur(var(--glass-blur,22px)); }
    .admin-sidebar { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .96); }
}

@media (max-width: 700px) {
    .panel { padding: 1.15rem; }
    .toggle-grid, .consent-category-grid, .consent-service-grid { grid-template-columns: 1fr; }
    .toggle-control { align-items: flex-start; }
    .consent-config-heading { display: grid; }
    .consent-config-heading .toggle-control { min-width: 0; }
    .segmented-control { grid-template-columns: 1fr; }
    .translation-note { display: grid; }
    .preview-panel iframe { min-height: 560px; }
    .design-transfer-grid { grid-template-columns: 1fr; }
    .design-diff-row { grid-template-columns: 1fr auto 1fr; }
    .design-diff-row > strong { grid-column: 1 / -1; }
    .totp-setup-layout { grid-template-columns: 1fr; }
    .totp-secret-copy-row { display: grid; }
    .totp-secret-copy-row .button { width: 100%; }
}

@media print {
    body.totp-print-mode { background: #fff !important; }
    body.totp-print-mode * { visibility: hidden !important; }
    body.totp-print-mode .totp-print-sheet,
    body.totp-print-mode .totp-print-sheet * { visibility: visible !important; }
    body.totp-print-mode .totp-print-sheet {
        position: absolute;
        inset: 0 auto auto 0;
        display: grid;
        width: 100%;
        grid-template-columns: 340px minmax(0, 1fr);
        padding: 12mm;
        background: #fff !important;
        color: #111 !important;
    }
    body.totp-print-mode .totp-qr-card,
    body.totp-print-mode .totp-manual-card { border: 1px solid #aaa; background: #fff !important; box-shadow: none !important; }
    body.totp-print-mode .totp-no-print { display: none !important; }
    body.totp-print-mode .totp-setup-secret { border-color: #777; color: #111; }
}

@media (prefers-reduced-motion: reduce) {
    .admin-body::before, .admin-body::after, .auth-body::before, .auth-body::after,
    .panel, .stat-card, .auth-card { animation: none !important; }
}

/* Grouped administration navigation and universal search ---------------- */
.admin-search-compact { position: relative; z-index: 3; padding: .85rem .75rem .35rem; }
.admin-search-input-shell { position: relative; display: flex; align-items: center; min-height: 46px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--audience-control-radius, 14px); background: rgba(255,255,255,.1); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); transition: border-color var(--motion-fast,.2s), background var(--motion-fast,.2s), box-shadow var(--motion-fast,.2s); }
.admin-search-input-shell:focus-within { border-color: rgba(255,255,255,.52); background: rgba(255,255,255,.16); box-shadow: 0 0 0 3px rgba(255,255,255,.09), inset 0 1px 0 rgba(255,255,255,.1); }
.admin-search-icon { flex: 0 0 auto; padding-left: .78rem; color: rgba(255,255,255,.72); font-size: 1.25rem; line-height: 1; }
.admin-search-input-shell input { min-width: 0; width: 100%; min-height: 44px; border: 0; outline: 0; padding: .55rem .25rem .55rem .55rem; background: transparent; color: #fff; font-size: .78rem; }
.admin-search-input-shell input::-webkit-search-cancel-button { display: none; }
.admin-search-input-shell input::placeholder { color: rgba(255,255,255,.58); opacity: 1; }
.admin-search-clear, .admin-search-expand, .admin-search-dialog-close { flex: 0 0 auto; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: inherit; font-weight: 800; line-height: 1; }
.admin-search-clear:hover, .admin-search-expand:hover { background: rgba(255,255,255,.12); }
.admin-search-expand { margin-right: .25rem; color: rgba(255,255,255,.78); }
.admin-search-clear { color: rgba(255,255,255,.68); }
.admin-search-locked { margin: .9rem .75rem .3rem; padding: .75rem; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; color: rgba(255,255,255,.7); font-size: .72rem; }

.admin-nav { gap: .12rem; padding-top: .55rem; }
.admin-nav-primary { display: grid; gap: .15rem; margin-bottom: .35rem; padding-bottom: .45rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.admin-nav-group { margin: .05rem 0; }
.admin-nav-group > summary { display: flex; align-items: center; justify-content: space-between; min-height: 44px; border-radius: var(--audience-control-radius, 12px); padding: .55rem .82rem; color: rgba(255,255,255,.58); font-size: .67rem; font-weight: 850; letter-spacing: .1em; list-style: none; text-transform: uppercase; cursor: pointer; }
.admin-nav-group > summary::-webkit-details-marker { display: none; }
.admin-nav-group > summary:hover { background: rgba(255,255,255,.06); color: rgba(255,255,255,.88); }
.admin-nav-group > summary:focus-visible { outline: 3px solid rgba(255,255,255,.2); outline-offset: -2px; }
.admin-nav-group > summary i { width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translate(-2px,-2px); transition: transform var(--motion-fast,.2s); }
.admin-nav-group[open] > summary i { transform: rotate(225deg) translate(-1px,-1px); }
.admin-nav-group-links { display: grid; gap: .12rem; padding-bottom: .28rem; animation: admin-nav-reveal var(--motion-fast,.2s) ease both; }
.admin-nav-group-links a { padding-left: 1rem; font-size: .82rem; }
@keyframes admin-nav-reveal { from { opacity: 0; transform: translateY(-4px); } }

.admin-search-results { overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.admin-search-results-compact { position: absolute; z-index: 8; top: calc(100% + .15rem); right: .45rem; left: .45rem; max-height: min(58vh, 480px); border: 1px solid rgba(255,255,255,.19); border-radius: 16px; padding: .35rem; background: rgb(var(--theme-secondary-rgb, 15 61 46) / .98); box-shadow: 0 22px 55px rgba(0,0,0,.32); -webkit-backdrop-filter: blur(22px); backdrop-filter: blur(22px); }
.admin-search-result { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .08rem .6rem; min-height: 66px; border: 1px solid transparent; border-radius: var(--audience-control-radius, 13px); padding: .62rem 2.15rem .62rem .72rem; color: var(--admin-ink); text-decoration: none; transition: border-color var(--motion-fast,.2s), background var(--motion-fast,.2s), transform var(--motion-fast,.2s); }
.admin-search-result-route { grid-column: 1; color: var(--admin-muted); font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.admin-search-result strong { grid-column: 1; min-width: 0; overflow-wrap: anywhere; font-size: .88rem; }
.admin-search-result-description { grid-column: 1; min-width: 0; color: var(--admin-muted); font-size: .73rem; overflow-wrap: anywhere; }
.admin-search-result-arrow { position: absolute; right: .72rem; top: 50%; color: var(--admin-wine); font-size: 1.1rem; transform: translateY(-50%); }
.admin-search-result:hover, .admin-search-result.is-active, .admin-search-result[aria-selected="true"] { border-color: rgb(var(--theme-primary-rgb, 34 139 34) / .24); background: rgb(var(--theme-accent-rgb, 135 201 141) / .13); transform: translateX(2px); }
.admin-search-results-compact .admin-search-result { color: #fff; }
.admin-search-results-compact .admin-search-result-route, .admin-search-results-compact .admin-search-result-description { color: rgba(255,255,255,.62); }
.admin-search-results-compact .admin-search-result-arrow { color: var(--theme-accent, #87c98d); }
.admin-search-results-compact .admin-search-result:hover, .admin-search-results-compact .admin-search-result.is-active { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.1); }
.admin-search-empty { margin: 0; padding: 1rem; color: var(--admin-muted); font-size: .82rem; line-height: 1.5; text-align: center; }
.admin-search-results-compact .admin-search-empty { color: rgba(255,255,255,.76); }

.admin-search-dialog { width: min(1280px, calc(100vw - 2rem)); height: min(900px, calc(100dvh - 2rem)); max-width: none; max-height: none; border: 1px solid var(--admin-line); border-radius: var(--admin-radius); padding: 0; overflow: hidden; color: var(--admin-ink); background: rgb(var(--glass-rgb, 255 255 255) / .94); box-shadow: 0 42px 120px rgba(0,20,12,.38); -webkit-backdrop-filter: blur(var(--glass-blur, 22px)); backdrop-filter: blur(var(--glass-blur, 22px)); }
.admin-search-dialog[open] { animation: admin-search-dialog-in var(--motion-medium,.35s) cubic-bezier(.2,.8,.2,1) both; }
.admin-search-dialog::backdrop { background: rgba(7,22,14,.62); -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px); }
@keyframes admin-search-dialog-in { from { opacity: 0; transform: translateY(18px) scale(.985); } }
.admin-search-dialog-shell { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); height: 100%; padding: clamp(1rem,3vw,2rem); }
.admin-search-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.admin-search-dialog-header h2 { margin: 0; font-family: var(--heading, Inter, sans-serif); font-size: clamp(1.65rem,3vw,2.5rem); }
.admin-search-dialog-close { width: 44px; height: 44px; color: var(--admin-muted); font-size: 1.7rem; }
.admin-search-dialog-close:hover { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .08); color: var(--admin-ink); }
.admin-search-dialog-field { display: flex; align-items: center; min-height: 62px; margin-top: 1.35rem; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .2); border-radius: var(--audience-control-radius, 18px); background: rgb(var(--theme-surface-rgb, 255 255 255) / .82); box-shadow: 0 14px 40px rgb(var(--theme-secondary-rgb, 15 61 46) / .08); }
.admin-search-dialog-field:focus-within { border-color: var(--admin-wine); box-shadow: 0 0 0 4px var(--admin-focus), 0 14px 40px rgb(var(--theme-secondary-rgb, 15 61 46) / .1); }
.admin-search-dialog-field > span[aria-hidden] { padding-left: 1rem; color: var(--admin-wine); font-size: 1.65rem; }
.admin-search-dialog-field input { min-width: 0; width: 100%; min-height: 60px; border: 0; outline: 0; padding: .75rem; background: transparent; color: var(--admin-ink); font-size: clamp(1rem,2vw,1.25rem); }
.admin-search-dialog-field .admin-search-clear { margin-right: .65rem; color: var(--admin-muted); }
.admin-search-dialog-field .admin-search-clear:hover { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .08); }
.admin-search-dialog-meta, .admin-details-search-meta { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem .2rem; color: var(--admin-muted); font-size: .72rem; }
kbd { display: inline-grid; place-items: center; min-width: 22px; min-height: 22px; border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .16); border-radius: 6px; padding: 0 .3rem; background: rgb(var(--theme-surface-rgb, 255 255 255) / .7); box-shadow: 0 1px 1px rgba(0,0,0,.06); font: inherit; font-weight: 750; }
.admin-search-results-dialog { min-height: 0; padding: .25rem; }
.admin-search-results-dialog .admin-search-result { min-height: 74px; border-bottom-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .08); border-radius: 12px; }

.admin-overview-search-slot { min-width: 0; margin-bottom: 1.5rem; }
.admin-details-search-card { border: 1px solid var(--admin-line); border-radius: var(--admin-radius); padding: clamp(1rem,2vw,1.45rem); background: var(--admin-paper); box-shadow: var(--admin-shadow), inset 0 1px 0 rgba(255,255,255,.7); -webkit-backdrop-filter: blur(var(--glass-blur, 22px)); backdrop-filter: blur(var(--glass-blur, 22px)); }
.admin-details-search-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.admin-details-search-header h2 { margin: 0; font-family: var(--heading, Inter, sans-serif); font-size: 1.5rem; }
.admin-details-search-header p:last-child { margin: .25rem 0 0; color: var(--admin-muted); font-size: .8rem; }
.admin-details-search-input-shell { margin-top: 1rem; border-color: rgb(var(--theme-secondary-rgb, 15 61 46) / .18); background: rgb(var(--theme-surface-rgb, 255 255 255) / .66); }
.admin-details-search-input-shell:focus-within { border-color: var(--admin-wine); background: rgb(var(--theme-surface-rgb, 255 255 255) / .94); box-shadow: 0 0 0 3px var(--admin-focus); }
.admin-details-search-input-shell .admin-search-icon { color: var(--admin-wine); }
.admin-details-search-input-shell input { color: var(--admin-ink); font-size: .9rem; }
.admin-details-search-input-shell input::placeholder { color: var(--admin-muted); }
.admin-details-search-input-shell .admin-search-clear { margin-right: .3rem; color: var(--admin-muted); }
.admin-details-search-input-shell .admin-search-clear:hover { background: rgb(var(--theme-secondary-rgb, 15 61 46) / .08); }
.admin-search-results-detail { max-height: 430px; border-top: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .09); padding-top: .35rem; }
.admin-search-results-detail .admin-search-result { min-height: 70px; }

.admin-search-anchor { position: relative; display: block; height: 0; scroll-margin-top: 2rem; }
[id] { scroll-margin-top: 1.5rem; }
.admin-search-target { animation: admin-search-target 2.35s ease both; }
@keyframes admin-search-target { 0%, 100% { outline: 0 solid transparent; } 18%, 72% { outline: 4px solid rgb(var(--theme-primary-rgb, 34 139 34) / .28); outline-offset: 5px; } }
.quality-find-target {
    position: relative;
    z-index: 2;
    border-radius: var(--audience-control-radius, 12px);
    animation: quality-find-target 2.7s ease-out both;
}
@keyframes quality-find-target {
    0%, 100% { outline: 0 solid rgba(198, 31, 31, 0); outline-offset: 9px; box-shadow: 0 0 0 0 rgba(198, 31, 31, 0); }
    12%, 34%, 56% { outline: 4px solid #d51f1f; outline-offset: 5px; box-shadow: 0 0 0 7px rgba(213, 31, 31, .13); }
    23%, 45%, 72% { outline: 2px solid rgba(213, 31, 31, .5); outline-offset: 3px; box-shadow: 0 0 0 3px rgba(213, 31, 31, .08); }
}
.admin-sidebar-backdrop { display: none; }

@media (max-width: 980px) {
    body.admin-menu-is-open { overflow: hidden; }
    .admin-sidebar-backdrop:not([hidden]) { position: fixed; inset: 58px 0 0; z-index: 45; display: block; width: 100%; height: calc(100dvh - 58px); border: 0; padding: 0; background: rgba(7,22,14,.48); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
    .admin-sidebar { width: min(88vw, 340px); }
}

@media (max-width: 700px) {
    .admin-search-dialog { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
    .admin-search-dialog-shell { padding: 1rem; }
    .admin-search-dialog-header h2 { font-size: 1.45rem; }
    .admin-search-dialog-field { min-height: 54px; margin-top: .9rem; }
    .admin-search-dialog-field input { min-height: 52px; font-size: 1rem; }
    .admin-search-dialog-meta { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .admin-search-results-dialog .admin-search-result { min-height: 78px; }
    .admin-details-search-header { align-items: stretch; flex-direction: column; }
    .admin-details-search-header .button { width: 100%; }
    .admin-details-search-meta > span:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .admin-nav-group-links, .admin-search-dialog[open], .admin-search-target { animation: none !important; }
    .quality-find-target { animation: none !important; outline: 4px solid #d51f1f; outline-offset: 5px; box-shadow: 0 0 0 7px rgba(213, 31, 31, .13); }
    .admin-nav-group > summary i, .admin-search-result { transition: none !important; }
}

/* Integrated ESG presentation editor and exact frontend preview ---------- */
.sustainability-presentation-panel > p { max-width: 92ch; }
.sustainability-presentation-form { margin-top: 1.2rem; }
.sustainability-presentation-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: 1.25rem;
    align-items: start;
}
.sustainability-presentation-controls { min-width: 0; }
.sustainability-presentation-controls .language-tabs { margin-top: 1.15rem; }
.sustainability-presentation-preview {
    position: sticky;
    top: 1rem;
    min-width: 0;
    border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .13);
    border-radius: var(--audience-control-radius, 18px);
    padding: 1rem;
    background: rgb(var(--theme-surface-rgb, 255 255 255) / .48);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
.sustainability-preview-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .8rem;
}
.sustainability-preview-heading h3 { margin: .15rem 0 0; font-size: 1.05rem; }
.sustainability-presentation-preview iframe {
    display: block;
    width: 100%;
    min-height: 570px;
    border: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .16);
    border-radius: var(--audience-control-radius, 15px);
    background: #fff;
    transition: width var(--motion-medium,.55s);
}
.sustainability-presentation-preview iframe.is-mobile { width: min(390px, 100%); margin-inline: auto; }
.sustainability-presentation-preview .field-help { margin: .75rem 0 0; }
.sustainability-restore-form {
    display: flex;
    justify-content: flex-start;
    margin-top: 1.15rem;
    border-top: 1px solid rgb(var(--theme-secondary-rgb, 15 61 46) / .1);
    padding-top: 1rem;
}

@media (max-width: 1280px) {
    .sustainability-presentation-grid { grid-template-columns: 1fr; }
    .sustainability-presentation-preview { position: static; }
}

@media (max-width: 700px) {
    .sustainability-preview-heading { flex-direction: column; }
    .sustainability-presentation-preview { padding: .75rem; }
    .sustainability-presentation-preview iframe { min-height: 500px; }
    .sustainability-restore-form .button { width: 100%; }
}

/* Administration menu icons (Bootstrap Icons v1.13.1) ------------------ */
.admin-nav-link-main {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: .68rem;
    min-width: 0;
}
.admin-nav-icon {
    display: block;
    flex: 0 0 1.125rem;
    width: 1.125rem;
    height: 1.125rem;
    fill: currentColor;
    opacity: .8;
    pointer-events: none;
}
.admin-nav-label {
    min-width: 0;
    overflow-wrap: anywhere;
}
.admin-nav a:hover .admin-nav-icon,
.admin-nav a:focus-visible .admin-nav-icon,
.admin-nav a.active .admin-nav-icon { opacity: 1; }
