/* ============================
   Admin — LabSiga CMS
   ============================ */

html:has(.admin-body.body--editorial) {
    background: var(--article-bg);
}

.admin-body.body--editorial {
    background: var(--article-bg);
    color: var(--article-text);
    min-height: 100vh;
    --admin-topbar-height: 66px;
}

.admin-body {
    background: var(--bg);
    min-height: 100vh;
    --admin-topbar-height: 66px;
    --admin-content-pad: 1.5rem;
    --admin-aside-gap: 1.5rem;
}

/* --- Top bar --- */
.admin-topbar {
    background: var(--surface);
    border-top: 4px solid var(--primary);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    position: sticky;
    top: 0;
    z-index: 50;
    isolation: isolate;
}

.body--editorial.admin-body .admin-topbar {
    background: rgba(247, 246, 243, 0.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: none;
    border-bottom: 1px solid var(--article-border);
    box-shadow: none;
}

.admin-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    width: min(100%, var(--content-max));
    margin: 0 auto;
    padding: 0.65rem 1.25rem;
}

.body--editorial.admin-body .admin-topbar-inner {
    width: min(100%, 1120px);
}

.admin-brand-mini {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    color: var(--primary);
    font-weight: 700;
    font-size: 0.92rem;
    letter-spacing: -0.02em;
}

.body--editorial.admin-body .admin-brand-mini {
    color: var(--article-text);
    font-family: 'Outfit', sans-serif;
}

.admin-brand-mini img {
    height: 40px;
    width: auto;
    display: block;
    object-fit: contain;
}

.body--editorial.admin-body .admin-brand-mini img {
    height: clamp(44px, 4vw, 48px);
}

.admin-topnav {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.admin-topnav a {
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-muted);
    padding: 0.4rem 0.7rem;
    border-radius: 6px;
    transition: background 0.18s, color 0.18s;
}

.body--editorial.admin-body .admin-topnav a {
    color: var(--article-muted);
    font-weight: 500;
}

.admin-topnav a:hover {
    background: var(--primary-soft);
    color: var(--primary);
}

.body--editorial.admin-body .admin-topnav a:hover {
    background: rgba(55, 53, 47, 0.06);
    color: var(--article-text);
}

.admin-topnav a.is-active {
    background: var(--nav-active-bg);
    color: var(--primary);
}

.body--editorial.admin-body .admin-topnav a.is-active {
    background: rgba(55, 53, 47, 0.08);
    color: var(--article-text);
    font-weight: 600;
}

.admin-topnav .admin-logout:hover {
    background: #fdf2f8;
    color: var(--accent-hover);
}

.body--editorial.admin-body .admin-topnav .admin-logout:hover {
    background: rgba(190, 18, 60, 0.08);
    color: #be123c;
}

/* --- Page layout --- */
.admin-page {
    padding: 1.75rem var(--admin-content-pad) 3rem;
}

.body--editorial.admin-body .admin-page {
    padding: var(--admin-content-pad) clamp(var(--admin-content-pad), 3vw, 2rem) 4rem;
}

.admin-page:has(.admin-container--editor) {
    padding-left: max(var(--admin-content-pad), calc((100vw - var(--content-max)) / 2));
    padding-right: max(var(--admin-content-pad), calc((100vw - var(--content-max)) / 2));
}

.admin-container {
    width: min(100%, var(--content-max));
    margin: 0 auto;
}

.body--editorial.admin-body .admin-container:not(.admin-container--editor) {
    width: min(100%, 1120px);
}

.admin-container--narrow {
    max-width: 520px;
}

.admin-container--editor {
    max-width: var(--content-max);
}

.admin-page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.75rem;
}

.admin-page-title {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--primary);
    line-height: 1.2;
}

.body--editorial.admin-body .admin-page-title {
    font-family: 'Outfit', sans-serif;
    font-size: clamp(1.75rem, 3.5vw, 2.25rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--article-text);
    line-height: 1.1;
}

.admin-page-lead {
    margin-top: 0.35rem;
    font-size: 0.9rem;
    color: var(--text-muted);
    max-width: 48ch;
}

.body--editorial.admin-body .admin-page-lead {
    font-size: 0.9rem;
    line-height: 1.55;
    color: var(--article-muted);
}

.admin-back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
    color: var(--text-muted);
    font-weight: 600;
    font-size: 0.88rem;
    margin-bottom: 1.25rem;
    transition: color 0.18s;
}

.admin-back-link:hover {
    color: var(--primary);
}

.body--editorial.admin-body .admin-back-link {
    color: var(--article-muted);
    font-weight: 500;
}

.body--editorial.admin-body .admin-back-link:hover {
    color: var(--article-text);
}

/* --- Dashboard sections --- */
.admin-section {
    margin-bottom: 1.5rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
}

.body--editorial.admin-body .admin-section {
    border: 1px solid rgba(25, 23, 17, 0.06);
    border-radius: var(--radius);
    box-shadow: 0 4px 20px rgba(25, 23, 17, 0.02);
}

.admin-section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    background: linear-gradient(90deg, var(--primary) 0%, var(--primary-light) 100%);
    color: white;
}

.body--editorial.admin-body .admin-section-head {
    padding: 1rem 1.15rem;
    background: var(--surface);
    border-bottom: 1px solid var(--article-border);
    color: var(--article-text);
}

.admin-section-title {
    font-size: 0.92rem;
    font-weight: 700;
}

.body--editorial.admin-body .admin-section-title {
    font-family: 'Outfit', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--article-text);
}

.admin-section-label {
    display: block;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    opacity: 0.8;
    margin-bottom: 0.15rem;
}

.body--editorial.admin-body .admin-section-label {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--article-muted);
    opacity: 1;
}

.admin-btn-ghost-light {
    background: rgba(255, 255, 255, 0.18);
    color: white;
    padding: 0.35rem 0.75rem;
    text-decoration: none;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    border: 1px solid rgba(255, 255, 255, 0.22);
    transition: background 0.18s;
    white-space: nowrap;
}

.admin-btn-ghost-light:hover {
    background: rgba(255, 255, 255, 0.32);
    color: white;
}

.body--editorial.admin-body .admin-btn-ghost-light {
    background: transparent;
    color: var(--article-text);
    border: 1px solid var(--article-border);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.4rem 0.85rem;
    transition: background 0.2s, border-color 0.2s;
}

.body--editorial.admin-body .admin-btn-ghost-light:hover {
    background: rgba(55, 53, 47, 0.06);
    color: var(--article-text);
    border-color: rgba(55, 53, 47, 0.2);
}

.admin-page-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.admin-page-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--border);
    transition: background 0.15s;
}

.body--editorial.admin-body .admin-page-item {
    padding: 0.9rem 1.15rem;
    border-bottom-color: var(--article-border);
}

.admin-page-item:last-child {
    border-bottom: none;
}

.admin-page-item:hover {
    background: var(--primary-soft);
}

.body--editorial.admin-body .admin-page-item:hover {
    background: rgba(55, 53, 47, 0.04);
}

.admin-page-item.is-child {
    padding-left: 1.75rem;
    background: var(--surface-muted);
}

.body--editorial.admin-body .admin-page-item.is-child {
    padding-left: 2rem;
    background: rgba(55, 53, 47, 0.02);
}

.admin-page-item.is-child:hover {
    background: var(--primary-soft);
}

.body--editorial.admin-body .admin-page-item.is-child:hover {
    background: rgba(55, 53, 47, 0.05);
}

.admin-page-item-title {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--text);
}

.body--editorial.admin-body .admin-page-item-title {
    color: var(--article-text);
    font-weight: 500;
}

.admin-page-item-meta {
    color: var(--text-muted);
    font-weight: 500;
    font-size: 0.8rem;
}

.body--editorial.admin-body .admin-page-item-meta {
    color: var(--article-muted);
}

.admin-child-marker {
    color: var(--text-muted);
    font-size: 0.8rem;
    margin-right: 0.35rem;
}

.body--editorial.admin-body .admin-child-marker {
    color: var(--article-muted);
}

.admin-page-actions {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.admin-footer-link {
    display: inline-block;
    margin-top: 2rem;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
}

.admin-footer-link:hover {
    text-decoration: underline;
}

.admin-footer-link--editorial,
.body--editorial.admin-body .admin-footer-link {
    color: var(--article-muted);
    font-weight: 500;
    font-size: 0.875rem;
    text-decoration: none;
}

.admin-footer-link--editorial:hover,
.body--editorial.admin-body .admin-footer-link:hover {
    color: var(--article-text);
    text-decoration: none;
}

/* --- Buttons --- */
.admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.45rem 0.95rem;
    border: none;
    border-radius: 6px;
    font-size: 0.84rem;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.18s, color 0.18s, border-color 0.18s;
}

.admin-btn-primary {
    background: var(--primary);
    color: white;
}

.admin-btn-primary:hover {
    background: var(--primary-light);
    color: white;
}

.body--editorial.admin-body .admin-btn-primary {
    background: var(--article-text);
    color: var(--article-bg);
    border: 1px solid var(--article-text);
    border-radius: 8px;
}

.body--editorial.admin-body .admin-btn-primary:hover {
    background: rgba(55, 53, 47, 0.88);
    border-color: rgba(55, 53, 47, 0.88);
    color: var(--article-bg);
}

.admin-btn-secondary {
    background: var(--surface, #fff);
    color: var(--primary);
    border: 1px solid var(--primary);
}

.admin-btn-secondary:hover {
    background: var(--primary-soft, #e8f5ec);
}

.body--editorial.admin-body .admin-btn-secondary {
    background: transparent;
    color: var(--article-text);
    border: 1px solid var(--article-border);
    border-radius: 8px;
}

.body--editorial.admin-body .admin-btn-secondary:hover {
    background: rgba(55, 53, 47, 0.06);
    color: var(--article-text);
}

.admin-btn-danger {
    background: #c62828;
    color: white;
}

.admin-btn-danger:hover {
    background: #b71c1c;
    color: white;
}

.body--editorial.admin-body .admin-btn-danger {
    border-radius: 8px;
}

.admin-btn-block {
    width: 100%;
    padding: 0.8rem 1rem;
    font-size: 0.95rem;
}

.admin-delete-form {
    margin: 0;
}

/* --- Forms --- */
.admin-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow-md);
    padding: 2rem 1.75rem;
}

.body--editorial.admin-body .admin-card {
    border: 1px solid rgba(25, 23, 17, 0.06);
    border-radius: var(--radius);
    box-shadow: 0 4px 20px rgba(25, 23, 17, 0.02);
}

.body--editorial.admin-body .admin-form-group label {
    color: var(--article-text);
}

.body--editorial.admin-body .admin-form-group input,
.body--editorial.admin-body .admin-form-group select:not(.admin-toolbar-select),
.body--editorial.admin-body .admin-form-group textarea,
.body--editorial.admin-body .admin-checkbox-shell {
    border-color: var(--article-border);
    border-radius: 8px;
    color: var(--article-text);
}

.body--editorial.admin-body .admin-form-group input:focus,
.body--editorial.admin-body .admin-form-group select:not(.admin-toolbar-select):focus,
.body--editorial.admin-body .admin-form-group textarea:focus,
.body--editorial.admin-body .admin-checkbox-shell:focus-within {
    border-color: rgba(55, 53, 47, 0.35);
    box-shadow: 0 0 0 3px rgba(55, 53, 47, 0.06);
}

.body--editorial.admin-body .admin-breadcrumb {
    color: var(--article-muted);
}

.body--editorial.admin-body .admin-breadcrumb a {
    color: var(--article-text);
}

.admin-form-group {
    margin-bottom: 1.25rem;
}

.admin-form-group label {
    display: block;
    margin-bottom: 0.45rem;
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--text);
}

.admin-form-group input,
.admin-form-group select:not(.admin-toolbar-select),
.admin-form-group textarea {
    width: 100%;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.95rem;
    font-family: inherit;
    background: var(--surface);
    color: var(--text);
    transition: border-color 0.18s, box-shadow 0.18s;
}

.admin-form-group textarea {
    min-height: 8rem;
    line-height: 1.5;
    resize: vertical;
}

.admin-form-group input[readonly] {
    background: var(--surface-muted);
    color: var(--text-muted);
}

.admin-form-group input:focus,
.admin-form-group select:not(.admin-toolbar-select):focus,
.admin-form-group textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);
}

.admin-badge {
    display: inline-block;
    background: var(--primary-soft);
    color: var(--primary);
    padding: 0.2rem 0.6rem;
    border-radius: 4px;
    font-size: 0.78rem;
    font-weight: 700;
}

.admin-alert-error {
    color: var(--accent-hover);
    background: #fdf2f8;
    padding: 0.65rem 0.85rem;
    border-radius: 6px;
    border: 1px solid #f9a8d4;
    margin-bottom: 1.25rem;
    font-weight: 600;
    font-size: 0.88rem;
}

.admin-alert-success {
    color: #166534;
    background: #f0fdf4;
    padding: 0.65rem 0.85rem;
    border-radius: 6px;
    border: 1px solid #86efac;
    margin-bottom: 1.25rem;
    font-weight: 600;
    font-size: 0.88rem;
}

/* --- Login (editorial theme — matches portal) --- */
html:has(.admin-body--login) {
    background: var(--article-bg);
}

.admin-body--login {
    background: var(--article-bg);
    color: var(--article-text);
}

.admin-login-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: clamp(2rem, 5vw, 3rem) clamp(1rem, 3vw, 2rem);
}

.admin-login-card {
    width: min(100%, 420px);
    background: var(--surface);
    border: 1px solid rgba(25, 23, 17, 0.06);
    border-radius: var(--radius);
    box-shadow: 0 4px 20px rgba(25, 23, 17, 0.02);
    padding: clamp(1.75rem, 4vw, 2.25rem) clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 1.75rem);
}

.admin-login-brand {
    text-align: center;
    margin-bottom: 1.75rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--article-border);
}

.admin-login-logo-link {
    display: inline-block;
    line-height: 0;
    margin-bottom: 1.25rem;
    text-decoration: none;
}

.admin-login-brand img {
    height: clamp(72px, 14vw, 96px);
    width: auto;
    max-width: clamp(160px, 28vw, 220px);
    margin: 0 auto;
    display: block;
    object-fit: contain;
}

.admin-login-title {
    margin: 0;
    font-family: 'Outfit', sans-serif;
    font-size: clamp(1.65rem, 4vw, 2rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--article-text);
}

.admin-body--login .admin-form-group label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--article-text);
}

.admin-body--login .admin-form-group input {
    border-color: var(--article-border);
    border-radius: 8px;
    background: var(--surface);
    color: var(--article-text);
}

.admin-body--login .admin-form-group input:focus {
    border-color: rgba(55, 53, 47, 0.35);
    box-shadow: 0 0 0 3px rgba(55, 53, 47, 0.06);
}

.admin-btn-login {
    background: var(--article-text);
    color: var(--article-bg);
    border: 1px solid var(--article-text);
    border-radius: 8px;
    font-weight: 600;
    transition: background 0.2s cubic-bezier(0.16, 1, 0.3, 1), color 0.2s, border-color 0.2s;
}

.admin-btn-login:hover {
    background: rgba(55, 53, 47, 0.88);
    color: var(--article-bg);
    border-color: rgba(55, 53, 47, 0.88);
}

.admin-login-alert {
    border-color: rgba(190, 18, 60, 0.25);
    background: rgba(253, 242, 248, 0.85);
}

.admin-login-back {
    text-align: center;
    margin: 1.5rem 0 0;
}

.admin-login-footer {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--article-border);
    text-align: center;
}

.admin-login-footer-text {
    margin: 0;
    color: var(--article-muted);
    font-size: 0.9rem;
    line-height: 1.5;
}

.admin-login-footer-action {
    display: inline-block;
    margin-left: 0.35rem;
    color: var(--article-text);
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s;
}

.admin-login-footer-action:hover {
    color: var(--article-text);
    text-decoration: underline;
}

.admin-password-field .admin-password-input-wrap {
    position: relative;
}

.admin-password-field input {
    width: 100%;
    padding-right: 2.75rem;
}

.admin-password-toggle {
    position: absolute;
    top: 50%;
    right: 0.65rem;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--article-muted);
    cursor: pointer;
    transition: color 0.2s, background 0.2s;
}

.admin-password-toggle:hover {
    color: var(--article-text);
    background: rgba(55, 53, 47, 0.06);
}

.admin-password-toggle:focus-visible {
    outline: 2px solid rgba(55, 53, 47, 0.35);
    outline-offset: 2px;
}

.admin-password-toggle-icon {
    display: none;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.admin-password-toggle[data-password-visible="false"] .admin-password-toggle-icon--open,
.admin-password-toggle[data-password-visible="true"] .admin-password-toggle-icon--closed {
    display: block;
}

.admin-login-back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--article-muted);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.admin-login-back-link:hover {
    color: var(--article-text);
    text-decoration: none;
}

/* --- Editor --- */
.admin-breadcrumb {
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
}

.admin-breadcrumb a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.admin-breadcrumb a:hover {
    text-decoration: underline;
}

.admin-container--editor-preview {
    width: min(75vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
}

.admin-page:has(.admin-container--editor-preview) {
    padding-left: clamp(1rem, 3vw, 2rem);
    padding-right: clamp(1rem, 3vw, 2rem);
}

/* --- Reading-style editor preview (matches public editorial section) --- */
html:has(.admin-body--reading-preview) {
    background: var(--article-bg);
}

.admin-body--reading-preview {
    background: var(--article-bg) !important;
    color: var(--article-text);
    font-family: 'Inter', sans-serif;
}

.admin-body--reading-preview .admin-page {
    background: transparent;
}

.admin-body--reading-preview .admin-breadcrumb a {
    color: var(--article-text);
}

.admin-body--reading-preview .admin-editor-panel,
.admin-body--reading-preview .admin-thumb-field {
    background: rgba(255, 255, 255, 0.55);
    border-color: var(--article-border);
}

.admin-editor-preview--reading {
    margin-bottom: 1rem;
    background: transparent;
}

.admin-editor-section.editorial-section {
    width: min(75vw, 1280px);
    max-width: 100%;
    margin: 0 auto;
    opacity: 1;
    transform: none;
}

.admin-editor-section-layout.editorial-section-layout {
    display: grid;
    grid-template-columns: minmax(200px, 240px) minmax(0, 1fr);
    gap: var(--admin-aside-gap);
    align-items: start;
}

@media (max-width: 1100px) {
    .admin-editor-section-layout.editorial-section-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

.admin-editor-section-body.editorial-section-body {
    min-width: 0;
    max-width: none;
    width: 100%;
    overflow-x: clip;
}

.admin-body--reading-preview .editorial-section-sidebar {
    position: sticky;
    top: calc(var(--admin-topbar-height, 56px) + 1rem);
    max-height: calc(100dvh - var(--admin-topbar-height, 56px) - 2rem);
    overflow-y: auto;
}

/* Sidebar title aligns with first heading in body column (matches h2 margin-top) */
.admin-editor-section--editorial .editorial-section-sidebar .editorial-section-intro,
.admin-editor-section--default .editorial-section-sidebar .editorial-section-intro,
.admin-editor-section--article .editorial-section-sidebar .editorial-section-intro {
    padding-top: 2.5rem;
}

.admin-editor-sidebar-context {
    margin: 0 0 0.65rem;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--article-muted);
}

.admin-editor-sidebar-title.article-title {
    margin: 0 0 0.85rem;
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    pointer-events: none;
}

.admin-body--reading-preview .admin-editor-section .editorial-section-sidebar {
    pointer-events: none;
}

.admin-body--reading-preview .admin-editor-section .editorial-section-toc-link {
    pointer-events: auto;
    cursor: pointer;
}

.admin-editor-hero {
    margin-bottom: 0;
    pointer-events: none;
}

.admin-editor-hero-section .admin-editor-hero-label,
.admin-editor-hero .admin-editor-hero-label {
    color: var(--article-muted);
    font-weight: 500;
}

.admin-editor-preview-canvas.content-container--article {
    width: min(100%, var(--article-reading-max));
    margin: 0 auto;
    padding: 0 clamp(1.25rem, 4vw, 2rem) 2rem;
}

.admin-editor-compose--preview,
.admin-editor-compose {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    max-width: 100%;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    min-height: 280px;
}

.admin-editor-compose--preview {
    width: 100%;
}

.admin-editor-compose--preview .admin-editor-toolbar {
    background: var(--article-bg, #ffffff);
    border: none;
    border-bottom: 1px solid var(--article-border);
    border-radius: 0;
    margin-bottom: 1rem;
    padding: 6px 0;
}

.admin-editor-compose--preview .admin-editor-help {
    background: rgba(255, 255, 255, 0.45);
    border-color: var(--article-border);
    color: var(--article-text);
}

.admin-editor-compose--preview .admin-editor-area,
.admin-editor-area {
    flex: 1;
    min-height: 280px;
    max-height: min(70vh, 900px);
    min-width: 0;
    max-width: 100%;
    padding: 1.25rem 1.35rem 1.5rem;
    border: 1px dashed rgba(55, 53, 47, 0.14);
    border-radius: 6px;
    background: transparent !important;
    overflow-x: auto;
    overflow-y: auto;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.8;
    transition: border-color 0.15s ease;
    box-sizing: border-box;
}

.admin-editor-compose--preview .admin-editor-area.page-content--article,
.admin-editor-area.page-content--article {
    width: 100%;
    max-width: none;
}

.admin-editor-compose--preview .admin-editor-area:focus,
.admin-editor-area:focus {
    outline: none;
    border-color: rgba(55, 53, 47, 0.28);
    box-shadow: none;
}

/* COLOR-16: readable selection while choosing foreColor (not default system blue) */
.admin-editor-area.is-color-selecting::selection,
.admin-editor-area.is-color-selecting *::selection {
    background: rgba(201, 148, 48, 0.45);
    color: inherit;
}

.admin-editor-compose--preview .admin-editor-area.page-content--article img,
.admin-editor-area.page-content--article img {
    border-radius: 4px;
    box-shadow: none;
    margin: 1.5rem 0;
}

.admin-editor-area > .linked-image,
.admin-editor-area .linked-image__link img,
.admin-rich-editor__surface > .linked-image,
.admin-rich-editor__surface .linked-image__link img {
    margin: 0;
}

.admin-editor-actions .admin-btn-secondary {
    text-decoration: none;
}

/* Shared Notion-like toolbar tokens (sticky + floating image bar) */
.admin-editor-toolbar,
.img-toolbar {
    --toolbar-height: 44px;
    --toolbar-btn-size: 32px;
    --toolbar-gap: 2px;
    --toolbar-bg: hsl(38, 12%, 96%);
    --toolbar-btn-hover: rgba(55, 53, 47, 0.06);
    --toolbar-btn-active: rgba(55, 53, 47, 0.1);
}

.admin-editor-toolbar {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 0;
    background: var(--toolbar-bg);
    padding: 6px 8px;
    border-bottom: 1px solid var(--border);
    border-radius: 8px 8px 0 0;
    position: sticky;
    top: calc(var(--admin-topbar-height, 56px) + var(--admin-command-bar-offset, 0px));
    z-index: 40;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.admin-editor-toolbar-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--toolbar-gap);
    align-items: center;
    min-height: var(--toolbar-height);
    max-width: 100%;
    min-width: 0;
}

.admin-toolbar-sep {
    display: inline-block;
    width: 1px;
    height: 24px;
    background: var(--article-border, var(--border));
    margin: 0 4px;
    flex-shrink: 0;
}

.admin-toolbar-select {
    box-sizing: border-box;
    width: auto;
    min-width: 7.5rem;
    max-width: 10rem;
    height: var(--toolbar-btn-size);
    padding: 0 1.75rem 0 8px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--surface);
    font-size: 0.8rem;
    line-height: calc(var(--toolbar-btn-size) - 2px);
    font-family: inherit;
    color: var(--text);
    cursor: pointer;
    flex-shrink: 0;
    appearance: auto;
}

.admin-toolbar-select option.admin-toolbar-block-option--p {
    font-size: 0.8125rem;
    font-weight: 400;
}

.admin-toolbar-select option.admin-toolbar-block-option--h1 {
    font-size: 1.375rem;
    font-weight: 700;
}

.admin-toolbar-select option.admin-toolbar-block-option--h2 {
    font-size: 1.125rem;
    font-weight: 700;
}

.admin-toolbar-select option.admin-toolbar-block-option--h3 {
    font-size: 0.9375rem;
    font-weight: 600;
}

.admin-toolbar-select--font {
    max-width: 110px;
}

.admin-toolbar-select--size {
    max-width: 58px;
}

.admin-toolbar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--toolbar-btn-size);
    height: var(--toolbar-btn-size);
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.admin-toolbar-btn:hover {
    background: var(--toolbar-btn-hover);
}

.admin-toolbar-btn.is-active {
    background: var(--toolbar-btn-active);
    color: var(--primary);
}

.admin-toolbar-btn--text {
    width: var(--toolbar-btn-size);
    font-weight: 700;
    font-size: 0.9rem;
    border: 1px solid var(--border);
    background: var(--surface);
}

.admin-toolbar-btn--label {
    width: auto;
    padding: 0 10px;
    font-size: 0.78rem;
    font-weight: 600;
    font-family: inherit;
}

.admin-toolbar-color-stack {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.admin-toolbar-color-indicator {
    display: block;
    width: 16px;
    height: 16px;
    border-radius: 3px;
    border: 1px solid var(--border);
    background: #1a3d2e;
}

.admin-color-popover {
    position: fixed;
    z-index: 45;
    min-width: 180px;
    padding: 10px;
    background: var(--surface);
    background: color-mix(in srgb, var(--surface) 92%, transparent);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.admin-color-popover[hidden] {
    display: none !important;
}

.admin-color-popover .admin-toolbar-color-presets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.admin-color-popover .admin-toolbar-swatch {
    width: 22px;
    height: 22px;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
}

.admin-toolbar-color-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--toolbar-btn-size);
    height: var(--toolbar-btn-size);
    border-radius: 4px;
    cursor: pointer;
    position: relative;
}

.admin-toolbar-color-wrap:hover {
    background: var(--toolbar-btn-hover);
}

.admin-toolbar-color {
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
}

.admin-toolbar-dropdown {
    position: relative;
    display: inline-flex;
}

.admin-toolbar-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 20;
    min-width: 160px;
    padding: 4px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.admin-toolbar-menu-item {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    border: none;
    border-radius: 4px;
    background: transparent;
    font-size: 0.82rem;
    font-family: inherit;
    color: var(--text);
    cursor: pointer;
    text-align: left;
}

.admin-toolbar-menu-item:hover,
.admin-toolbar-menu-item.is-active {
    background: var(--toolbar-btn-hover);
}

/* Overflow Mais — hidden on wide viewports; secondary cluster stays in primary row */
.admin-toolbar-more {
    display: none;
    position: relative;
}

.admin-editor-context-menu {
    position: fixed;
    z-index: 40;
    box-sizing: border-box;
    min-width: min(180px, calc(100vw - 16px));
    max-width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    overflow-y: auto;
    padding: 4px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.admin-editor-context-menu[hidden] {
    display: none !important;
}

.admin-editor-context-menu__section {
    padding: 2px 0;
}

.admin-editor-context-menu__section + .admin-editor-context-menu__section {
    border-top: 1px solid var(--border);
    margin-top: 2px;
    padding-top: 4px;
}

.admin-editor-context-menu__label {
    padding: 4px 10px 2px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--text-muted, var(--article-muted, #6e6e73));
}

.admin-editor-context-menu__item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 8px 10px;
    border: none;
    border-radius: 4px;
    background: transparent;
    font-size: 0.82rem;
    font-family: inherit;
    color: var(--text);
    cursor: pointer;
    text-align: left;
}

.admin-editor-context-menu__item:hover {
    background: var(--toolbar-btn-hover);
}

.admin-editor-context-menu__item:focus-visible {
    background: var(--toolbar-btn-hover);
    outline: 2px solid var(--primary);
    outline-offset: -2px;
}

.admin-btn-help {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--toolbar-btn-size);
    height: var(--toolbar-btn-size);
    padding: 0;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--primary);
    font-weight: 700;
    font-size: 0.9rem;
    cursor: pointer;
    line-height: 1;
    flex-shrink: 0;
    transition: background 0.15s, border-color 0.15s;
}

.admin-btn-help.admin-btn-help--labeled {
    width: auto;
    min-width: 0;
    padding: 0 0.7rem 0 0.55rem;
    gap: 0.35rem;
    border-radius: 999px;
    white-space: nowrap;
}

.admin-btn-help:hover,
.admin-btn-help[aria-expanded="true"] {
    background: var(--primary-soft);
    border-color: color-mix(in srgb, var(--primary) 30%, var(--border));
}

.admin-editor-help {
    margin-top: 0.5rem;
    padding: 0.75rem 0.85rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.82rem;
    color: var(--text);
}

/* Guia popover — anchored to the right-aligned help group, does not push or overlay the editor body. */
.admin-toolbar-help-wrap {
    position: relative;
    margin-left: auto;
    flex-shrink: 0;
    align-self: center;
}

.admin-help-label {
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}

.admin-help-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1;
}

.admin-editor-help--popover {
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 0;
    z-index: 60;
    width: min(340px, 90vw);
    margin-top: 0;
    padding: 0.85rem 0.95rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 30, 20, 0.18);
    color: var(--text);
}

.admin-editor-compose--preview .admin-editor-help--popover {
    background: #ffffff;
    border-color: var(--article-border);
    color: var(--article-text);
    box-shadow: 0 12px 32px rgba(15, 30, 20, 0.22);
}

.admin-editor-help-title {
    margin: 0 0 0.5rem;
    font-weight: 700;
    color: var(--primary);
    font-size: 0.85rem;
}

.admin-editor-help-list {
    margin: 0;
    display: grid;
    gap: 0.4rem;
}

.admin-editor-help-list > div {
    display: grid;
    grid-template-columns: minmax(110px, auto) 1fr;
    gap: 0.5rem 0.75rem;
    align-items: baseline;
}

.admin-editor-help-list dt {
    margin: 0;
    font-weight: 600;
    color: var(--text-muted);
}

.admin-editor-help-list dd {
    margin: 0;
    line-height: 1.4;
}

.admin-editor-help kbd {
    display: inline-block;
    padding: 0.1rem 0.35rem;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--surface-muted);
    font-size: 0.76rem;
    font-family: inherit;
}

.admin-toolbar-group {
    display: flex;
    gap: var(--toolbar-gap, 2px);
    align-items: center;
}

.admin-editor-area.page-content {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-editor-area p,
.admin-editor-area div,
.admin-editor-area li,
.admin-editor-area h1,
.admin-editor-area h2,
.admin-editor-area h3,
.admin-editor-area blockquote {
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
}

.admin-editor-area blockquote {
    margin: 0 0 1rem 1.5rem;
    padding-left: 1rem;
    border-left: 3px solid var(--border);
}

.admin-editor-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    padding: 1rem;
    margin-bottom: 1rem;
}

.admin-metadata {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.admin-metadata-grid {
    display: grid;
    gap: 0.85rem 1rem;
    align-items: start;
}

.admin-metadata-grid--identity {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr);
}

.admin-metadata-grid > .admin-form-group,
.admin-metadata-options > .admin-form-group {
    min-width: 0;
}

.admin-metadata-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1rem;
    align-items: start;
    padding-top: 1rem;
    border-top: 1px solid var(--hairline, var(--border));
}

.admin-metadata-options:has(#page-group) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-editor-metadata .admin-field-subordinate[data-publication-control] {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.admin-field-hint {
    margin: 0.35rem 0 0;
    font-size: 0.8rem;
    color: var(--text-muted);
}

.admin-form-group--event-link {
    grid-column: 1 / -1;
    padding: 0.9rem 1rem;
    border: 1px dashed var(--hairline, var(--border));
    border-radius: 10px;
    background: color-mix(in srgb, var(--fill-muted, #f4f4f4) 88%, transparent);
}

.admin-edition-actions-preview {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px dashed var(--hairline, var(--border));
    border-radius: 10px;
}

.admin-edition-actions-preview__label {
    margin: 0 0 0.45rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.admin-field-caption {
    display: block;
    margin-bottom: 0.45rem;
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--text);
}

.admin-checkbox-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
}

.admin-checkbox-shell {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    box-sizing: border-box;
    width: 100%;
    min-height: 2.75rem;
    margin: 0;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--surface);
    color: var(--text);
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
}

.admin-checkbox-shell:hover {
    border-color: color-mix(in srgb, var(--primary) 35%, var(--border));
}

.admin-checkbox-shell:focus-within {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);
}

.admin-checkbox-shell input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem;
    min-width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    padding: 0;
    accent-color: var(--primary);
    cursor: pointer;
}

.admin-form-group--checkbox .admin-field-hint {
    margin: 0.35rem 0 0;
}

.admin-thumb-field {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.admin-thumb-field--portal {
    background: var(--article-bg);
    border-color: var(--article-border);
}

.admin-thumb-field-head {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.admin-thumb-field-hint {
    margin: 0;
    font-size: 0.8rem;
    color: var(--article-muted, var(--text-muted));
}

.admin-thumb-portal-preview {
    display: flex;
    justify-content: flex-start;
}

.admin-thumb-portal-card {
    width: min(100%, 380px);
    pointer-events: none;
}

.admin-thumb-portal-card .admin-thumb-dropzone--portal {
    pointer-events: auto;
    cursor: pointer;
}

.admin-thumb-portal-card-body {
    pointer-events: none;
}

.admin-thumb-dropzone--portal {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    min-height: 0;
    margin-bottom: 1rem;
    padding: 0;
    border: 2px dashed var(--article-border, var(--border));
    border-radius: 4px;
    background-color: #ebeae6;
}

.admin-thumb-dropzone--portal:focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.admin-thumb-dropzone--portal.is-dragover,
.admin-thumb-dropzone--portal:hover {
    border-color: var(--primary);
    background-color: #e8e6e1;
}

.admin-thumb-dropzone--portal.has-image {
    border-style: solid;
    border-color: var(--article-border, var(--border));
    background-color: #ebeae6;
}

.admin-thumb-dropzone--portal .admin-thumb-preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center;
    border-radius: 4px;
    display: none;
}

.admin-thumb-dropzone--portal.has-image .admin-thumb-preview {
    display: block;
}

.admin-thumb-field > label {
    font-weight: 600;
    font-size: 0.85rem;
}

.admin-thumb-dropzone {
    position: relative;
    min-height: 180px;
    border: 2px dashed var(--border);
    border-radius: 10px;
    background: var(--surface-muted, #f8faf8);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.admin-thumb-dropzone:focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.admin-thumb-dropzone.is-dragover,
.admin-thumb-dropzone:hover {
    border-color: var(--primary);
    background: #f0f7f2;
}

.admin-thumb-dropzone-hint {
    text-align: center;
    padding: 1rem;
    color: var(--text-muted);
    pointer-events: none;
}

.admin-thumb-dropzone-hint p {
    margin: 0;
    font-size: 0.9rem;
}

.admin-thumb-dropzone-sub {
    margin-top: 0.35rem !important;
    font-size: 0.78rem !important;
    opacity: 0.85;
}

.admin-thumb-dropzone.has-image .admin-thumb-dropzone-hint {
    display: none;
}

.admin-thumb-preview {
    width: 100%;
    max-height: 220px;
    object-fit: cover;
    border-radius: 8px;
    display: none;
}

.admin-thumb-dropzone.has-image .admin-thumb-preview {
    display: block;
}

.admin-thumb-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.admin-btn-sm {
    padding: 0.4rem 0.75rem;
    font-size: 0.82rem;
}

.admin-btn-ghost {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
}

.admin-btn-ghost:hover {
    background: var(--surface-muted, #f8faf8);
    color: var(--text);
}

.admin-editor-actions {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

#save-status {
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--text-muted);
}

/* Image toolbar — ghost chrome under admin (overrides public style.css boxed look) */
.admin-body .img-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--toolbar-gap);
    padding: 4px 6px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.admin-body .img-toolbar .admin-toolbar-btn,
.admin-body .img-toolbar button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--toolbar-btn-size);
    height: var(--toolbar-btn-size);
    min-width: var(--toolbar-btn-size);
    min-height: var(--toolbar-btn-size);
    padding: 0;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
    transition: background 0.15s, color 0.15s;
}

.admin-body .img-toolbar .admin-toolbar-btn:hover,
.admin-body .img-toolbar button:hover {
    background: var(--toolbar-btn-hover);
}

.admin-body .img-toolbar .admin-toolbar-btn.is-active,
.admin-body .img-toolbar button.is-active {
    background: var(--toolbar-btn-active);
    color: var(--primary);
}

.admin-body .img-toolbar .admin-toolbar-text-position {
    display: inline-flex;
    align-items: center;
    flex: 0 1 auto;
    flex-wrap: wrap;
    gap: var(--toolbar-gap);
    max-width: 100%;
    padding: 2px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--toolbar-bg);
    box-sizing: border-box;
}

.admin-body .img-toolbar .admin-toolbar-text-position[hidden] {
    display: none;
}

.admin-body .img-toolbar .admin-toolbar-linked-image {
    display: inline-flex;
    align-items: center;
    gap: var(--toolbar-gap);
}

.admin-body .img-toolbar .admin-toolbar-linked-image[hidden] {
    display: none;
}

.admin-body .img-toolbar .admin-toolbar-linked-layout {
    display: inline-flex;
    align-items: center;
    gap: var(--toolbar-gap);
}

.admin-body .img-toolbar .admin-toolbar-btn--labeled {
    width: auto;
    padding: 0 0.55rem;
    gap: 0.3rem;
    white-space: nowrap;
}

.admin-body .img-toolbar .admin-toolbar-btn-label {
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
}

.admin-body .img-toolbar .admin-toolbar-text-position .admin-toolbar-btn.is-active,
.admin-body .img-toolbar .admin-toolbar-text-position button.is-active {
    background: var(--toolbar-btn-active);
    color: var(--primary);
}

.admin-body .img-toolbar .admin-toolbar-text-position .admin-toolbar-btn:disabled,
.admin-body .img-toolbar .admin-toolbar-text-position button:disabled,
.admin-body .img-toolbar .admin-toolbar-text-position button[aria-disabled="true"],
.admin-body .img-toolbar .admin-toolbar-text-position button.is-disabled {
    background: transparent;
    color: var(--text-muted);
    cursor: not-allowed;
    opacity: 0.5;
}

.admin-body .img-toolbar .admin-toolbar-text-position .admin-toolbar-btn:disabled:hover,
.admin-body .img-toolbar .admin-toolbar-text-position button:disabled:hover,
.admin-body .img-toolbar .admin-toolbar-text-position button[aria-disabled="true"]:hover,
.admin-body .img-toolbar .admin-toolbar-text-position button.is-disabled:hover {
    background: transparent;
}

.admin-body .img-toolbar .admin-toolbar-text-position .admin-toolbar-btn:focus-visible,
.admin-body .img-toolbar .admin-toolbar-text-position button:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.admin-body .img-toolbar .admin-toolbar-sep {
    display: inline-block;
    width: 1px;
    height: 24px;
    background: var(--article-border, var(--border));
    margin: 0 4px;
    flex-shrink: 0;
}

/* Size % composite — input + unit coupled as one control (ETB-07) */
.admin-toolbar-size {
    display: inline-flex;
    align-items: center;
    height: var(--toolbar-btn-size);
    padding: 0 6px 0 4px;
    border-radius: 4px;
    box-sizing: border-box;
}

.admin-toolbar-size input[type="number"] {
    width: 2.5rem;
    height: 100%;
    margin: 0;
    padding: 0 2px;
    border: none;
    background: transparent;
    color: var(--text);
    font-size: 0.8rem;
    font-family: inherit;
    text-align: right;
    box-sizing: border-box;
    -moz-appearance: textfield;
    appearance: textfield;
}

.admin-toolbar-size input[type="number"]::-webkit-outer-spin-button,
.admin-toolbar-size input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.admin-toolbar-size::after {
    content: '%';
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted);
    line-height: 1;
}

.admin-body .img-toolbar .admin-toolbar-btn:focus-visible,
.admin-body .img-toolbar .admin-toolbar-size input[type="number"]:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

/* --- Responsive --- */
@media (max-width: 900px) {
    .admin-metadata-grid--identity,
    .admin-metadata-options,
    .admin-metadata-options:has(#page-group) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .admin-topbar-inner {
        padding: 0.6rem 1rem;
    }

    .admin-container--editor-preview,
    .admin-editor-section.editorial-section {
        width: 100%;
        max-width: 100%;
    }

    .admin-brand-mini span {
        display: none;
    }

    .admin-page {
        padding: 1.25rem var(--admin-content-pad) 2rem;
    }

    .admin-page-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-page-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .admin-metadata-grid--identity,
    .admin-metadata-options,
    .admin-metadata-options:has(#page-group) {
        grid-template-columns: 1fr;
    }

    .admin-editor-compose--preview {
        max-height: calc(100dvh - var(--admin-topbar-height) - 10rem);
        min-height: 360px;
    }

    .admin-editor-compose {
        max-height: calc(100dvh - var(--admin-topbar-height) - 7rem);
        min-height: 320px;
    }

    .admin-editor-area {
        padding: 1rem;
    }

    .admin-toolbar-sep {
        display: none;
    }

    .admin-body .img-toolbar {
        max-width: calc(100vw - 1rem);
    }

    .admin-body .img-toolbar .admin-toolbar-text-position {
        flex: 1 1 100%;
        justify-content: center;
    }

    .admin-login-card {
        padding: 1.5rem 1.25rem;
    }
}

/* Media and alternative-text dialogs */
.admin-media-dialog {
    width: min(calc(100% - 2rem), 36rem);
    max-width: 100%;
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: 0;
    overflow: auto;
    color: var(--ink, var(--text));
    background: var(--surface);
    border: 1px solid var(--hairline, var(--border));
    border-radius: 12px;
    box-shadow: var(--shadow-md);
}

.admin-media-dialog::backdrop {
    background: rgba(29, 29, 31, 0.42);
}

.admin-media-dialog form {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 4vw, 1.75rem);
}

.admin-media-dialog h2 {
    color: var(--ink, var(--text));
    font-family: 'Outfit', sans-serif;
    font-size: 1.35rem;
}

.admin-media-dialog input,
.admin-media-dialog textarea {
    width: 100%;
    border-color: var(--hairline, var(--border));
    background: var(--surface);
    color: var(--ink, var(--text));
}

.admin-media-dialog input:focus-visible,
.admin-media-dialog textarea:focus-visible,
.admin-image-alt-options input:focus-visible {
    outline: 2px solid var(--link, var(--primary));
    outline-offset: 2px;
}

.admin-media-dialog__error {
    min-height: 1.4em;
    color: var(--danger, #b00020);
    font-weight: 600;
}

.admin-media-dialog__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.admin-media-dialog--carousel {
    width: min(calc(100% - 2rem), 40rem);
}

.admin-carousel-slides {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.85rem;
}

.admin-carousel-slides__item {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--hairline, var(--border));
    border-radius: 10px;
    background: var(--bg, var(--surface-muted));
}

.admin-carousel-slides__preview img {
    display: block;
    width: 100%;
    height: 5.5rem;
    object-fit: cover;
    border-radius: 8px;
}

.admin-carousel-slides__fields {
    display: grid;
    gap: 0.55rem;
}

.admin-carousel-slides__fields label {
    display: grid;
    gap: 0.3rem;
    font-size: 0.85rem;
    color: var(--ink-secondary, var(--text-muted));
}

.admin-image-alt-options {
    display: grid;
    gap: 0.55rem;
    padding: 0;
    border: 0;
}

.admin-image-alt-options legend {
    margin-bottom: 0.55rem;
    color: var(--ink-secondary, var(--text-muted));
    font-size: 0.85rem;
    font-weight: 600;
}

.admin-image-alt-options label {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.admin-image-alt-options input {
    width: auto;
    margin-top: 0.3rem;
}

.admin-editor-area figure.media-embed {
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.admin-editor-area figure.media-embed:focus-visible {
    outline: 2px solid var(--link, var(--primary));
    outline-offset: 4px;
}

.admin-editor-area figure.media-embed--draft,
.admin-editor-area figure.image-carousel--draft {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8rem;
    margin: 1rem 0;
    padding: 1rem 1.25rem;
    border: 2px dashed var(--border, #c5c0b6);
    background: color-mix(in srgb, var(--surface-muted, #f0eee8) 85%, transparent);
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.admin-editor-area figure.media-embed--draft:focus-visible,
.admin-editor-area figure.image-carousel--draft:focus-visible {
    outline: 2px solid var(--link, var(--primary));
    outline-offset: 4px;
    border-color: var(--link, var(--primary));
}

.admin-editor-area .media-embed__draft-label,
.admin-editor-area .image-carousel__draft-label {
    margin: 0;
    color: var(--ink-secondary, var(--text-muted, #5c584f));
    font-size: 0.95rem;
    font-weight: 600;
    text-align: center;
}

@media (max-width: 639px) {
    .admin-media-dialog {
        width: calc(100% - 1rem);
        max-height: calc(100dvh - 1rem);
    }

    .admin-media-dialog__actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .admin-media-dialog__actions .admin-btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-editor-area figure.media-embed,
    .admin-media-dialog {
        transition: none;
        animation: none;
    }
}

/* --- Unified content administration --- */
.admin-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
    gap: 1rem;
}

.admin-hub-group + .admin-hub-group {
    margin-top: clamp(2rem, 5vw, 3.5rem);
}

.admin-hub-group .admin-section-head {
    margin-bottom: 1rem;
}

.admin-hub-grid--operation {
    grid-template-columns: minmax(0, 1fr);
    max-width: 36rem;
}

.admin-hub-card,
.admin-collection {
    background: var(--surface);
    border: 1px solid var(--hairline);
    border-radius: 12px;
}

.admin-hub-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.admin-hub-card .admin-section-title {
    margin-top: 0.4rem;
    color: var(--ink);
}

.admin-hub-card .admin-page-lead {
    margin-bottom: 1.25rem;
    color: var(--ink-secondary);
}

.admin-hub-card .admin-page-actions {
    margin-top: auto;
}

.admin-hub-card a:focus-visible,
.admin-page-actions .admin-btn:focus-visible,
.admin-inline-create input:focus-visible,
.admin-inline-create .admin-btn:focus-visible,
.admin-collection a:focus-visible,
.admin-collection button:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 3px;
}

.admin-collection {
    margin-bottom: 1.25rem;
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.admin-collection .admin-section-head {
    align-items: flex-end;
    margin-bottom: 1rem;
}

.admin-collection .admin-page-lead {
    color: var(--ink-secondary);
}

.admin-collection .admin-page-list {
    border-top: 1px solid var(--hairline);
}

.admin-collection .admin-page-item,
.admin-collection .admin-page-item.is-child {
    background: transparent;
    padding-left: 0;
    padding-right: 0;
    border-bottom-color: var(--hairline);
}

.admin-collection .admin-page-item:hover,
.admin-collection .admin-page-item.is-child:hover {
    background: var(--fill-subtle);
}

.admin-empty-state {
    margin: 0;
    padding: 1rem;
    color: var(--ink-secondary);
    background: var(--bg);
    border: 1px dashed var(--hairline);
    border-radius: 8px;
}

.admin-inline-create {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    column-gap: 0.75rem;
    row-gap: 0.45rem;
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    background: var(--bg);
    border: 1px solid var(--hairline);
    border-radius: 8px;
}

.admin-inline-create label {
    grid-column: 1 / -1;
    color: var(--ink);
    font-size: 0.875rem;
    font-weight: 600;
}

.admin-inline-create input[type="text"],
.admin-inline-create input:not([type]) {
    min-width: 0;
    width: 100%;
    min-height: 2.5rem;
    padding: 0.55rem 0.8rem;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--hairline);
    border-radius: 8px;
    box-sizing: border-box;
}

.admin-inline-create .admin-btn {
    width: auto;
    min-height: 2.5rem;
    padding: 0.45rem 1rem;
    white-space: nowrap;
    align-self: stretch;
}

.admin-inline-create .admin-field-hint {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--ink-secondary);
    font-size: 0.8125rem;
    line-height: 1.35;
}

.admin-collection-thumb {
    width: 2.5rem;
    height: 2rem;
    min-width: 2.5rem;
    min-height: 2rem;
    flex-shrink: 0;
    display: block;
    margin-right: 0.45rem;
    object-fit: cover;
    object-position: center;
    background: var(--bg);
    border: 1px solid var(--hairline);
    border-radius: 8px;
    box-sizing: border-box;
}

.admin-collection-thumb--default {
    object-fit: contain;
    padding: 0.15rem;
}

.admin-collection-thumb--placeholder {
    display: inline-grid;
    place-items: center;
    color: var(--ink-secondary);
    font-size: 0.6875rem;
    font-weight: 600;
}

.admin-collection .admin-page-item-title {
    min-width: 0;
}

.admin-collection .admin-page-item-meta {
    display: inline-block;
    margin-left: 0.4rem;
    color: var(--ink-secondary);
}

.admin-collection .admin-page-actions form {
    margin: 0;
}

.admin-collection-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
}

.admin-collection-row__identity,
.admin-collection-row__meta,
.admin-collection-row__actions {
    min-width: 0;
}

.admin-collection-row__identity {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.admin-collection-row__identity .admin-page-item-title {
    overflow-wrap: anywhere;
}

.admin-collection-row__meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: var(--ink-secondary);
}

.admin-status-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.75rem;
    padding: 0.2rem 0.6rem;
    color: var(--ink);
    background: var(--fill-subtle);
    border: 1px solid var(--hairline);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    transition: border-color 0.18s, background-color 0.18s, color 0.18s;
}

.admin-status-chip[data-publication-status="publicado"] {
    color: var(--ink);
    background: var(--fill-subtle);
    border-color: var(--ink-secondary);
    border-style: solid;
}

.admin-status-chip[data-publication-status="rascunho"] {
    color: var(--ink-secondary);
    background: var(--surface);
    border-color: var(--ink-secondary);
    border-style: dashed;
}

.admin-field-subordinate[data-publication-control] {
    margin-top: 0.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--hairline);
}

.admin-field-subordinate[data-publication-control] select:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.admin-btn.is-disabled,
.admin-btn[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.6;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .admin-status-chip,
    .admin-field-subordinate[data-publication-control] {
        transition: none;
    }
}

.admin-empty-state {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    gap: 0.5rem;
}

@media (max-width: 768px) {
    .admin-hub-grid {
        grid-template-columns: 1fr;
    }

    .admin-hub-card,
    .admin-collection {
        padding: 1rem;
    }

    .admin-inline-create {
        grid-template-columns: 1fr;
    }

    .admin-inline-create .admin-btn {
        width: 100%;
    }

    .admin-collection .admin-page-actions {
        justify-content: flex-start;
    }

    .admin-collection-row {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .admin-collection-row__meta {
        justify-content: flex-start;
    }

    .admin-collection-row__actions {
        justify-content: flex-start;
    }

    .admin-field-subordinate[data-publication-control] {
        width: 100%;
    }
}

@media (max-width: 420px) {
    .admin-page-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-page-actions .admin-btn,
    .admin-page-actions form,
    .admin-page-actions form .admin-btn {
        width: 100%;
    }
}

@media (max-width: 390px) {
    .admin-hub-grid {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .admin-hub-card {
        min-width: 0;
    }
}

/* --- Admin event form --- */
.admin-event-form { display: grid; gap: 1.25rem; max-width: 58rem; min-width: 0; }
.admin-event-banner-field { display: grid; gap: 0.75rem; }
.admin-event-banner-field__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}
.admin-event-banner-field__file { display: none; }
.admin-file-field { display: grid; gap: 0.75rem; }
.admin-doc-drop-field { display: grid; gap: 0.65rem; }
.admin-doc-dropzone {
    display: grid;
    gap: 0.25rem;
    align-content: center;
    min-height: 5.5rem;
    padding: 0.9rem 1rem;
    border: 1.5px dashed var(--hairline);
    border-radius: 10px;
    background: var(--surface-muted, var(--bg));
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.admin-doc-dropzone:hover,
.admin-doc-dropzone:focus,
.admin-doc-dropzone.is-dragover {
    border-color: var(--link);
    background: color-mix(in srgb, var(--link) 6%, var(--surface));
    outline: none;
}
.admin-doc-dropzone.has-file {
    border-style: solid;
    border-color: var(--hairline);
}
.admin-doc-dropzone-title {
    margin: 0;
    color: var(--ink);
    font-weight: 600;
}
.admin-doc-dropzone-sub {
    margin: 0;
    color: var(--ink-secondary);
    font-size: 0.875rem;
    overflow-wrap: anywhere;
}
.admin-form-section { min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--hairline); border-radius: 12px; background: var(--surface); }
.admin-form-section legend { padding: 0 0.5rem; color: var(--ink); font-family: Outfit, sans-serif; font-size: 1.25rem; font-weight: 700; overflow-wrap: anywhere; word-break: break-word; }
.admin-form-section .admin-form-group { margin-bottom: 1rem; }
.admin-form-section .admin-form-group:last-child { margin-bottom: 0; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-field-hint { margin: 0.35rem 0 0; color: var(--ink-secondary); font-size: 0.875rem; }
.admin-form-label { display: block; margin-bottom: 0.5rem; color: var(--ink); font-weight: 600; }
.admin-status-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.admin-status-options label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.25rem 0.5rem; min-height: 44px; padding: 0.75rem; border: 1px solid var(--hairline); border-radius: 8px; }
.admin-status-options label span { grid-column: 2; color: var(--ink-secondary); }
.admin-rich-editor__surface {
    min-height: 14rem;
    min-width: 0;
    max-width: 100%;
    padding: 1rem;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    overflow-wrap: anywhere;
    word-break: break-word;
    font-family: Inter, system-ui, sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}

.admin-rich-editor__surface p,
.admin-rich-editor__surface div {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}

.admin-rich-editor__surface h1 {
    margin: 0 0 0.65rem;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.admin-rich-editor__surface h2 {
    margin: 0 0 0.55rem;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.015em;
}

.admin-rich-editor__surface h3 {
    margin: 0 0 0.45rem;
    font-family: Outfit, Inter, system-ui, sans-serif;
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.3;
}
.admin-event-form input,
.admin-event-form textarea {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.admin-event-form .admin-form-group textarea,
.admin-composer-row .admin-form-group textarea {
    width: 100%;
    min-height: 8.5rem;
    line-height: 1.55;
    resize: vertical;
}

.admin-input-date,
.admin-input-time {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}
.admin-form-error-summary {
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--danger);
    border-radius: 12px;
    background: color-mix(in srgb, var(--danger) 6%, var(--surface));
    color: var(--danger);
}

.admin-form-error-summary h2 {
    margin: 0 0 0.5rem;
    color: var(--danger);
    font-size: 1.05rem;
}

.admin-form-error-summary p {
    margin: 0 0 0.65rem;
    color: var(--danger);
}

.admin-form-error-summary ul {
    margin: 0;
    padding-left: 1.15rem;
}

.admin-form-error-summary li + li {
    margin-top: 0.35rem;
}

.admin-form-error-summary a {
    color: var(--danger);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.admin-form-error-summary a:hover,
.admin-form-error-summary a:focus-visible {
    color: color-mix(in srgb, var(--danger) 82%, var(--ink));
}

.admin-form-error-summary a:focus-visible {
    outline: 2px solid var(--danger);
    outline-offset: 2px;
}
.admin-event-form__actions { display: flex; gap: 0.75rem; }
.admin-event-form__actions--sticky {
    position: sticky;
    bottom: 0;
    z-index: 5;
    margin-top: 0.5rem;
    padding: 0.85rem 0;
    background: linear-gradient(180deg, transparent, var(--bg) 28%);
    border-top: 1px solid var(--hairline);
    justify-content: space-between;
}

.admin-event-workspace-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.25rem;
    border: 1px solid var(--hairline);
    border-radius: 10px;
    background: var(--surface);
}

.admin-event-workspace-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}
.admin-event-workspace-toolbar__actions {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-left: auto;
}
.admin-autosave-status {
    margin: 0;
    font-size: 0.85rem;
    color: var(--ink-secondary);
}
.admin-autosave-status[data-state="saving"] { color: var(--ink-secondary); }
.admin-autosave-status[data-state="saved"] { color: var(--ink); }
.admin-autosave-status[data-state="hint"] { color: var(--ink-secondary); font-style: italic; }
.admin-autosave-status[data-state="error"] { color: var(--danger); font-weight: 600; }
.admin-autosave-status[data-state="expired"] { color: var(--danger); font-weight: 600; }

.admin-event-workspace-tab {
    min-height: 44px;
    padding: 0.55rem 0.9rem;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--ink-secondary);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.admin-event-workspace-tab[aria-selected="true"] {
    border-color: var(--hairline);
    background: var(--bg);
    color: var(--ink);
}

.admin-event-workspace-panels {
    display: grid;
    gap: 1.25rem;
}

.admin-event-workspace-panel {
    display: grid;
    gap: 1.25rem;
}

.admin-event-form[data-event-workspace-bound="true"] .admin-event-workspace-panel[hidden] {
    display: none;
}

.admin-composer-preset {
    display: grid;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.admin-publish-checklist {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--hairline);
    border-radius: 10px;
    background: var(--bg);
}

.admin-publish-checklist__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
}

.admin-publish-checklist__list {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.admin-publish-checklist__list [data-ok="true"] { color: var(--ink); }
.admin-publish-checklist__list [data-ok="false"] { color: var(--danger); }

.admin-event-preview .admin-btn.is-disabled,
.admin-event-preview .admin-btn[aria-disabled="true"] {
    opacity: 0.55;
    pointer-events: none;
}

@media (max-width: 390px) {
    .admin-form-grid,
    .admin-status-options { grid-template-columns: minmax(0, 1fr); }
    .admin-form-section { padding: 1rem; }
    .admin-event-form__actions { align-items: stretch; flex-direction: column; }
    .admin-event-form__actions .admin-btn { width: 100%; min-height: 44px; }
}

/* --- Event composer --- */
.admin-composer-section {
    display: grid;
    gap: 1rem;
    border-color: var(--hairline);
    background: var(--surface);
}

.admin-composer-collection {
    display: grid;
    gap: 0.75rem;
    min-width: 0;
}

.admin-composer-row {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    background: var(--surface);
}

.admin-composer-row__head,
.admin-composer-subsection__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.admin-composer-row__title,
.admin-composer-subsection h2 {
    margin: 0;
    color: var(--ink);
    font-family: Outfit, sans-serif;
    font-size: 1rem;
    line-height: 1.25;
}

.admin-composer-row__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.admin-composer-row button {
    min-height: 44px;
    color: var(--ink);
    border-color: var(--hairline);
    background: var(--surface);
}

.admin-composer-section > .admin-btn {
    min-height: 44px;
    justify-self: start;
}

.admin-composer-row button:hover,
.admin-composer-section > .admin-btn:hover {
    background: var(--fill-subtle);
}

.admin-composer-row button:focus-visible,
.admin-composer-section > .admin-btn:focus-visible,
.admin-composer-toggle input:focus-visible + label {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.admin-composer-subsection {
    display: grid;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--hairline);
}

.admin-composer-subsection__head p,
.admin-composer-toggle .admin-field-hint {
    margin: 0.25rem 0 0;
    color: var(--ink-secondary);
}

.admin-composer-check,
.admin-composer-toggle {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.admin-composer-check input[type="checkbox"],
.admin-composer-toggle input[type="checkbox"] {
    width: auto;
    margin: 0.1rem 0 0;
    padding: 0;
    border: 0;
    accent-color: var(--link);
    cursor: pointer;
}

.admin-composer-check label,
.admin-composer-toggle label {
    display: inline;
    margin-bottom: 0;
    font-weight: 600;
    color: var(--ink);
    cursor: pointer;
}

.admin-extension-fieldset {
    border: 0;
    margin: 0 0 1rem;
    padding: 0;
    min-width: 0;
}

.admin-extension-fieldset > legend {
    padding: 0;
    margin: 0 0 0.45rem;
    color: var(--ink);
    font-size: 0.88rem;
    font-weight: 600;
}

.admin-extension-options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.admin-extension-option {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 44px;
    margin: 0;
    padding: 0.35rem 0.75rem;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font-weight: 600;
    cursor: pointer;
}

.admin-extension-option:has(input:checked) {
    border-color: var(--link);
    background: var(--fill-subtle);
}

.admin-extension-option input {
    width: auto;
    margin: 0;
    accent-color: var(--link);
}

.admin-extension-option:focus-within {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.admin-composer-toggle .admin-field-hint {
    flex-basis: 100%;
}

.admin-composer-section.is-submission-inactive [data-composer-submission-children],
.admin-composer-section.is-submission-inactive .admin-composer-subsection,
.admin-composer-section.is-submission-inactive [data-composer-submission-settings],
.admin-composer-section.is-submission-inactive .is-hidden {
    display: none;
}

.admin-composer-section.is-submission-active {
    box-shadow: inset 3px 0 0 var(--link);
}

@media (max-width: 390px) {
    .admin-composer-row__head,
    .admin-composer-subsection__head {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-composer-row__actions,
    .admin-composer-subsection__head .admin-btn {
        width: 100%;
    }

    .admin-composer-row__actions .admin-btn {
        flex: 1 1 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-composer-row,
    .admin-composer-section {
        transition: none;
    }
}

/* --- Responsive admin shell --- */
.admin-nav-toggle {
    display: none;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.admin-topnav .admin-nav-external {
    color: var(--link);
}

.admin-topnav .admin-nav-session {
    margin-left: 0.35rem;
    border-left: 1px solid var(--hairline);
    color: var(--ink-secondary);
}

.admin-nav-toggle:focus-visible,
.admin-topnav a:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 2px;
}

.admin-nav-toggle:hover,
.admin-topnav a:hover {
    background: var(--fill-subtle);
}

@media (max-width: 768px) {
    .admin-topbar-inner {
        align-items: center;
    }

    .admin-nav-toggle {
        display: inline-flex;
    }

    .admin-topnav {
        flex: 0 0 100%;
        align-items: stretch;
        flex-direction: column;
        gap: 0.25rem;
        padding: 0.5rem;
        border: 1px solid var(--hairline);
        border-radius: 12px;
        background: var(--surface);
    }

    html.js .admin-topnav:not(.is-open) {
        display: none;
    }

    .admin-topnav a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 0.65rem 0.75rem;
    }

    .admin-topnav .admin-nav-session {
        margin-left: 0;
        border-left: 0;
        border-top: 1px solid var(--hairline);
    }
}

@media (min-width: 769px) {
    .admin-topnav[hidden] {
        display: flex;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-nav-toggle,
    .admin-topnav,
    .admin-topnav a {
        transition: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-hub-card,
    .admin-collection,
    .admin-page-item {
        transition: none;
    }
}

/* --- Editorial workspace structure --- */
.admin-editor-command-bar {
    position: sticky;
    top: var(--admin-topbar-height, 0);
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding: 0.85rem 0;
    background: var(--bg);
    border-bottom: 1px solid var(--hairline);
    max-height: 12rem;
    overflow: hidden;
    transition: max-height 0.2s ease, padding 0.2s ease, margin 0.2s ease, opacity 0.2s ease, border-width 0.2s ease;
}

.admin-editor-command-bar.is-minimized {
    max-height: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-bottom-width: 0;
    opacity: 0;
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .admin-editor-command-bar {
        transition: none;
    }
}

.admin-editor-command-bar__context {
    min-width: 0;
}

.admin-editor-command-bar .admin-page-title {
    margin: 0.35rem 0 0;
}

.admin-save-status {
    color: var(--ink-secondary);
    font-size: 0.875rem;
    font-weight: 600;
}

.admin-save-status.is-dirty,
.admin-save-status.is-saving {
    color: var(--ink);
}

.admin-save-status.is-error,
.admin-field-error {
    color: var(--danger);
}

.admin-field-error {
    margin: 0.4rem 0 0;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.admin-form-group input[aria-invalid="true"],
.admin-form-group select[aria-invalid="true"],
.admin-form-group textarea[aria-invalid="true"],
.admin-event-form input[aria-invalid="true"],
.admin-event-form select[aria-invalid="true"],
.admin-event-form textarea[aria-invalid="true"] {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent);
}

.admin-form-group input[aria-invalid="true"]:focus,
.admin-form-group select[aria-invalid="true"]:focus,
.admin-form-group textarea[aria-invalid="true"]:focus,
.admin-event-form input[aria-invalid="true"]:focus,
.admin-event-form select[aria-invalid="true"]:focus,
.admin-event-form textarea[aria-invalid="true"]:focus {
    border-color: var(--danger);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 18%, transparent);
}

.admin-editor-metadata,
.admin-editor-content {
    min-width: 0;
    margin-bottom: 1.5rem;
}

.admin-editor-metadata .admin-section-head,
.admin-editor-content > .admin-section-head {
    margin-bottom: 0.75rem;
}

.admin-editor-metadata .admin-form-group {
    margin-bottom: 0;
}

.admin-form-group--readonly {
    color: var(--ink-secondary);
}

.admin-editor-area:empty::before {
    content: attr(data-placeholder);
    color: var(--ink-secondary);
    pointer-events: none;
}

.admin-editor-area:focus-visible {
    outline: 2px solid var(--link);
    outline-offset: 3px;
}

/* Mobile editorial workspace reachability */
@media (max-width: 768px) {
    .admin-editor-section-layout.editorial-section-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--admin-aside-gap);
    }

    .admin-editor-section-body.editorial-section-body,
    .admin-editor-compose--preview,
    .admin-editor-compose,
    .admin-editor-toolbar {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .admin-editor-toolbar-row {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        flex-wrap: wrap;
    }

    .admin-toolbar-group {
        max-width: 100%;
        min-width: 0;
        flex-wrap: wrap;
    }

    /* ETB-21: touch targets ≥44px for toolbar buttons */
    .admin-editor-toolbar,
    .img-toolbar {
        --toolbar-btn-size: 44px;
    }

    .admin-toolbar-btn {
        min-width: 44px;
        min-height: 44px;
    }

    /* ETB-19..22: compact primary row + Mais overflow (no horizontal-scroll primary access) */
    .admin-toolbar-secondary {
        display: none !important;
    }

    .admin-toolbar-more {
        display: inline-flex;
    }
}

@media (max-width: 390px) {
    .admin-editor-command-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-editor-command-bar .admin-editor-actions,
    .admin-editor-command-bar .admin-btn {
        width: 100%;
    }

    .admin-editor-content,
    .admin-editor-preview,
    .admin-editor-compose,
    .admin-editor-toolbar {
        max-width: 100%;
        min-width: 0;
    }
}

/* --- Typed admin feedback --- */
.admin-feedback {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    width: 100%;
    margin-bottom: 1rem;
    padding: 0.875rem 1rem;
    border: 1px solid var(--hairline);
    border-radius: 8px;
    background: var(--surface);
    color: var(--ink);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.admin-feedback__message {
    min-width: 0;
}

.admin-feedback--success {
    border-color: var(--ink-secondary);
    background: var(--fill-subtle);
    color: var(--ink);
}

.admin-feedback--error {
    border-color: var(--danger);
    color: var(--danger);
}

/* --- Admin event list --- */
.admin-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.admin-event-list,
.admin-event-form {
    max-width: 100%;
    min-width: 0;
}

.admin-event-header__note,
.admin-event-row__date {
    color: var(--ink-secondary);
}

.admin-event-header__note {
    max-width: 68ch;
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-event-filters { display: grid; grid-template-columns: minmax(12rem, 1fr) auto; gap: 0.75rem 1rem; align-items: end; margin-bottom: 1rem; }
.admin-event-filters > label { grid-column: 1; color: var(--ink); font-weight: 600; }
.admin-event-filters input { grid-column: 1; min-height: 44px; border: 1px solid var(--hairline); border-radius: 8px; background: var(--surface); color: var(--ink); padding: 0.65rem 0.75rem; }
.admin-event-filter-chips { grid-column: 2; grid-row: 1 / span 2; display: flex; gap: 0.5rem; }
.admin-event-filter-chips [aria-pressed="true"] { background: var(--fill-strong); color: var(--on-fill); }
.admin-event-result-count { grid-column: 1 / -1; margin: 0; color: var(--ink-secondary); }
.admin-event-list [hidden] { display: none !important; }

.admin-article-filters { display: grid; gap: 0.5rem; margin: 0 0 1rem; max-width: 28rem; }
.admin-article-filters > label { color: var(--ink); font-weight: 600; }
.admin-article-filters input { min-height: 44px; border: 1px solid var(--hairline); border-radius: 8px; background: var(--surface); color: var(--ink); padding: 0.65rem 0.75rem; }
.admin-article-list [hidden] { display: none !important; }

.admin-event-table-wrap {
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    border: 1px solid var(--hairline);
    border-radius: 12px;
    background: var(--surface);
}

.admin-event-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.admin-event-table th,
.admin-event-table td {
    padding: 1rem;
    border-bottom: 1px solid var(--hairline);
    text-align: left;
    vertical-align: top;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-event-table th.admin-event-col--status,
.admin-event-table td.admin-event-col--status {
    text-align: center;
    vertical-align: middle;
}

.admin-event-table tbody tr:last-child td { border-bottom: 0; }
.admin-event-row__title,
.admin-event-row__date {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.admin-event-row__date { margin-top: 0.25rem; }
.admin-event-row__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.admin-event-row .is-at-capacity { font-weight: 700; }
.admin-page-footer { margin-top: 1.5rem; }

.admin-confirm-dialog {
    box-sizing: border-box;
    max-width: min(32rem, calc(100% - 2rem));
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: 0;
    overflow: auto;
    border: 1px solid var(--hairline);
    border-radius: 12px;
    background: var(--surface);
    color: var(--ink);
}

.admin-confirm-dialog::backdrop { background: color-mix(in srgb, var(--ink) 45%, transparent); }
.admin-confirm-dialog__body { padding: 1.25rem; }
.admin-confirm-dialog__body h2 { margin-top: 0; }
.admin-confirm-dialog__actions { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 1.25rem; }
.admin-confirm-dialog button:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }

@media (max-width: 768px) {
    .admin-event-filters { grid-template-columns: minmax(0, 1fr); }
    .admin-event-filter-chips { grid-column: 1; grid-row: auto; flex-wrap: wrap; }
    .admin-event-table-wrap { overflow: visible; border: 0; background: transparent; }
    .admin-event-table,
    .admin-event-table tbody,
    .admin-event-table tr,
    .admin-event-table td { display: block; width: 100%; }
    .admin-event-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .admin-event-row { margin-bottom: 1rem; border: 1px solid var(--hairline); border-radius: 12px; background: var(--surface); }
    .admin-event-table td { display: grid; grid-template-columns: minmax(7rem, 0.35fr) minmax(0, 1fr); gap: 0.75rem; border-bottom: 1px solid var(--hairline); }
    .admin-event-table td::before { content: attr(data-label); color: var(--ink-secondary); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
    .admin-event-table td.admin-event-col--status {
        text-align: start;
        align-items: center;
    }
    .admin-event-row__actions .admin-btn { min-height: 44px; }
}

@media (max-width: 390px) {
    .admin-event-table td { grid-template-columns: minmax(0, 1fr); }
    .admin-event-row__actions,
    .admin-event-row__actions form,
    .admin-event-row__actions .admin-btn { width: 100%; }
}
