.admin-shell {
    display: grid;
    grid-template-columns: 15rem minmax(0, 1fr);
    min-height: 100vh;
    background: var(--qrip-bg);
    color: var(--ink);
}
.admin-sidebar {
    position: sticky;
    top: 0;
    display: flex;
    height: 100vh;
    flex-direction: column;
    padding: 1.25rem .9rem;
    background: var(--ink);
    color: #f5f8f7;
}
.admin-brand { display: flex; align-items: center; gap: .7rem; color: inherit; text-decoration: none; }
.admin-brand-mark { font-size: 1.2rem; font-weight: 950; }
.admin-brand-label { border-left: 1px solid #82918e; padding-left: .7rem; font-size: .9rem; font-weight: 750; }
.admin-shell .admin-navigation { display: grid; gap: .35rem; border: 0; margin: 1.8rem 0 1rem; padding: 0; }
.admin-shell .admin-navigation a { justify-content: flex-start; color: #e2eae8; }
.admin-shell .admin-navigation a:hover { background: #354548; }
.admin-shell .admin-navigation a[aria-current="page"] { background: #435657; color: #fff; }
.admin-sidebar-account { display: grid; gap: .8rem; border-top: 1px solid #53615f; margin-top: auto; padding-top: 1rem; }
.admin-identity { min-width: 0; display: grid; gap: .2rem; }
.admin-identity span { color: #c0cecb; font-size: .76rem; }
.admin-identity strong { overflow-wrap: anywhere; font-size: .9rem; }
.admin-signout-form button { width: 100%; min-height: 2.65rem; border: 1px solid #73817f; border-radius: 7px; padding: .55rem .7rem; background: transparent; color: #fff; font: inherit; font-weight: 780; cursor: pointer; }
.admin-signout-form button:hover { background: #354548; }
.admin-main { min-width: 0; }

.admin-page {
    --admin-bg: var(--qrip-bg);
    --admin-surface: #fff;
    --admin-surface-raised: #fff;
    --admin-text: var(--ink);
    --admin-muted: var(--muted);
    --admin-border: var(--qrip-border);
    --admin-focus: var(--qrip-focus);
    width: min(100% - 2rem, 76rem);
    min-height: 70vh;
    margin: 0 auto;
    padding: 2rem 0 4rem;
    color: var(--admin-text);
}

.admin-page *, .admin-page *::before, .admin-page *::after { box-sizing: border-box; }
.admin-page h1, .admin-page h2, .admin-page h3, .admin-page p { overflow-wrap: anywhere; }
.admin-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.3rem; }
.admin-heading h1 { margin: 0; font-size: 2.2rem; line-height: 1.1; }
.admin-heading p:not(.admin-eyebrow) { margin: .45rem 0 0; color: var(--admin-muted); }
.admin-eyebrow { margin: 0 0 .35rem; color: var(--qrip-brand); font-size: .75rem; font-weight: 850; letter-spacing: .06rem; text-transform: uppercase; }
.admin-navigation { display: flex; flex-wrap: wrap; gap: .4rem; border-bottom: 1px solid var(--admin-border); margin-bottom: 1.5rem; padding-bottom: .65rem; }
.admin-navigation a { min-height: 2.8rem; display: inline-flex; align-items: center; border-radius: 7px; padding: .55rem .9rem; color: var(--admin-text); font-weight: 760; text-decoration: none; }
.admin-navigation a:hover { background: color-mix(in srgb, var(--qrip-brand) 9%, var(--admin-surface)); }
.admin-navigation a[aria-current="page"] { background: color-mix(in srgb, var(--qrip-brand) 14%, var(--admin-surface)); color: var(--qrip-brand-hover); }
.admin-navigation a:focus-visible,
.admin-button:focus-visible,
.admin-contact-link:focus-visible,
.admin-pagination a:focus-visible { outline: 3px solid color-mix(in srgb, var(--admin-focus) 45%, transparent); outline-offset: 3px; }
.admin-notice { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; border-left: 4px solid #d99b35; border-radius: 7px; margin: 0 0 1.25rem; padding: .9rem 1rem; background: #fff7e7; color: #493714; }
.admin-notice p { margin: .25rem 0 0; }
.admin-notice a { min-height: 2.6rem; display: inline-flex; align-items: center; color: #493714; font-weight: 800; }
.admin-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.admin-summary, .admin-section, .admin-detail { border: 1px solid var(--admin-border); border-radius: 8px; padding: 1.1rem; background: var(--admin-surface); }
.admin-summary { display: grid; gap: .4rem; }
.admin-summary p { margin: 0; color: var(--admin-muted); font-size: .88rem; font-weight: 700; }
.admin-summary strong { font-size: 2rem; }
.admin-summary a, .admin-section-heading > a, .admin-back-link { color: var(--qrip-brand-hover); font-weight: 750; }
.admin-section { margin-bottom: 1rem; }
.admin-section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .85rem; }
.admin-section-heading h2 { margin: 0; font-size: 1.35rem; }
.admin-section-heading .admin-eyebrow { margin-bottom: .2rem; }
.admin-empty, .admin-result-count { color: var(--admin-muted); }
.admin-empty { margin: 0; }
.admin-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto auto; align-items: end; gap: .75rem; border: 1px solid var(--admin-border); border-radius: 8px; margin-bottom: 1rem; padding: 1rem; background: var(--admin-surface); }
.admin-filters label, .admin-settings-form label { display: grid; gap: .35rem; font-size: .88rem; font-weight: 780; }
.admin-filters select, .admin-settings-form input { width: 100%; min-height: 2.8rem; border: 1px solid var(--admin-border); border-radius: 6px; padding: .55rem .65rem; background: var(--admin-surface-raised); color: var(--admin-text); font: inherit; }
.admin-button { min-height: 2.8rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 7px; padding: .6rem .9rem; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.admin-button.primary { background: var(--qrip-brand); color: #fff; }
.admin-button.primary:hover { background: var(--qrip-brand-hover); }
.admin-button.secondary { border-color: var(--admin-border); background: var(--admin-surface-raised); color: var(--admin-text); }
.admin-button:disabled { cursor: not-allowed; opacity: .55; }
.admin-clear-filters { min-height: 2.8rem; display: inline-flex; align-items: center; padding: .4rem; color: var(--admin-muted); font-weight: 700; }
.admin-result-count { margin: .7rem 0; font-size: .9rem; }
.admin-contact-list { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.admin-contact-row { min-width: 0; border: 1px solid var(--admin-border); border-radius: 8px; background: var(--admin-surface); }
.admin-contact-link { display: grid; grid-template-columns: 10rem minmax(10rem, 1.2fr) minmax(9rem, 1fr) auto; align-items: center; gap: .55rem 1rem; padding: .9rem 1rem; color: var(--admin-text); text-decoration: none; }
.admin-contact-link time, .admin-contact-link > span { color: var(--admin-muted); font-size: .88rem; }
.admin-contact-link > strong { min-width: 0; overflow-wrap: anywhere; }
.admin-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.admin-badge { display: inline-flex; min-height: 1.8rem; align-items: center; border-radius: 999px; padding: .2rem .55rem; font-size: .75rem; font-weight: 800; }
.notification-sent, .review-done { background: #e4f5ee; color: #155b3b; }
.notification-pending { background: #e6f5f7; color: #16505b; }
.notification-failed { background: #fde9e7; color: #872e27; }
.notification-notconfigured, .review-open { background: #fff1d6; color: #704a09; }
.admin-message-preview { grid-column: 2 / -1; overflow-wrap: anywhere; }
.admin-pagination { display: flex; align-items: center; justify-content: center; gap: 1.2rem; margin-top: 1rem; }
.admin-pagination a { min-height: 2.7rem; display: inline-flex; align-items: center; color: var(--qrip-brand-hover); font-weight: 750; }
.admin-detail { padding: 1.25rem; }
.admin-detail-heading { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: .8rem; border-bottom: 1px solid var(--admin-border); padding-bottom: 1rem; }
.admin-detail-heading h2 { margin: 0; font-size: 1.4rem; overflow-wrap: anywhere; }
.admin-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1.5rem; margin: 1rem 0 1.25rem; }
.admin-metadata div { min-width: 0; }
.admin-metadata dt { color: var(--admin-muted); font-size: .8rem; font-weight: 750; }
.admin-metadata dd { margin: .2rem 0 0; overflow-wrap: anywhere; }
.admin-message-detail { border-top: 1px solid var(--admin-border); padding-top: 1rem; }
.admin-message-detail h3 { margin: 0 0 .55rem; font-size: 1rem; }
.admin-message-detail p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-review-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.admin-status-message { border-left: 4px solid var(--qrip-brand); margin: 0 0 1rem; padding: .75rem .9rem; background: color-mix(in srgb, var(--qrip-brand) 10%, var(--admin-surface)); }
.admin-status-message.error { border-color: #b33a3a; background: #fff0f0; color: #7c2525; }
.admin-status-message.success { border-color: #1f8b62; background: #e6f7ef; color: #145a3d; }
.admin-effective-recipient { display: grid; gap: .6rem; border-radius: 7px; margin: 1rem 0; padding: .9rem; background: var(--admin-bg); }
.admin-effective-recipient dt { color: var(--admin-muted); font-size: .8rem; font-weight: 760; }
.admin-effective-recipient dd { margin: .15rem 0 0; overflow-wrap: anywhere; font-weight: 700; }
.admin-settings-form { display: grid; max-width: 38rem; gap: .7rem; }
.admin-settings-form button { justify-self: start; }
.admin-test-email { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--admin-border); margin-top: 1.5rem; padding-top: 1.1rem; }
.admin-test-email h3 { margin: 0; font-size: 1rem; }
.admin-test-email p { margin: .3rem 0 0; color: var(--admin-muted); font-size: .9rem; }

@media (prefers-color-scheme: dark) {
    .admin-page {
        --admin-bg: #151d33;
        --admin-surface: #1b2540;
        --admin-surface-raised: #202b49;
        --admin-text: #edf1ff;
        --admin-muted: #bbc5db;
        --admin-border: #3a4664;
        --admin-focus: #6ce1ec;
        color-scheme: dark;
    }
    .admin-badge.notification-sent, .admin-badge.review-done { background: #173a34; color: #b8f1d9; }
    .admin-badge.notification-pending { background: #203c44; color: #b8edf3; }
    .admin-badge.notification-failed { background: #46292f; color: #ffd3d0; }
    .admin-badge.notification-notconfigured, .admin-badge.review-open { background: #493a24; color: #ffe4aa; }
    .admin-notice { border-color: #d5a84d; background: #382f22; color: #fff0cf; }
    .admin-notice a { color: #fff0cf; }
    .admin-status-message.error { border-color: #ef8f8f; background: #38262e; color: #ffe5e5; }
    .admin-status-message.success { border-color: #63d3a2; background: #173a34; color: #c8f6e3; }
}

@media (max-width: 42rem) {
    .admin-shell { display: block; }
    .admin-sidebar { position: static; height: auto; gap: .75rem; padding: .75rem; }
    .admin-shell .admin-navigation { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; margin: 0; }
    .admin-shell .admin-navigation a { min-height: 2.55rem; justify-content: center; padding: .45rem .3rem; font-size: .86rem; }
    .admin-sidebar-account { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-top: 0; padding-top: .65rem; }
    .admin-identity { max-width: 65%; }
    .admin-signout-form button { width: auto; min-width: 6rem; }
    .admin-page { width: min(100% - 1.25rem, 76rem); padding-top: 1.25rem; }
    .admin-heading { margin-bottom: 1rem; }
    .admin-heading h1 { font-size: 1.8rem; }
    .admin-navigation { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .25rem; }
    .admin-navigation a { justify-content: center; padding-inline: .35rem; font-size: .86rem; }
    .admin-summary-grid { grid-template-columns: 1fr 1fr; gap: .55rem; }
    .admin-summary { padding: .8rem; }
    .admin-summary strong { font-size: 1.6rem; }
    .admin-filters { grid-template-columns: 1fr 1fr; }
    .admin-filters .admin-button, .admin-clear-filters { width: 100%; }
    .admin-contact-link { grid-template-columns: 1fr auto; gap: .45rem .75rem; padding: .8rem; }
    .admin-contact-link time { grid-column: 1; }
    .admin-contact-link > strong { grid-column: 1 / -1; }
    .admin-contact-link > span:not(.admin-badges):not(.admin-message-preview) { grid-column: 1; }
    .admin-contact-link > .admin-badges { grid-column: 2; justify-content: flex-end; }
    .admin-message-preview { grid-column: 1 / -1; }
    .admin-metadata { grid-template-columns: 1fr; gap: .65rem; }
}

@media (max-width: 23rem) {
    .admin-identity { max-width: 58%; }
    .admin-identity strong { font-size: .82rem; }
    .admin-signout-form button { min-width: 5.2rem; padding-inline: .45rem; font-size: .86rem; }
    .admin-navigation a { font-size: .78rem; }
    .admin-filters { grid-template-columns: 1fr; }
    .admin-filters .admin-button, .admin-clear-filters { width: auto; }
    .admin-summary-grid { grid-template-columns: 1fr; }
}

.admin-telemetry-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.admin-telemetry-card { display: grid; gap: .35rem; border: 1px solid var(--admin-border); border-radius: 6px; padding: .85rem; background: var(--admin-surface-raised); }
.admin-telemetry-card span { color: var(--admin-muted); font-size: .8rem; font-weight: 750; }
.admin-telemetry-card strong { font-size: 1.3rem; }
.admin-table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.admin-table { width: 100%; border-collapse: collapse; margin-top: .5rem; }
.admin-table th, .admin-table td { padding: .75rem; text-align: left; border-bottom: 1px solid var(--admin-border); }
.admin-table th { color: var(--admin-muted); font-size: .8rem; font-weight: 780; text-transform: uppercase; }
.admin-table tr:hover td { background: color-mix(in srgb, var(--qrip-brand) 4%, var(--admin-surface)); }
.admin-table a { color: var(--qrip-brand-hover); text-decoration: none; font-weight: 750; }
.admin-table a:hover { text-decoration: underline; }
.admin-diagnostic-text { max-height: 32rem; overflow: auto; padding: 1rem; border-radius: 6px; background: var(--admin-page); color: var(--admin-text); white-space: pre-wrap; overflow-wrap: anywhere; font-size: .82rem; }

@media (max-width: 42rem) {
    .admin-telemetry-grid { grid-template-columns: 1fr; }
}
