:root {
    --brand: #163b63;
    --brand-strong: #0d2948;
    --brand-muted: #c9d5e2;
    --brand-panel: #eef2f6;
    --sidebar-item: #183f68;
    --sidebar-active: #1b466f;
    --slate-50: #f8fafc;
    --slate-100: #f1f5f9;
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;
    --slate-900: #0f172a;
    --slate-950: #020617;
}

* { box-sizing: border-box; }
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

html {
    scrollbar-gutter: stable;
}

body { margin: 0; font-family: "Aptos", "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
table { border-collapse: collapse; }
input, select, textarea, button { font: inherit; }

.min-h-screen { min-height: 100vh; }
.min-w-0 { min-width: 0; }
.w-full { width: 100%; }
.w-72 { width: 18rem; }
.max-w-md { max-width: 28rem; }
.max-w-xl { max-width: 36rem; }
.max-w-3xl { max-width: 48rem; }
.min-w-full { min-width: 100%; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.hidden { display: none; }
.block { display: block; }
.flex-1 { flex: 1 1 0%; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.place-items-center { place-items: center; }
.overflow-hidden { overflow: hidden; }
.sticky { position: sticky; }
.top-0 { top: 0; }
.z-20 { z-index: 20; }

.gap-2 { gap: .5rem; }
.gap-3 { gap: .75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.space-y-1 > * + * { margin-top: .25rem; }
.space-y-3 > * + * { margin-top: .75rem; }
.space-y-5 > * + * { margin-top: 1.25rem; }

.m-0 { margin: 0; }
.mt-1 { margin-top: .25rem; }
.mt-2 { margin-top: .5rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-8 { margin-bottom: 2rem; }
.px-2\.5 { padding-left: .625rem; padding-right: .625rem; }
.px-3 { padding-left: .75rem; padding-right: .75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.py-1 { padding-top: .25rem; padding-bottom: .25rem; }
.py-1\.5 { padding-top: .375rem; padding-bottom: .375rem; }
.py-2 { padding-top: .5rem; padding-bottom: .5rem; }
.py-2\.5 { padding-top: .625rem; padding-bottom: .625rem; }
.py-3 { padding-top: .75rem; padding-bottom: .75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.p-3 { padding: .75rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }

.rounded { border-radius: .25rem; }
.rounded-md { border-radius: .5rem; }
.rounded-lg { border-radius: .75rem; }
.border { border: 1px solid var(--slate-200); }
.border-b { border-bottom: 1px solid var(--slate-200); }
.border-dashed { border-style: dashed; }
.border-slate-100 { border-color: var(--slate-100); }
.border-slate-200 { border-color: var(--slate-200); }
.border-slate-300 { border-color: var(--slate-300); }
.border-red-200 { border-color: #fecaca; }
.border-emerald-200 { border-color: #a7f3d0; }
.border-white\/10 { border-color: rgba(255,255,255,.1); }
.shadow-sm { box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.ring-1 { box-shadow: 0 0 0 1px rgba(15,23,42,.08); }

.bg-white { background: #fff; }
.bg-white\/95 { background: rgba(255,255,255,.95); }
.bg-slate-50 { background: var(--slate-50); }
.bg-slate-100 { background: var(--slate-100); }
.bg-blue-50 { background: #eff6ff; }
.bg-emerald-50 { background: #ecfdf5; }
.bg-red-50 { background: #fef2f2; }
.bg-\[\#edf3f8\] { background: #edf3f8; }
.bg-\[\#0f2f57\] { background: var(--brand); }

.text-white { color: #fff; }
.text-slate-500 { color: var(--slate-500); }
.text-slate-600 { color: var(--slate-600); }
.text-slate-700 { color: var(--slate-700); }
.text-slate-900 { color: var(--slate-900); }
.text-slate-950 { color: var(--slate-950); }
.text-blue-100 { color: #dbeafe; }
.text-blue-700 { color: #1d4ed8; }
.text-emerald-800 { color: #065f46; }
.text-red-600 { color: #dc2626; }
.text-red-800 { color: #991b1b; }
.text-\[\#0f2f57\] { color: var(--brand); }

.text-xs { font-size: .75rem; line-height: 1rem; }
.text-sm { font-size: .875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 700; }
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: .025em; }
.leading-6 { line-height: 1.5rem; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.break-all { word-break: break-all; }
.text-safe {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.divide-y > * + * { border-top: 1px solid var(--slate-200); }
.divide-slate-100 > * + * { border-color: var(--slate-100); }
.divide-slate-200 > * + * { border-color: var(--slate-200); }
.cursor-pointer { cursor: pointer; }
.outline-none { outline: none; }
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.backdrop-blur { backdrop-filter: blur(10px); }

.hover\:bg-\[\#09203d\]:hover { background: var(--brand-strong); }
.hover\:bg-white\/10:hover { background: rgba(255,255,255,.1); }
.hover\:border-\[\#0f2f57\]:hover { border-color: var(--brand); }
.hover\:text-\[\#0f2f57\]:hover { color: var(--brand); }
.hover\:text-red-800:hover { color: #991b1b; }
.focus\:border-\[\#0f2f57\]:focus { border-color: var(--brand); }
.focus\:ring-2:focus { box-shadow: 0 0 0 2px rgba(15,47,87,.15); }

input, select, textarea {
    background: #fff;
}

.form-error {
    display: block;
    margin-top: .35rem;
    color: #dc2626;
    font-size: .8rem;
    font-weight: 400;
    line-height: 1.15rem;
}

button, a {
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

button:disabled,
button[aria-disabled="true"] {
    cursor: wait !important;
    opacity: .62;
}

a[aria-disabled="true"] {
    pointer-events: none;
    cursor: wait !important;
    opacity: .62;
}

body.is-busy {
    cursor: wait;
}

body.is-busy a,
body.is-busy button {
    cursor: wait !important;
}

.app-shell {
    display: flex;
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    overflow-x: clip;
    background: #eef3f8;
}

.app-sidebar-overlay {
    position: fixed;
    inset: 0;
    z-index: 45;
    display: none;
    background: rgba(15, 23, 42, .42);
}

.app-sidebar {
    position: sticky;
    top: 0;
    display: flex;
    width: 18rem;
    max-width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    min-width: 0;
    flex: 0 0 18rem;
    flex-direction: column;
    align-self: flex-start;
    overflow-x: hidden;
    overflow-y: auto;
    background: #12365c;
    color: #fff;
    box-shadow: 14px 0 30px rgba(15, 23, 42, .08);
}

.app-brand {
    display: flex;
    gap: .9rem;
    align-items: center;
    min-width: 0;
    padding: 1.4rem 1.35rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.app-brand__mark {
    display: grid;
    width: 2.6rem;
    height: 2.6rem;
    place-items: center;
    border-radius: .75rem;
    color: #12365c;
    background: #f8fafc;
    box-shadow: none;
}

.app-brand__name {
    margin: 0;
    overflow-wrap: anywhere;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -.01em;
}

.app-brand__meta {
    margin: .1rem 0 0;
    color: var(--brand-muted);
    font-size: .75rem;
}

.app-nav {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1rem;
}

.app-sidebar__bottom {
    min-width: 0;
    padding: 0 1rem 1rem;
}

.app-nav__link {
    display: flex;
    align-items: center;
    gap: .8rem;
    min-height: 2.75rem;
    padding: .72rem .85rem;
    border: 1px solid transparent;
    border-radius: .5rem;
    color: #dbe4ee;
    font-size: .92rem;
    font-weight: 650;
    min-width: 0;
}

.app-nav__link > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.app-nav__link i {
    width: 1.15rem;
    color: #b9c7d7;
    text-align: center;
}

.app-nav__link:hover {
    color: #f8fafc;
    border-color: rgba(255,255,255,.10);
    background: var(--sidebar-item);
    box-shadow: none;
}

.app-nav__link.is-active {
    color: #fff;
    border-color: rgba(255,255,255,.18);
    background: var(--sidebar-active);
    box-shadow: none;
}

.app-nav__link.is-active i {
    color: #fff;
}

.app-sidebar__footer {
    margin-top: .75rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: .75rem;
    color: var(--brand-muted);
    font-size: .78rem;
    font-weight: 700;
    text-align: center;
    overflow-wrap: anywhere;
    background: rgba(255,255,255,.06);
}

.app-main {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.app-header {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 2rem;
    border-bottom: 1px solid rgba(226, 232, 240, .9);
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(16px);
}

.app-header__left {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-width: 0;
}

.app-header__right,
.app-user {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.app-user > div:last-child {
    min-width: 0;
}

.app-user p,
.app-user span {
    overflow-wrap: anywhere;
}

.app-menu-button {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    border: 1px solid var(--slate-200);
    border-radius: .7rem;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
}

.app-menu-button:hover {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.app-user__avatar {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    border-radius: .75rem;
    color: var(--brand);
    background: var(--brand-panel);
}

.app-icon-button {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    place-items: center;
    border: 1px solid var(--slate-200);
    border-radius: .7rem;
    color: var(--slate-700);
    background: #fff;
    cursor: pointer;
}

.app-icon-button:hover {
    color: #fff;
    border-color: var(--brand);
    background: var(--brand);
}

.app-content {
    flex: 1 1 auto;
    padding: 1.5rem 2rem 2.5rem;
}

.app-mobile-nav {
    display: none;
    gap: .5rem;
    margin-bottom: 1rem;
    overflow-x: auto;
}

.app-mobile-nav a {
    white-space: nowrap;
    border: 1px solid var(--slate-200);
    border-radius: .7rem;
    background: #fff;
    padding: .65rem .85rem;
    color: var(--slate-700);
    font-size: .85rem;
    font-weight: 700;
}

.app-mobile-nav a.is-active {
    color: #fff;
    border-color: var(--brand);
    background: var(--brand);
}

.app-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    place-items: center;
    cursor: wait;
    background: rgba(15, 23, 42, .35);
    backdrop-filter: blur(3px);
}

.app-loader.is-visible {
    display: grid;
}

.app-loader__box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .95rem;
    color: #fff;
}

.app-loader__spinner {
    width: 4.2rem;
    height: 4.2rem;
    border: 12px solid rgba(22, 59, 99, .18);
    border-top-color: var(--brand);
    border-right-color: var(--brand);
    border-radius: 999px;
    animation: app-spin .75s linear infinite;
}

.app-loader__text {
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.guest-shell {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 2.5rem 1rem;
    background: #edf3f8;
}

.login-card {
    position: relative;
    overflow: hidden;
}

.login-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: .32rem;
    background: var(--brand);
}

.login-mark {
    display: grid;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
    place-items: center;
    border-radius: .85rem;
    color: #fff;
    background: var(--brand);
    box-shadow: 0 12px 28px rgba(18, 60, 105, .22);
}

.input-icon {
    position: relative;
}

.input-icon > i {
    position: absolute;
    top: 50%;
    left: .9rem;
    z-index: 1;
    color: var(--slate-500);
    transform: translateY(-50%);
}

.input-icon > input {
    padding-left: 2.45rem;
}

.input-icon--action > input {
    padding-right: 2.85rem;
}

.has-search-countdown > input {
    padding-right: 8.5rem !important;
}

.search-countdown {
    position: absolute;
    top: 50%;
    right: .85rem;
    z-index: 2;
    color: var(--slate-500);
    font-size: .76rem;
    font-weight: 800;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-50%);
    transition: opacity .12s ease;
    white-space: nowrap;
}

.search-countdown.is-visible {
    opacity: 1;
}

.is-secret {
    -webkit-text-security: disc;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: .85rem;
    z-index: 2;
    display: grid;
    width: 1.9rem;
    height: 1.9rem;
    place-items: center;
    border-radius: .45rem;
    color: var(--slate-500);
    cursor: pointer;
    transform: translateY(-50%);
}

.password-toggle:hover,
.password-toggle:focus {
    color: var(--brand);
    background: var(--brand-panel);
    outline: none;
}

.login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.login-check__value {
    display: none;
}

.login-check {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    cursor: pointer;
    user-select: none;
}

.login-check__box {
    display: grid;
    width: 1.15rem;
    height: 1.15rem;
    place-items: center;
    border: 1px solid var(--slate-300);
    border-radius: .32rem;
    color: transparent;
    background: #fff;
}

.login-check[aria-checked="true"] .login-check__box {
    color: #fff;
    border-color: var(--brand);
    background: var(--brand);
}

.login-check:focus {
    outline: none;
}

.login-check:focus .login-check__box {
    box-shadow: 0 0 0 2px rgba(15,47,87,.15);
}

.stat-card {
    position: relative;
    overflow: hidden;
}

.stat-card::after {
    content: "";
    position: absolute;
    right: -2.5rem;
    bottom: -2.5rem;
    width: 8rem;
    height: 8rem;
    border-radius: 999px;
    background: rgba(15, 47, 87, .07);
}

.stat-card__icon {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    margin-bottom: .85rem;
    place-items: center;
    border-radius: .75rem;
    color: var(--brand);
    background: var(--brand-panel);
}

.table-toolbar {
    padding: 1rem;
    border-bottom: 1px solid var(--slate-200);
    background: var(--slate-50);
}

.table-toolbar .input-icon {
    max-width: 28rem;
}

.table-scroll {
    width: 100%;
    overflow-x: auto;
}

.table-index {
    width: 3.25rem;
    color: var(--slate-500);
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    text-align: center;
    white-space: nowrap;
}

.modern-table .table-index {
    min-width: 3.25rem;
    overflow-wrap: normal;
    word-break: normal;
    text-align: center;
    white-space: nowrap;
}

.pagination-container {
    margin-top: 1.25rem;
}

.pagination-container--embedded {
    margin-top: 0;
    border-top: 1px solid var(--slate-200);
    padding: 1rem;
    background: #fbfdff;
}

.app-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: .9rem 1rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .04);
}

.app-pagination__summary {
    margin: 0;
    color: var(--slate-500);
    font-size: .82rem;
}

.app-pagination__summary strong {
    color: var(--slate-700);
    font-weight: 850;
}

.app-pagination__controls,
.app-pagination__pages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
}

.app-pagination__button,
.app-pagination__page,
.app-pagination__ellipsis {
    display: inline-flex;
    min-width: 2.35rem;
    height: 2.35rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: 0 .65rem;
    color: var(--slate-700);
    background: #fff;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
}

.app-pagination__button {
    gap: .45rem;
}

.app-pagination__button:hover,
.app-pagination__page:hover {
    border-color: var(--brand);
    color: var(--brand);
    background: var(--brand-panel);
}

.app-pagination__page.is-current {
    border-color: var(--brand);
    color: #fff;
    background: var(--brand);
}

.app-pagination__button.is-disabled {
    border-color: var(--slate-100);
    color: var(--slate-300);
    background: var(--slate-50);
    cursor: not-allowed;
}

.app-pagination__ellipsis {
    min-width: auto;
    border-color: transparent;
    color: var(--slate-500);
    background: transparent;
}

@media (max-width: 767px) {
    .app-pagination__summary {
        width: 100%;
    }

    .app-pagination__controls {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr) auto;
        width: 100%;
    }

    .app-pagination__pages {
        justify-content: flex-start;
        overflow-x: auto;
        padding: .1rem 0;
        flex-wrap: nowrap;
    }

    .app-pagination__button {
        padding: 0 .55rem;
    }
}

.connections-grid {
    display: grid;
    gap: 1rem;
}

.connection-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.connection-toolbar__filters,
.connection-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
}

.connection-toolbar__filters {
    min-width: 0;
    flex: 1 1 auto;
}

.connection-toolbar__actions {
    flex: 0 0 auto;
    justify-content: flex-end;
}

.connection-toolbar__search {
    position: relative;
    min-width: min(24rem, 100%);
    flex: 1 1 18rem;
}

.connection-toolbar__search i {
    position: absolute;
    top: 50%;
    left: .85rem;
    transform: translateY(-50%);
    color: var(--slate-500);
    font-size: .86rem;
}

.connection-toolbar input,
.connection-toolbar select {
    height: 2.65rem;
    border: 1px solid var(--slate-300);
    border-radius: .55rem;
    padding: 0 .85rem;
    color: var(--slate-950);
    background: #fff;
    outline: none;
}

.connection-toolbar input {
    width: 100%;
    padding-left: 2.35rem;
}

.connection-toolbar select {
    min-width: 10.5rem;
}

.connection-toolbar input:focus,
.connection-toolbar select:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px rgba(15, 47, 87, .15);
}

.connection-toolbar select.publication-fascicle-filter {
    min-width: 14rem;
}

.connection-toolbar__filters button,
.connection-toolbar__primary,
.connection-toolbar__ghost,
.connection-toolbar__filters a {
    display: inline-flex;
    height: 2.65rem;
    align-items: center;
    justify-content: center;
    border-radius: .55rem;
    padding: 0 .95rem;
    cursor: pointer;
    font-size: .86rem;
    font-weight: 850;
    white-space: nowrap;
}

.connection-toolbar__filters button,
.connection-toolbar__primary {
    border: 1px solid var(--brand);
    color: #fff;
    background: var(--brand);
}

.connection-toolbar__filters button:hover,
.connection-toolbar__primary:hover {
    background: var(--brand-strong);
}

.connection-toolbar__ghost,
.connection-toolbar__filters a {
    border: 1px solid var(--slate-200);
    color: var(--slate-700);
    background: #fff;
}

.connection-toolbar__ghost:hover,
.connection-toolbar__filters a:hover {
    border-color: var(--brand);
    color: var(--brand);
}

.connection-card {
    display: flex;
    min-height: 17rem;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .07);
}

.connection-card__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.25rem 0;
}

.connection-card__identity {
    display: flex;
    min-width: 0;
    gap: .9rem;
}

.connection-card__identity > div:last-child {
    min-width: 0;
}

.connection-card__icon {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid #d7e1eb;
    border-radius: .7rem;
    color: var(--brand);
    background: var(--brand-panel);
}

.connection-card__title {
    min-width: 0;
    margin: 0;
    color: var(--slate-950);
    font-size: 1.05rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.connection-card__url {
    margin: .3rem 0 0;
    color: var(--slate-500);
    font-size: .85rem;
    line-height: 1.25rem;
    word-break: break-all;
}

.connection-card__status {
    flex: 0 0 auto;
    max-width: 100%;
    border: 1px solid #c9d5e2;
    border-radius: .5rem;
    padding: .35rem .65rem;
    color: var(--brand);
    background: #f5f8fb;
    font-size: .72rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.connection-card__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 1.25rem;
}

.connection-card__metric {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    padding: .85rem;
    background: #f8fafc;
}

.connection-card__metric dt {
    display: flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    color: var(--slate-500);
    font-size: .76rem;
    font-weight: 750;
    overflow-wrap: anywhere;
}

.connection-card__metric dd {
    margin: .45rem 0 0;
    overflow: hidden;
    color: var(--slate-950);
    font-size: .95rem;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.connection-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--slate-200);
    background: #fbfdff;
}

.connection-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.connection-card__primary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border: 1px solid var(--brand);
    border-radius: .55rem;
    padding: .65rem .9rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .87rem;
    font-weight: 800;
}

.connection-card__primary:hover {
    background: var(--brand-strong);
}

.connection-card__secondary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border: 1px solid #c9d5e2;
    border-radius: .55rem;
    padding: .65rem .9rem;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
    font-size: .87rem;
    font-weight: 800;
}

.connection-card__secondary:hover {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.connection-card__danger {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    border: 1px solid #fecaca;
    border-radius: .55rem;
    color: #dc2626;
    background: #fef2f2;
    cursor: pointer;
}

.connection-card__danger:hover {
    color: #fff;
    border-color: #dc2626;
    background: #dc2626;
}

.journal-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    margin-bottom: 1.25rem;
    border: 1px solid #dbe3ec;
    border-radius: .75rem;
    padding: .9rem;
    background: #fff;
}

.journal-toolbar label {
    position: relative;
    min-width: 0;
}

.journal-toolbar label > i {
    position: absolute;
    top: 50%;
    left: .85rem;
    color: var(--slate-400);
    transform: translateY(-50%);
}

.journal-toolbar input,
.journal-toolbar select {
    width: 100%;
    min-height: 2.65rem;
    border: 1px solid var(--slate-300);
    border-radius: .55rem;
    padding: .65rem .8rem;
    color: var(--slate-950);
    background: #fff;
    font-size: .9rem;
    outline: none;
}

.journal-toolbar input {
    padding-left: 2.35rem;
}

.journal-toolbar input:focus,
.journal-toolbar select:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px rgba(15, 47, 87, .15);
}

.journal-toolbar__clear {
    display: inline-flex;
    min-height: 2.65rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--slate-200);
    border-radius: .55rem;
    padding: .65rem .9rem;
    color: var(--slate-700);
    background: #fff;
    font-size: .88rem;
    font-weight: 800;
}

.journal-toolbar__clear:hover {
    border-color: var(--brand);
    color: var(--brand);
}

.journal-connections {
    display: grid;
    gap: 1.1rem;
}

.journal-connection {
    border: 1px solid #dbe3ec;
    border-radius: .85rem;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .045);
}

.journal-connection__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--slate-100);
    padding-bottom: .9rem;
}

.journal-connection__header > div:first-child {
    min-width: 0;
}

.journal-connection__header span {
    display: block;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.journal-connection__header h3 {
    margin: .2rem 0;
    color: var(--slate-950);
    font-size: 1.05rem;
    font-weight: 850;
}

.journal-connection__header p {
    margin: 0;
    color: var(--slate-500);
    font-size: .84rem;
    overflow-wrap: anywhere;
}

.journal-connection__summary {
    display: flex;
    flex: 0 0 auto;
    align-items: stretch;
    gap: .55rem;
}

.journal-connection__stats {
    display: inline-flex;
    min-width: 6.5rem;
    height: 2.65rem;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border: 1px solid #dbe3ec;
    border-radius: .65rem;
    padding: 0 .75rem;
    background: #fbfdff;
    white-space: nowrap;
}

.journal-connection__stats strong {
    color: var(--slate-950);
    font-size: .95rem;
    font-weight: 900;
}

.journal-connection__stats span {
    color: var(--slate-500);
    font-size: .82rem;
    font-weight: 800;
}

.journal-connection__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: .85rem 0;
}

.journal-connection__meta span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--slate-200);
    border-radius: .55rem;
    padding: .45rem .6rem;
    color: var(--slate-600);
    background: #fbfdff;
    font-size: .82rem;
}

.journal-connection__meta i {
    color: var(--brand);
}

.journal-connection__toggle {
    display: inline-flex;
    width: 2.65rem;
    height: 2.65rem;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    border: 1px solid #c9d5e2;
    border-radius: .55rem;
    padding: 0;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
    font-size: .86rem;
    font-weight: 850;
    white-space: nowrap;
}

.journal-connection__toggle:hover,
.journal-connection__toggle.is-open {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.journal-connection__toggle i {
    transition: transform .18s ease;
}

.journal-connection__toggle.is-open i {
    transform: rotate(180deg);
}

.journal-connection__panel {
    margin-top: .85rem;
}

.journal-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem;
}

.journal-connection__empty {
    border: 1px dashed var(--slate-300);
    border-radius: .65rem;
    padding: 1rem;
    color: var(--slate-500);
    background: #fbfdff;
    text-align: center;
}

.journal-card {
    display: flex;
    min-height: 12.75rem;
    flex-direction: column;
    gap: .85rem;
    border: 1px solid #dbe3ec;
    border-radius: .65rem;
    padding: .95rem;
    background: #fff;
    box-shadow: none;
}

.journal-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.journal-card__code,
.journal-card__status {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    border-radius: .45rem;
    padding: .28rem .55rem;
    font-size: .72rem;
    line-height: 1rem;
    overflow-wrap: anywhere;
}

.journal-card__code {
    color: var(--brand);
    background: var(--brand-panel);
    font-weight: 800;
    text-transform: uppercase;
}

.journal-card__status {
    flex: 0 0 auto;
    border: 1px solid #c9d5e2;
    color: var(--brand);
    background: #f8fafc;
}

.journal-card__body {
    min-width: 0;
}

.journal-card__body h3 {
    display: -webkit-box;
    min-height: 3.05rem;
    margin: 0;
    overflow: hidden;
    color: var(--slate-950);
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.5rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.journal-card__body p {
    margin: .55rem 0 0;
    overflow: hidden;
    color: var(--slate-500);
    font-size: .84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.journal-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: auto;
    color: var(--slate-600);
    font-size: .82rem;
}

.journal-card__meta span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: .45rem .6rem;
    background: #fbfdff;
    overflow-wrap: anywhere;
}

.journal-card__meta i {
    color: var(--brand);
}

.journal-card__action {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: .45rem;
    color: var(--brand);
    font-size: .86rem;
    font-weight: 800;
}

.journal-card__action:hover {
    color: var(--brand-strong);
}

.connection-detail__topbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.connection-detail__topbar h2 {
    margin: .45rem 0 .2rem;
    color: var(--slate-950);
    font-size: 1.55rem;
    font-weight: 850;
}

.connection-detail__topbar p {
    margin: 0;
    color: var(--slate-500);
    font-size: .92rem;
}

.connection-detail__back {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--brand);
    font-size: .86rem;
    font-weight: 800;
}

.connection-detail__back:hover {
    color: var(--brand-strong);
}

.connection-detail__delete {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    border: 1px solid #fecaca;
    border-radius: .55rem;
    padding: .65rem .9rem;
    color: #dc2626;
    background: #fff;
    cursor: pointer;
    font-size: .86rem;
    font-weight: 800;
}

.connection-detail__delete:hover {
    background: #fef2f2;
}

.connection-detail {
    display: grid;
    gap: 1.25rem;
}

.connection-detail__main,
.connection-detail__aside {
    display: grid;
    gap: 1.25rem;
    align-content: start;
}

.connection-detail__hero,
.connection-panel {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .06);
}

.connection-detail__hero-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem;
}

.connection-detail__identity {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 1rem;
}

.connection-detail__icon {
    display: inline-grid;
    width: 3rem;
    min-width: 3rem;
    height: 3rem;
    place-items: center;
    border: 1px solid #d7e1eb;
    border-radius: .7rem;
    color: var(--brand);
    background: var(--brand-panel);
    font-size: 1.05rem;
}

.connection-detail__identity-text {
    min-width: 0;
}

.connection-detail__identity-text h3 {
    margin: 0;
    color: var(--slate-950);
    font-size: 1.15rem;
    font-weight: 850;
}

.connection-detail__identity-text a {
    display: block;
    margin-top: .35rem;
    color: var(--brand);
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35rem;
    word-break: break-all;
}

.connection-detail__identity-text a:hover {
    text-decoration: underline;
}

.connection-detail__identity-text p {
    margin: .45rem 0 0;
    color: var(--slate-500);
    font-size: .86rem;
}

.connection-detail__identity-text strong {
    color: var(--slate-800);
}

.connection-detail__status {
    flex: 0 0 auto;
    border: 1px solid #c9d5e2;
    border-radius: .5rem;
    padding: .38rem .7rem;
    color: var(--brand);
    background: #f5f8fb;
    font-size: .72rem;
    font-weight: 850;
}

.connection-detail__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin: 0;
    padding: 0 1.35rem 1.35rem;
}

.connection-detail__metrics div {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    padding: 1rem;
    background: #f8fafc;
}

.connection-detail__metrics dt {
    color: var(--slate-500);
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.connection-detail__metrics dd {
    margin: .45rem 0 0;
    color: var(--slate-950);
    font-size: 1.6rem;
    font-weight: 900;
}

.connection-detail__metrics .connection-detail__date {
    overflow: hidden;
    font-size: .95rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.connection-panel {
    padding: 1.35rem;
}

.connection-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.connection-panel__header h3 {
    margin: 0;
    color: var(--slate-950);
    font-size: 1.05rem;
    font-weight: 850;
}

.connection-panel__header p {
    margin: .25rem 0 0;
    color: var(--slate-500);
    font-size: .86rem;
    line-height: 1.35rem;
}

.connection-panel__header > span {
    border-radius: .5rem;
    padding: .35rem .65rem;
    color: var(--slate-700);
    background: var(--slate-100);
    font-size: .75rem;
    font-weight: 850;
}

.connection-form,
.connection-collaborator-form {
    display: grid;
    gap: 1rem;
}

.connection-form label {
    display: block;
}

.connection-form label > span {
    display: block;
    margin-bottom: .35rem;
    color: var(--slate-700);
    font-size: .86rem;
    font-weight: 800;
}

.connection-form input,
.connection-form textarea,
.connection-collaborator-form input {
    width: 100%;
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .72rem .8rem;
    color: var(--slate-950);
    background: #fff;
    outline: none;
}

.connection-form textarea {
    resize: vertical;
}

.connection-form input:focus,
.connection-form textarea:focus,
.connection-collaborator-form input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px rgba(15, 47, 87, .15);
}

.connection-form small,
.connection-error {
    display: block;
    margin-top: .35rem;
    color: #dc2626;
    font-size: .8rem;
}

.connection-form__actions {
    display: flex;
    justify-content: flex-end;
}

.connection-form__actions button,
.connection-collaborator-form button {
    border: 1px solid var(--brand);
    border-radius: .55rem;
    padding: .7rem 1rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .88rem;
    font-weight: 850;
}

.connection-form__actions button:hover,
.connection-collaborator-form button:hover {
    background: var(--brand-strong);
}

.connection-collaborator-form {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 1rem;
}

.connection-list {
    display: grid;
    gap: .75rem;
}

.connection-list__item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .85rem;
    min-width: 0;
    border: 1px solid var(--slate-100);
    border-radius: .65rem;
    padding: .85rem;
    background: #fbfdff;
}

.connection-list__item > div {
    min-width: 0;
}

.connection-list__item p {
    min-width: 0;
    margin: 0;
    color: var(--slate-950);
    font-size: .9rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.connection-list__item span {
    display: block;
    margin-top: .2rem;
    overflow: hidden;
    color: var(--slate-500);
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.connection-list__item em {
    display: inline-flex;
    margin-top: .45rem;
    border-radius: .45rem;
    padding: .2rem .45rem;
    color: var(--slate-700);
    background: var(--slate-100);
    font-size: .72rem;
    font-style: normal;
    font-weight: 800;
}

.connection-list__danger {
    border: 1px solid #fecaca;
    border-radius: .5rem;
    padding: .5rem .65rem;
    color: #dc2626;
    background: #fff;
    cursor: pointer;
    font-size: .76rem;
    font-weight: 850;
}

.connection-list__danger:hover {
    background: #fef2f2;
}

.connection-list__status {
    flex: 0 0 auto;
    border: 1px solid #c9d5e2;
    border-radius: .5rem;
    padding: .25rem .5rem;
    color: var(--brand);
    background: #f5f8fb;
    font-size: .7rem;
    font-weight: 850;
}

.connection-empty {
    border: 1px dashed var(--slate-300);
    border-radius: .65rem;
    padding: 1.25rem;
    color: var(--slate-500);
    background: #fbfdff;
    text-align: center;
    font-size: .88rem;
}

.journal-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    background: #fff;
}

.journal-table thead {
    background: var(--slate-50);
    color: var(--slate-500);
    text-align: left;
    font-size: .72rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.journal-table th,
.journal-table td {
    padding: .85rem .95rem;
    vertical-align: middle;
}

.journal-table td strong,
.journal-table td span {
    display: block;
}

.journal-table td strong {
    color: var(--slate-950);
    font-weight: 850;
}

.journal-table td > span:not(.journal-table__code):not(.journal-table__status) {
    margin-top: .2rem;
    color: var(--slate-500);
    font-size: .8rem;
}

.journal-table__code,
.journal-table__status {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    border-radius: .45rem;
    padding: .3rem .55rem;
    font-size: .75rem;
    font-weight: 850;
}

.journal-table__code {
    color: var(--brand);
    background: var(--brand-panel);
    text-transform: uppercase;
}

.journal-table__status {
    border: 1px solid #c9d5e2;
    color: var(--brand);
    background: #f8fafc;
}

.journal-table__actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
}

@media (max-width: 767px) {
    .journal-connection__header {
        flex-direction: column;
    }

    .journal-connection__summary {
        width: 100%;
        justify-content: space-between;
    }

    .journal-connection__toggle {
        flex: 0 0 auto;
    }

    .journal-table-wrap {
        border: 0;
        overflow: visible;
        background: transparent;
    }

    .journal-table,
    .journal-table thead,
    .journal-table tbody,
    .journal-table tr,
    .journal-table th,
    .journal-table td {
        display: block;
        width: 100%;
    }

    .journal-table thead {
        display: none;
    }

    .journal-table tbody {
        display: grid;
        gap: .75rem;
    }

    .journal-table tr {
        border: 1px solid var(--slate-200);
        border-radius: .75rem;
        padding: .75rem;
        background: #fff;
    }

    .journal-table td {
        display: grid;
        grid-template-columns: 7.5rem minmax(0, 1fr);
        gap: .75rem;
        padding: .55rem 0;
        border: 0;
    }

    .journal-table td::before {
        content: attr(data-label);
        color: var(--slate-500);
        font-size: .72rem;
        font-weight: 850;
        letter-spacing: .03em;
        text-transform: uppercase;
    }

    .journal-table__actions {
        justify-content: flex-start;
    }
}

.modern-table tbody tr:hover {
    background: #f8fafc;
}

.modern-table {
    table-layout: auto;
}

.modern-table th {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}

.modern-table th,
.modern-table td {
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.action-icon {
    display: inline-grid;
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    place-items: center;
    border: 1px solid transparent;
    border-radius: .5rem;
    padding: 0;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    text-align: center;
    appearance: none;
}

.action-icon i {
    display: inline-grid;
    width: 1rem;
    height: 1rem;
    align-items: center;
    justify-content: center;
    place-items: center;
    font-size: .88rem;
    line-height: 1;
    pointer-events: none;
    vertical-align: middle;
}

.action-icon i::before {
    display: block;
    line-height: 1;
    transform: translateY(.035rem);
}

.action-icon--edit {
    color: #15803d;
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.action-icon--edit:hover {
    color: #fff;
    border-color: #15803d;
    background: #15803d;
}

.action-icon--view {
    color: var(--brand);
    border-color: #bfdbfe;
    background: var(--brand-panel);
}

.action-icon--view:hover {
    color: #fff;
    border-color: var(--brand);
    background: var(--brand);
}

.action-icon--delete {
    color: #dc2626;
    border-color: #fecaca;
    background: #fef2f2;
}

.action-icon--delete:hover {
    color: #fff;
    border-color: #dc2626;
    background: #dc2626;
}

.publication-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: 1.1rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

.publication-hero p,
.publication-detail__header p,
.publication-preview__header p {
    margin: 0;
    color: var(--slate-500);
    font-size: .85rem;
}

.publication-hero > div > p {
    color: var(--brand);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.publication-hero h2,
.publication-detail__header h2,
.publication-preview__header h2 {
    margin: .2rem 0 0;
    color: var(--slate-950);
    font-size: 1.45rem;
    font-weight: 850;
    line-height: 1.9rem;
}

.publication-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .75rem;
}

.publication-hero__meta span {
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: .35rem .6rem;
    color: var(--slate-600);
    background: #f8fafc;
    font-size: .8rem;
}

.publication-hero__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .7rem;
}

.publication-hero__button-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
}

.publication-sync-alert {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    border: 1px solid #fdba74;
    border-radius: .55rem;
    padding: .55rem .8rem;
    background: #fff7ed;
    color: #c2410c;
    font-size: .8rem;
    font-weight: 800;
    line-height: 1.2;
}

.publication-sync-alert i {
    font-size: .9rem;
}

.publication-sync-alert--missing {
    border-color: #fecaca;
    background: #fef2f2;
    color: #dc2626;
}

.publication-sync-alert--aligned {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.publication-primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border: 0;
    border-radius: .45rem;
    padding: .75rem 1rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .9rem;
    font-weight: 850;
}

.publication-primary-button:hover {
    background: var(--brand-strong);
}

.publication-primary-button--secondary {
    border: 1px solid var(--brand);
    color: var(--brand);
    background: #fff;
}

.publication-primary-button--secondary:hover,
.publication-action-menu.is-open .publication-primary-button--secondary {
    color: #fff;
    background: var(--brand);
}

.publication-primary-button:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.publication-action-menu {
    position: relative;
    z-index: 15;
}

.publication-action-menu__chevron {
    margin-left: .15rem;
    font-size: .7rem;
    transition: transform .18s ease;
}

.publication-action-menu.is-open .publication-action-menu__chevron {
    transform: rotate(180deg);
}

.publication-selection-badge {
    display: inline-grid;
    min-width: 1.35rem;
    height: 1.35rem;
    place-items: center;
    border-radius: 999px;
    padding: 0 .32rem;
    color: #fff;
    background: #dc2626;
    font-size: .68rem;
    font-weight: 900;
    line-height: 1;
}

.publication-selection-badge[hidden] {
    display: none;
}

.publication-action-menu__panel {
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    z-index: 30;
    width: min(14rem, calc(100vw - 2rem));
    overflow: hidden;
    border: 1px solid var(--brand-muted);
    border-radius: .7rem;
    background: #fff;
    box-shadow: 0 18px 45px rgba(15, 47, 87, .18);
}

.publication-action-menu__panel[hidden] {
    display: none;
}

.publication-action-menu__panel button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: .8rem;
    border: 0;
    border-bottom: 1px solid var(--slate-100);
    padding: .72rem .85rem;
    color: var(--slate-700);
    background: #fff;
    cursor: pointer;
    text-align: left;
}

.publication-action-menu__panel button:last-child {
    border-bottom: 0;
}

.publication-action-menu__panel button:hover,
.publication-action-menu__panel button:focus-visible {
    background: var(--brand-panel);
    outline: none;
}

.publication-action-menu__panel button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

.publication-action-menu__label {
    overflow-wrap: anywhere;
    color: var(--brand);
    font-size: .88rem;
    font-weight: 800;
}

.publication-action-menu__icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .6rem;
}

.publication-action-menu__icon--export {
    color: #0369a1;
    background: #e0f2fe;
}

.publication-action-menu__icon--send {
    color: #166534;
    background: #dcfce7;
}

.publication-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.publication-table {
    width: 100%;
    border-collapse: collapse;
}

.publication-table th {
    padding: .85rem 1rem;
    color: var(--slate-500);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-align: left;
    text-transform: uppercase;
    background: #f8fafc;
}

.publication-table th:last-child {
    text-align: right;
}

.publication-table .table-selection {
    width: 2.9rem;
    min-width: 2.9rem;
    padding-right: .45rem;
    padding-left: .85rem;
    text-align: center;
    white-space: nowrap;
}

.publication-table .table-selection input {
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--brand);
    cursor: pointer;
}

.publication-table .table-selection input:disabled {
    cursor: not-allowed;
    opacity: .4;
}

.publication-table td {
    border-top: 1px solid var(--slate-100);
    padding: .9rem 1rem;
    color: var(--slate-700);
    font-size: .86rem;
    vertical-align: top;
}

.publication-table tbody tr.is-selected td {
    background: #f0f7ff;
}

.publication-table tbody tr.is-selected td:first-child {
    box-shadow: inset 3px 0 0 var(--brand);
}

.publication-table td[data-label="Acciones"] {
    vertical-align: middle;
}

.publication-table td strong,
.publication-table td span,
.publication-table td a:not(.action-icon) {
    display: block;
    overflow-wrap: anywhere;
}

.publication-table td strong {
    color: var(--slate-950);
    font-size: .9rem;
}

.publication-table td span {
    margin-top: .2rem;
    color: var(--slate-500);
}

.publication-table td a:not(.action-icon) {
    color: var(--brand);
    font-weight: 750;
}

.publication-fascicle {
    min-width: 12rem;
    color: var(--slate-600);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.publication-pages {
    min-width: 6.5rem;
    color: var(--slate-600);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.publication-ojs-delivery {
    min-width: 7.25rem;
    vertical-align: middle !important;
}

.publication-ojs-delivery .publication-ojs-delivery-badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-top: 0;
    border: 1px solid;
    border-radius: 999px;
    padding: .38rem .6rem;
    font-size: .78rem;
    font-weight: 850;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    white-space: nowrap;
}

.publication-ojs-delivery .publication-ojs-delivery-badge span {
    display: inline;
    margin-top: 0;
    color: inherit;
}

.publication-ojs-delivery-badge--current {
    border-color: #86efac;
    background: #f0fdf4;
    color: #15803d;
}

.publication-ojs-delivery-badge--partial {
    border-color: #fcd34d;
    background: #fffbeb;
    color: #b45309;
}

.publication-ojs-delivery-badge--stale {
    border-color: #fecaca;
    background: #fef2f2;
    color: #dc2626;
}

.publication-ojs-delivery-badge--pending {
    border-color: var(--slate-200);
    background: #f8fafc;
    color: var(--slate-500);
}

.publication-format-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.publication-format-links {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.publication-format-links--detail {
    gap: .65rem;
}

.publication-format-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--slate-200);
    border-radius: 999px;
    padding: .42rem .75rem;
    background: #f8fafc;
    color: var(--slate-500) !important;
    font-size: .78rem;
    font-weight: 850;
    line-height: 1;
    text-transform: uppercase;
}

.publication-format-link i {
    font-size: .88rem;
}

.publication-format-link.is-available {
    border-color: #86efac;
    background: #f0fdf4;
    color: #15803d !important;
}

.publication-format-link.is-draft {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c !important;
}

.publication-format-link.is-stale {
    border-color: #fecaca;
    background: #fef2f2;
    color: #dc2626 !important;
}

.publication-format-link.is-pending {
    border-color: var(--slate-200);
    background: #f8fafc;
    color: var(--slate-400, #94a3b8) !important;
}

.publication-workflow-badge,
.publication-sync-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border: 1px solid var(--slate-200);
    border-radius: 999px;
    padding: .35rem .6rem;
    background: #f8fafc;
    color: var(--slate-600);
    font-size: .74rem;
    font-weight: 850;
    line-height: 1;
}

.publication-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .65rem;
}

.publication-workflow-badge--published {
    border-color: #86efac;
    background: #f0fdf4;
    color: #15803d;
}

.publication-workflow-badge--approved {
    border-color: #93c5fd;
    background: #eff6ff;
    color: #1d4ed8;
}

.publication-workflow-badge--ready {
    border-color: #67e8f9;
    background: #ecfeff;
    color: #0e7490;
}

.publication-workflow-badge--review {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #c2410c;
}

.publication-workflow-badge--blocked,
.publication-workflow-badge--missing {
    border-color: #fecaca;
    background: #fef2f2;
    color: #dc2626;
}

.publication-workflow-badge--pending {
    border-color: var(--slate-200);
    background: #f8fafc;
    color: var(--slate-500);
}

.publication-actions,
.table-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .45rem;
}

.publication-actions {
    justify-content: flex-end;
}

.table-actions {
    justify-content: flex-end;
}

.publication-actions form,
.journal-table__actions form,
.table-actions form {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.publication-format-badge {
    display: inline-flex !important;
    border: 1px solid var(--slate-200);
    border-radius: .45rem;
    padding: .25rem .45rem;
    background: #f8fafc;
    font-size: .68rem;
    font-weight: 850;
    text-transform: uppercase;
}

.publication-format-badge--ready {
    border-color: #bbf7d0;
    color: #15803d !important;
    background: #f0fdf4;
}

.publication-format-badge--progress {
    border-color: #fed7aa;
    color: #c2410c !important;
    background: #fff7ed;
}

.publication-format-badge--missing {
    border-color: #fecaca;
    color: #dc2626 !important;
    background: #fef2f2;
}

.publication-format-badge--pending {
    color: var(--slate-500) !important;
}

.publication-detail,
.publication-preview {
    display: grid;
    gap: 1rem;
}

.publication-detail__header,
.publication-preview__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: 1.1rem;
    background: #fff;
}

.publication-detail__back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .45rem;
    color: var(--brand);
    font-size: .83rem;
    font-weight: 850;
}

.publication-detail__actions {
    display: grid;
    justify-items: end;
    gap: .6rem;
    width: min(100%, 32rem);
}

.publication-detail__actions p {
    margin: 0;
    color: var(--slate-500);
    font-size: .8rem;
    line-height: 1.35rem;
    text-align: right;
}

.publication-detail__action-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .55rem;
    width: 100%;
}

.publication-detail__action-group form {
    margin: 0;
}

.publication-detail__action-group .publication-secondary-button {
    min-height: 2.45rem;
    padding: .65rem .8rem;
}

.publication-secondary-button--source {
    border-color: #c9d5e2;
    color: var(--brand);
    background: #fff;
}

.publication-secondary-button--sync {
    border-color: #bfdbfe;
    color: #1d4ed8;
    background: #f8fbff;
}

.publication-secondary-button--sync:hover,
.publication-secondary-button--source:hover {
    border-color: var(--brand);
    color: var(--brand);
    background: var(--brand-panel);
}

.publication-helper-card {
    display: grid;
    gap: .25rem;
    border: 1px solid #bfdbfe;
    border-radius: .75rem;
    padding: .85rem 1rem;
    background: #f8fbff;
}

.publication-helper-card strong {
    color: #1d4ed8;
    font-size: .82rem;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.publication-helper-card p {
    margin: 0;
    color: var(--slate-700);
    font-size: .88rem;
    line-height: 1.45rem;
}

.publication-flow-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .5rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: .75rem;
    background: #fff;
}

.publication-flow-strip div {
    display: flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
    border-radius: .55rem;
    padding: .55rem .65rem;
    background: #f8fafc;
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 800;
}

.publication-flow-strip i {
    color: var(--slate-300);
    font-size: .65rem;
}

.publication-flow-strip .is-done {
    background: #f0fdf4;
    color: #15803d;
}

.publication-flow-strip .is-done i {
    color: #16a34a;
}

.publication-detail__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.publication-detail__card {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: 1rem;
    background: #fff;
}

.publication-detail__card--wide {
    grid-column: 1 / -1;
}

.publication-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .8rem;
}

.publication-card-head > div {
    min-width: 0;
}

.publication-card-head h3 {
    margin: 0;
}

.publication-card-head > span:not(.publication-workflow-badge) {
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 850;
}

.publication-card-head form {
    flex: 0 0 auto;
    margin: 0;
}

.publication-definition-list--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.publication-definition-list--compact div:last-child {
    grid-column: 1 / -1;
}

.publication-metadata-alert {
    display: grid;
    gap: .25rem;
    margin-top: 1rem;
    border: 1px solid #fed7aa;
    border-radius: .75rem;
    padding: .85rem 1rem;
    background: #fff7ed;
}

.publication-metadata-alert strong {
    color: #9a3412;
    font-size: .86rem;
    font-weight: 850;
}

.publication-metadata-alert span {
    color: #9a3412;
    font-size: .82rem;
    line-height: 1.4rem;
}

.publication-metadata-alert .publication-secondary-button {
    justify-self: start;
    margin-top: .45rem;
    background: #fff;
}

.publication-metadata-alert em {
    color: #9a3412;
    font-size: .8rem;
    font-style: normal;
}

.publication-detail__card h3 {
    margin: 0 0 .8rem;
    color: var(--slate-950);
    font-size: 1rem;
    font-weight: 850;
}

.publication-source-sections {
    display: grid;
    gap: .75rem;
}

.publication-source-section {
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    background: #fbfdff;
    overflow: hidden;
}

.publication-source-section summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    cursor: pointer;
    list-style: none;
    padding: .85rem 1rem;
    color: var(--slate-900);
    font-size: .88rem;
    font-weight: 850;
}

.publication-source-section summary::-webkit-details-marker {
    display: none;
}

.publication-source-section summary em {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: .2rem .55rem;
    font-size: .72rem;
    font-style: normal;
    font-weight: 850;
    text-transform: uppercase;
}

.publication-source-section summary em.is-complete {
    background: #dcfce7;
    color: #166534;
}

.publication-source-section summary em.is-pending {
    background: #fef3c7;
    color: #92400e;
}

.publication-source-section[open] summary {
    border-bottom: 1px solid var(--slate-200);
    background: #f8fbff;
}

.publication-source-section .publication-definition-list {
    padding: .9rem 1rem 1rem;
}

.publication-definition-list {
    display: grid;
    gap: .7rem;
}

.publication-definition-list div {
    min-width: 0;
    border-bottom: 1px solid var(--slate-100);
    padding-bottom: .7rem;
}

.publication-definition-list dt {
    color: var(--slate-500);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.publication-definition-list dd {
    margin: .2rem 0 0;
    color: var(--slate-800);
    font-size: .9rem;
    line-height: 1.45rem;
    overflow-wrap: anywhere;
}

.publication-definition-list__full {
    grid-column: 1 / -1;
}

.publication-mini-list {
    display: grid;
    gap: .65rem;
}

.publication-mini-list div,
.publication-format-grid div {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .6rem;
    padding: .75rem;
    background: #fbfdff;
}

.publication-mini-list strong,
.publication-mini-list span,
.publication-mini-list em,
.publication-mini-list a,
.publication-format-grid strong,
.publication-format-grid span,
.publication-format-grid em,
.publication-format-grid a {
    display: block;
    overflow-wrap: anywhere;
}

.publication-mini-list strong,
.publication-format-grid strong {
    color: var(--slate-950);
    font-size: .9rem;
    font-weight: 850;
}

.publication-mini-list span,
.publication-mini-list em,
.publication-format-grid span,
.publication-format-grid em {
    margin-top: .2rem;
    color: var(--slate-500);
    font-size: .8rem;
}

.publication-mini-list a,
.publication-format-grid a {
    margin-top: .45rem;
    color: var(--brand);
    font-size: .82rem;
    font-weight: 850;
}

.publication-format-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.publication-format-help {
    margin: .8rem 0 0;
    color: var(--slate-500);
    font-size: .82rem;
    line-height: 1.4rem;
}

.publication-primary-button.is-disabled {
    cursor: not-allowed;
    opacity: .7;
}

.bulk-galley-modal {
    width: min(46rem, 100%);
}

.bulk-galley-modal__header {
    border-bottom-color: var(--slate-200);
    background: #fff;
}

.bulk-galley-modal__header p {
    color: var(--brand);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.app-modal__header + .bulk-galley-form {
    display: grid;
    gap: 0;
    padding: 0;
}

.bulk-galley-section {
    display: grid;
    gap: .7rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--slate-200);
}

.bulk-galley-section__title {
    margin: 0;
    color: var(--slate-900);
    font-size: .88rem;
}

.bulk-galley-scope,
.bulk-galley-export-types {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.bulk-galley-scope label,
.bulk-galley-export-types label {
    display: flex;
    align-items: center;
    gap: .7rem;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    padding: .68rem .75rem;
    background: #fff;
    cursor: pointer;
}

.bulk-galley-scope label:has(input:checked),
.bulk-galley-export-types label:has(input:checked),
.bulk-galley-format-card:has(.bulk-galley-format-option input:checked) {
    border-color: var(--brand);
    background: var(--brand-panel);
    box-shadow: inset 0 0 0 1px rgba(15, 47, 87, .05);
}

.bulk-galley-scope input,
.bulk-galley-export-types input,
.bulk-galley-formats input,
.bulk-galley-publications input {
    accent-color: var(--brand);
}

.bulk-galley-scope label > span,
.bulk-galley-publications__list label > span {
    display: grid;
    min-width: 0;
    gap: .15rem;
}

.bulk-galley-scope strong,
.bulk-galley-export-types strong,
.bulk-galley-format-card strong,
.bulk-galley-publications strong {
    overflow-wrap: anywhere;
    color: var(--slate-800);
    font-size: .84rem;
}

.bulk-galley-scope small,
.bulk-galley-publications small {
    overflow-wrap: anywhere;
    color: var(--slate-500);
    font-size: .73rem;
    line-height: 1.35;
}

.bulk-galley-scope small > span {
    color: var(--brand);
    font-weight: 900;
}

.bulk-galley-scope label:has(input:disabled) {
    cursor: not-allowed;
    opacity: .5;
}

.bulk-galley-formats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.bulk-galley-format-card {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    background: #fff;
    transition: border-color .15s ease, background-color .15s ease;
}

.bulk-galley-format-option {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    gap: .65rem;
    padding: .65rem .75rem;
    cursor: pointer;
}

.bulk-galley-format-source {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .35rem;
    border-top: 1px solid var(--slate-200);
    padding: .5rem;
    background: rgba(255, 255, 255, .72);
}

.bulk-galley-format-source label {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .35rem;
    border-radius: .45rem;
    padding: .42rem .48rem;
    color: var(--slate-600);
    font-size: .7rem;
    font-weight: 750;
    line-height: 1.2;
    cursor: pointer;
}

.bulk-galley-format-source label:has(input:checked) {
    color: var(--brand);
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .1);
}

.bulk-galley-format-card:not(:has(.bulk-galley-format-option input:checked)) .bulk-galley-format-source {
    opacity: .48;
}

.bulk-galley-notice {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    margin: .8rem 1.25rem 0;
    border: 1px solid #bae6fd;
    border-radius: .65rem;
    padding: .65rem .75rem;
    color: #075985;
    background: #f0f9ff;
}

.bulk-galley-notice i {
    margin-top: .15rem;
}

.bulk-galley-notice p {
    margin: 0;
    font-size: .76rem;
    font-weight: 750;
    line-height: 1.4;
}

.bulk-galley-form > .app-modal__footer {
    margin-top: .8rem;
}

.bulk-galley-review-dialog {
    width: min(40rem, calc(100% - 2rem));
    max-width: none;
    max-height: calc(100dvh - 2rem);
    overflow: visible;
    border: 0;
    padding: 0;
    color: var(--slate-900);
    background: transparent;
}

.bulk-galley-review-dialog::backdrop {
    background: rgba(15, 23, 42, .66);
    backdrop-filter: blur(5px);
}

.bulk-galley-review-dialog__panel {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .8rem;
    background: #fff;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .3);
}

.bulk-galley-review-dialog__header p {
    color: #b45309;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.bulk-galley-review-dialog__body {
    display: grid;
    max-height: min(27rem, calc(100dvh - 14rem));
    gap: .9rem;
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
}

.bulk-galley-review-dialog__status {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    border: 1px solid #fde68a;
    border-radius: .65rem;
    padding: .8rem .9rem;
    color: #92400e;
    background: #fffbeb;
}

.bulk-galley-review-dialog__status.is-blocking {
    border-color: #fecaca;
    color: #991b1b;
    background: #fef2f2;
}

.bulk-galley-review-dialog__status i {
    margin-top: .15rem;
}

.bulk-galley-review-dialog__status p {
    margin: 0;
    font-size: .82rem;
    font-weight: 750;
    line-height: 1.45;
}

.bulk-galley-review-dialog__groups {
    display: grid;
    gap: .7rem;
}

.bulk-galley-review-group {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .7rem;
    background: #fff;
}

.bulk-galley-review-group summary {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
    background: var(--slate-50);
}

.bulk-galley-review-group summary::-webkit-details-marker {
    display: none;
}

.bulk-galley-review-group summary::after {
    content: '\f078';
    flex: 0 0 auto;
    color: var(--slate-500);
    font-family: "Font Awesome 6 Free";
    font-size: .72rem;
    font-weight: 900;
    transition: transform .18s ease;
}

.bulk-galley-review-group[open] summary::after {
    transform: rotate(180deg);
}

.bulk-galley-review-group summary > strong {
    min-width: 0;
    flex: 1;
    color: var(--slate-800);
    font-size: .82rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.bulk-galley-review-group__badges {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
}

.bulk-galley-review-group__badge {
    border-radius: 999px;
    padding: .2rem .5rem;
    font-size: .67rem;
    font-weight: 800;
    white-space: nowrap;
}

.bulk-galley-review-group__badge.is-error {
    color: #991b1b;
    background: #fee2e2;
}

.bulk-galley-review-group__badge.is-warning {
    color: #92400e;
    background: #fef3c7;
}

.bulk-galley-review-group__content {
    display: grid;
    gap: .9rem;
    border-top: 1px solid var(--slate-200);
    padding: .9rem 1rem 1rem;
}

.bulk-galley-review-group__scope {
    display: grid;
    gap: .7rem;
}

.bulk-galley-review-group__scope + .bulk-galley-review-group__scope {
    border-top: 1px dashed var(--slate-200);
    padding-top: .9rem;
}

.bulk-galley-review-group__scope > h4 {
    margin: 0;
    color: var(--slate-800);
    font-size: .77rem;
    font-weight: 850;
}

.bulk-galley-review-group__section h5 {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 0 0 .45rem;
    font-size: .74rem;
}

.bulk-galley-review-group__section.is-error h5 {
    color: #b91c1c;
}

.bulk-galley-review-group__section.is-warning h5 {
    color: #b45309;
}

.bulk-galley-review-group__section ul {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-left: 1.2rem;
}

.bulk-galley-review-group__section li {
    color: var(--slate-700);
    font-size: .8rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.bulk-galley-review-dialog [data-export-review-continue][hidden] {
    display: none !important;
}

@media (max-width: 560px) {
    .bulk-galley-review-dialog__body {
        padding: 1rem;
    }

    .bulk-galley-review-dialog .app-modal__footer {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .bulk-galley-review-group summary {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .bulk-galley-review-group__badges {
        width: calc(100% - 1.5rem);
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .publication-hero__actions,
    .publication-hero__button-row {
        width: 100%;
        align-items: stretch;
    }

    .publication-hero__button-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .publication-hero__button-row form,
    .publication-action-menu,
    .publication-hero__button-row .publication-primary-button {
        width: 100%;
    }

    .publication-action-menu__panel {
        right: auto;
        left: 0;
        width: 100%;
    }

    .bulk-galley-scope,
    .bulk-galley-export-types {
        grid-template-columns: minmax(0, 1fr);
    }

    .bulk-galley-formats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bulk-galley-section {
        padding: 1rem;
    }

    .bulk-galley-notice {
        margin-right: 1rem;
        margin-left: 1rem;
    }
}

.publication-format-section {
    min-width: 0;
}

.publication-format-workflow-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.publication-format-card {
    display: grid;
    align-content: space-between;
    gap: .9rem;
    min-width: 0;
    min-height: 13rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: .9rem;
    background: #fff;
}

.publication-format-card.is-published {
    border-color: #86efac;
}

.publication-format-card.is-approved {
    border-color: #93c5fd;
}

.publication-format-card.is-ready {
    border-color: #67e8f9;
}

.publication-format-card.is-review {
    border-color: #fed7aa;
}

.publication-format-card.is-queued,
.publication-format-card.is-sending {
    border-color: #bfdbfe;
    background: #f8fbff;
}

.publication-format-card.is-blocked {
    border-color: #fecaca;
}

.publication-format-card__head {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    min-width: 0;
}

.publication-format-card__icon {
    display: grid;
    flex: 0 0 auto;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    border-radius: .65rem;
    background: #f1f5f9;
    color: var(--brand);
}

.publication-format-card h4 {
    margin: 0;
    color: var(--slate-950);
    font-size: .94rem;
    font-weight: 850;
}

.publication-format-card__head span:not(.publication-format-card__icon) {
    display: block;
    margin-top: .18rem;
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 750;
}

.publication-format-card__body p {
    margin: 0;
    color: var(--slate-600);
    font-size: .82rem;
    line-height: 1.35rem;
}

.publication-format-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.publication-format-card__actions form {
    display: inline-flex;
    margin: 0;
}

.publication-secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border: 1px solid var(--slate-200);
    border-radius: .45rem;
    padding: .48rem .65rem;
    background: #fff;
    color: var(--slate-700);
    font-size: .78rem;
    font-weight: 850;
    line-height: 1;
}

.publication-secondary-button:hover {
    border-color: var(--brand);
    color: var(--brand);
}

.publication-secondary-button--approve {
    border-color: #86efac;
    color: #15803d;
}

.publication-secondary-button--review {
    border-color: #bfdbfe;
    color: var(--brand);
    background: #f8fbff;
}

.publication-secondary-button--review:hover {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.publication-secondary-button--send {
    border-color: #67e8f9;
    color: #0e7490;
}

.publication-secondary-button.is-disabled {
    cursor: not-allowed;
    opacity: .65;
}

.publication-local-flag {
    display: inline-flex;
    margin-left: .35rem;
    border-radius: 999px;
    padding: .12rem .4rem;
    background: #ecfeff;
    color: #0e7490;
    font-size: .68rem;
    font-style: normal;
    font-weight: 850;
    text-transform: uppercase;
}

.publication-local-metadata-grid {
    display: grid;
    grid-template-columns: minmax(18rem, .9fr) minmax(0, 1.1fr);
    gap: 1rem;
}

.publication-local-metadata-grid--dates {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.publication-local-metadata-form,
.publication-local-overrides {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.publication-local-metadata-form label {
    display: grid;
    gap: .35rem;
}

.publication-local-metadata-form label span,
.publication-card-head p {
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 750;
}

.publication-card-head p {
    margin: .2rem 0 0;
    line-height: 1.3rem;
}

.publication-local-metadata-form input,
.publication-local-metadata-form select,
.publication-local-metadata-form textarea {
    width: 100%;
    border: 1px solid var(--slate-200);
    border-radius: .6rem;
    padding: .65rem .75rem;
    background: #fff;
    color: var(--slate-800);
    font-size: .88rem;
}

.publication-local-metadata-form textarea {
    resize: vertical;
}

.publication-local-overrides article {
    display: grid;
    gap: .45rem;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: .8rem;
    background: #fbfdff;
}

.publication-local-overrides article > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
}

.publication-local-overrides strong,
.publication-local-overrides span,
.publication-local-overrides p,
.publication-local-overrides em {
    overflow-wrap: anywhere;
}

.publication-local-overrides strong {
    color: var(--slate-950);
    font-size: .9rem;
    font-weight: 850;
}

.publication-local-overrides span,
.publication-local-overrides p,
.publication-local-overrides em {
    margin: 0;
    color: var(--slate-500);
    font-size: .8rem;
    line-height: 1.35rem;
}

.publication-local-overrides em {
    color: #0e7490;
    font-style: normal;
    font-weight: 750;
}

.publication-content-panel {
    display: block;
}

.publication-sections-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}

.publication-content-form {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.publication-content-form label {
    display: grid;
    gap: .35rem;
}

.publication-content-form label span {
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 750;
}

.publication-content-form input,
.publication-content-form textarea {
    width: 100%;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: .85rem;
    background: #fff;
    color: var(--slate-800);
    font-size: .9rem;
    line-height: 1.5rem;
}

.publication-content-form textarea {
    resize: vertical;
}

.publication-section-modal__options {
    display: flex;
    align-items: center;
    gap: .85rem;
    flex-wrap: wrap;
}

.publication-content-form .publication-section-continue {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--slate-700);
    cursor: pointer;
}

.publication-content-form .publication-section-continue input {
    width: 1rem;
    height: 1rem;
    margin: 0;
    padding: 0;
    accent-color: var(--brand);
}

.publication-content-form .publication-section-continue span {
    color: inherit;
    font-size: .8rem;
    font-weight: 750;
}

.publication-section-compact-list {
    display: grid;
    gap: .85rem;
}

.publication-section-compact-card {
    display: grid;
    gap: .8rem;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: 1rem 1.05rem;
    background: #fff;
}

.publication-section-compact-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.publication-section-compact-card__head > div:first-child {
    display: grid;
    gap: .2rem;
}

.publication-section-compact-card__head span {
    color: var(--slate-500);
    font-size: .76rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.publication-section-compact-card__head strong {
    color: var(--slate-950);
    font-size: 1rem;
    line-height: 1.45rem;
}

.publication-section-compact-card__actions {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.publication-section-compact-card__actions form {
    margin: 0;
}

.publication-section-compact-card__preview {
    margin: 0;
    color: var(--slate-600);
    font-size: .92rem;
    line-height: 1.65rem;
}

.publication-empty-state {
    display: grid;
    gap: .85rem;
    border: 1px dashed var(--slate-300);
    border-radius: .5rem;
    padding: 1rem 1.05rem;
    background: #fff;
}

.publication-empty-state p {
    margin: 0;
    color: var(--slate-600);
}

.publication-secondary-button--danger {
    border-color: #fecaca;
    color: #b91c1c;
}

.publication-secondary-button--danger:hover {
    border-color: #fca5a5;
    color: #991b1b;
}

.publication-section-builder {
    display: grid;
    gap: .85rem;
}

.publication-section-builder__list {
    display: grid;
    gap: .85rem;
}

.publication-section-item {
    display: grid;
    gap: .75rem;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: .9rem;
    background: #fbfdff;
}

.publication-section-item__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.publication-section-item__head strong {
    color: var(--slate-950);
    font-size: .9rem;
    font-weight: 850;
}

.publication-section-builder__add {
    justify-self: start;
}

.publication-content-form .tox-tinymce {
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    overflow: hidden;
}

.publication-content-form .tox .tox-toolbar,
.publication-content-form .tox .tox-toolbar__primary,
.publication-content-form .tox .tox-editor-header {
    background: #f8fafc;
}

.publication-content-form .tox .tox-edit-area__iframe {
    background: #fff;
}

.publication-content-note {
    margin: .1rem 0 0;
    color: var(--slate-500);
    font-size: .8rem;
    line-height: 1.35rem;
}

.publication-single-sync__changes {
    display: grid;
    gap: .65rem;
}

.publication-single-sync__changes article {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .55rem;
    padding: .8rem;
    background: #fff;
}

.publication-single-sync__changes strong {
    display: block;
    margin-bottom: .55rem;
    color: var(--slate-950);
    font-size: .86rem;
    font-weight: 850;
}

.publication-single-sync__changes dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
    margin: 0;
}

.publication-single-sync__changes div {
    min-width: 0;
    border-radius: .45rem;
    padding: .6rem;
    background: #f8fafc;
}

.publication-single-sync__changes dt {
    color: var(--slate-500);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.publication-single-sync__changes dd {
    margin: .25rem 0 0;
    color: var(--slate-800);
    font-size: .8rem;
    line-height: 1.3rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.publication-single-sync__empty {
    margin: 0;
    border: 1px dashed var(--slate-200);
    border-radius: .55rem;
    padding: .85rem;
    color: var(--slate-500);
    background: #fff;
    font-size: .86rem;
}

@media (max-width: 1100px) {
    .publication-format-workflow-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .publication-sections-toolbar,
    .publication-section-compact-card__head,
    .publication-section-compact-card__actions {
        align-items: stretch;
        justify-content: flex-start;
    }

    .publication-sections-toolbar,
    .publication-section-compact-card__head {
        display: grid;
    }
}

.publication-preview__header > span {
    border: 1px solid #bbf7d0;
    border-radius: .5rem;
    padding: .35rem .55rem;
    color: #15803d;
    background: #f0fdf4;
    font-size: .75rem;
    font-weight: 850;
}

.publication-preview__frame,
.publication-preview__code {
    width: 100%;
    min-height: 70dvh;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    background: #fff;
}

.publication-preview__frame {
    padding: 0;
}

.publication-preview__code {
    margin: 0;
    overflow: auto;
    padding: 1rem;
    color: var(--slate-800);
    font-size: .84rem;
    line-height: 1.45rem;
    white-space: pre-wrap;
}

@media (max-width: 767px) {
    .publication-hero,
    .publication-detail__header,
    .publication-preview__header {
        display: grid;
    }

    .publication-detail__actions {
        justify-items: stretch;
        width: 100%;
    }

    .publication-detail__action-group {
        justify-content: stretch;
    }

    .publication-detail__action-group form,
    .publication-detail__action-group .publication-secondary-button {
        width: 100%;
    }

    .publication-detail__actions p {
        text-align: left;
    }

    .publication-detail__grid,
    .publication-format-grid {
        grid-template-columns: 1fr;
    }

    .publication-single-sync__changes dl {
        grid-template-columns: 1fr;
    }

    .publication-flow-strip,
    .publication-format-workflow-grid,
    .publication-definition-list--compact,
    .publication-local-metadata-grid,
    .publication-content-panel {
        grid-template-columns: 1fr;
    }

    .publication-definition-list--compact div:last-child {
        grid-column: auto;
    }

    .publication-table,
    .publication-table thead,
    .publication-table tbody,
    .publication-table tr,
    .publication-table th,
    .publication-table td {
        display: block;
        width: 100%;
    }

    .publication-table thead {
        display: none;
    }

    .publication-table tbody {
        display: grid;
        gap: .75rem;
        padding: .75rem;
    }

    .publication-table tr {
        border: 1px solid var(--slate-200);
        border-radius: .75rem;
        padding: .75rem;
        background: #fff;
    }

    .publication-table td {
        display: grid;
        grid-template-columns: 7rem minmax(0, 1fr);
        gap: .75rem;
        border: 0;
        padding: .55rem 0;
    }

    .publication-table .table-selection {
        width: 100%;
        min-width: 0;
        padding: .55rem 0;
        text-align: left;
    }

    .publication-table td::before {
        content: attr(data-label);
        color: var(--slate-500);
        font-size: .72rem;
        font-weight: 850;
        letter-spacing: .03em;
        text-transform: uppercase;
    }
}

.app-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, .46);
    backdrop-filter: blur(4px);
    overscroll-behavior: none;
    touch-action: none;
}

.app-modal.is-visible {
    display: flex;
}

.app-modal__panel {
    position: relative;
    width: min(42rem, 100%);
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .24);
    overscroll-behavior: contain;
    touch-action: pan-y;
}

.app-modal__panel--wide {
    width: min(58rem, 100%);
}

.app-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--slate-200);
}

.app-modal__header > div {
    min-width: 0;
}

.app-modal__header p,
.app-modal__header h3 {
    overflow-wrap: anywhere;
}

.app-modal__header + form {
    padding: 1.5rem;
}

.app-modal__body {
    padding: 1.5rem;
}

.app-modal__close {
    display: grid;
    width: 2.25rem;
    height: 2.25rem;
    place-items: center;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    color: var(--slate-600);
    background: #fff;
    cursor: pointer;
}

.app-modal__close:hover {
    color: #fff;
    border-color: var(--brand);
    background: var(--brand);
}

.app-modal__password {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 1.5rem 1.5rem;
    padding: 1rem;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    background: var(--slate-50);
}

.app-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--slate-200);
    background: var(--slate-50);
}

.app-modal__footer--between {
    align-items: center;
    justify-content: space-between;
}

.connection-manage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.connection-manage__section {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .7rem;
    padding: 1rem;
    background: #fff;
}

.connection-manage__section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    margin-bottom: 1rem;
}

.connection-manage__section-head > div {
    min-width: 0;
}

.connection-manage__section-head h4 {
    min-width: 0;
    margin: 0;
    color: var(--slate-950);
    font-size: 1rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.connection-manage__section-head p {
    margin: .25rem 0 0;
    color: var(--slate-500);
    font-size: .84rem;
    line-height: 1.3rem;
    overflow-wrap: anywhere;
}

.connection-manage__section-head > span {
    flex: 0 1 auto;
    min-width: 0;
    border-radius: .5rem;
    padding: .3rem .6rem;
    color: var(--brand);
    background: var(--brand-panel);
    font-size: .72rem;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.connection-manage__form,
.connection-manage__inline-form {
    display: grid;
    gap: .9rem;
}

.connection-manage__form label {
    display: block;
}

.connection-manage__form label > span {
    display: block;
    margin-bottom: .35rem;
    color: var(--slate-700);
    font-size: .84rem;
    font-weight: 800;
}

.connection-manage__form input,
.connection-manage__form textarea,
.connection-manage__inline-form input,
.connection-token-group input {
    width: 100%;
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .72rem .8rem;
    color: var(--slate-950);
    background: #fff;
    outline: none;
}

.connection-manage__form textarea {
    resize: vertical;
}

.connection-manage__form input:focus,
.connection-manage__form textarea:focus,
.connection-manage__inline-form input:focus,
.connection-token-group input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px rgba(15, 47, 87, .15);
}

.connection-manage__form small,
.connection-manage__error {
    display: block;
    margin-top: .35rem;
    color: #dc2626;
    font-size: .8rem;
    font-weight: 400;
}

.connection-manage__inline-form {
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 1rem;
}

.connection-manage__inline-form button,
.connection-manage__journals-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid var(--brand);
    border-radius: .55rem;
    padding: .7rem .95rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .86rem;
    font-weight: 850;
}

.connection-manage__inline-form button:hover,
.connection-manage__journals-link:hover {
    background: var(--brand-strong);
}

.connection-manage__people {
    display: grid;
    gap: .7rem;
}

.connection-manage__person {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    min-width: 0;
    border: 1px solid var(--slate-100);
    border-radius: .65rem;
    padding: .8rem;
    background: #fbfdff;
}

.connection-permissions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem .65rem;
    width: min(100%, 34rem);
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    padding: .65rem;
    background: #f8fafc;
}

.connection-permissions > span {
    grid-column: 1 / -1;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 850;
    text-transform: uppercase;
}

.connection-permissions label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    color: var(--slate-700);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 700;
}

.connection-permissions input {
    width: .95rem;
    height: .95rem;
    accent-color: var(--brand);
    cursor: pointer;
}

.connection-permissions button {
    grid-column: 1 / -1;
    justify-self: start;
    border: 1px solid var(--brand);
    border-radius: .5rem;
    padding: .45rem .65rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 850;
}

.connection-manage__person > div {
    min-width: 0;
}

.connection-manage__person strong,
.connection-manage__person span,
.connection-manage__person em {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.connection-manage__person strong {
    color: var(--slate-950);
    font-size: .9rem;
}

.connection-manage__person span {
    margin-top: .2rem;
    color: var(--slate-500);
    font-size: .8rem;
}

.connection-manage__person em {
    width: fit-content;
    margin-top: .45rem;
    border-radius: .45rem;
    padding: .18rem .45rem;
    color: var(--slate-700);
    background: var(--slate-100);
    font-size: .72rem;
    font-style: normal;
    font-weight: 800;
}

.connection-manage__remove {
    flex: 0 0 auto;
    border: 1px solid #fecaca;
    border-radius: .5rem;
    padding: .45rem .6rem;
    color: #dc2626;
    background: #fff;
    cursor: pointer;
    font-size: .75rem;
    font-weight: 850;
}

.connection-manage__remove:hover {
    background: #fef2f2;
}

.connection-manage__readonly {
    display: grid;
    gap: .55rem;
    border-radius: .65rem;
    padding: 1rem;
    color: var(--slate-600);
    background: var(--slate-50);
    font-size: .88rem;
}

.connection-manage__readonly p {
    margin: 0;
    overflow-wrap: anywhere;
}

.connection-token-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem;
}

.connection-token-label {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-width: 0;
}

.connection-token-label button,
.connection-token-group button {
    border: 1px solid #c9d5e2;
    border-radius: .5rem;
    padding: .7rem .75rem;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
    font-size: .82rem;
    font-weight: 850;
}

.connection-token-label button:hover,
.connection-token-group button:hover {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.connection-token-group .connection-token-copy {
    border-color: #a7f3d0;
    color: #047857;
    background: #ecfdf5;
}

.connection-token-group .connection-token-copy:hover {
    border-color: #059669;
    color: #fff;
    background: #059669;
}

.connection-token-hint {
    display: block;
    margin-top: .35rem;
    color: var(--slate-500);
    font-size: .78rem;
    font-style: normal;
    line-height: 1.2rem;
}

.journal-sync-preview {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    padding: 1rem 1.25rem 0;
}

.journal-sync-preview__header > div > span {
    display: block;
    margin-top: .35rem;
    color: var(--slate-500);
    font-size: .86rem;
}

.journal-sync-preview__block {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .75rem;
    padding: .85rem;
    background: #fff;
}

.journal-sync-preview__block:last-of-type {
    grid-column: auto;
}

.journal-sync-preview > .app-modal__footer {
    grid-column: 1 / -1;
    margin: 0 -1.25rem;
}

.journal-sync-preview__block-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .65rem;
    padding-bottom: .55rem;
    border-bottom: 1px solid var(--slate-100);
}

.journal-sync-preview__block-head h4 {
    margin: 0;
    color: var(--slate-950);
    font-size: .98rem;
    font-weight: 850;
}

.journal-sync-preview__block-head p {
    margin: .2rem 0 0;
    color: var(--slate-500);
    font-size: .82rem;
    line-height: 1.25rem;
}

.journal-sync-preview__summary {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
}

.journal-sync-preview__summary div {
    position: relative;
    min-width: 0;
    border: 1px solid #dbe3ec;
    border-radius: .6rem;
    padding: .7rem 2.85rem .7rem .75rem;
    background: #fbfdff;
}

.journal-sync-preview__summary strong,
.journal-sync-preview__summary span {
    display: block;
    overflow-wrap: anywhere;
}

.journal-sync-preview__summary strong {
    color: var(--slate-950);
    font-size: 1.08rem;
    font-weight: 900;
}

.journal-sync-preview__summary span {
    margin-top: .15rem;
    color: var(--slate-500);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.journal-sync-preview__eye {
    position: absolute;
    top: 50%;
    right: .65rem;
    display: inline-flex;
    width: 1.85rem;
    height: 1.85rem;
    align-items: center;
    justify-content: center;
    border: 1px solid #dbe3ec;
    border-radius: .5rem;
    color: #94a3b8;
    background: #f1f5f9;
    cursor: not-allowed;
    transform: translateY(-50%);
}

.journal-sync-preview__eye:disabled {
    cursor: not-allowed;
}

.journal-sync-preview__eye.is-active {
    border-color: #86efac;
    color: #15803d;
    background: #f0fdf4;
    cursor: pointer;
}

.journal-sync-preview__eye.is-active:hover {
    border-color: #22c55e;
    background: #dcfce7;
}

.journal-sync-preview__detail-button {
    display: inline-flex;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 1px solid #c9d5e2;
    border-radius: .55rem;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
}

.journal-sync-preview__detail-button:hover {
    border-color: var(--brand);
    background: var(--brand-panel);
}

.journal-sync-preview__detail-block {
    position: fixed;
    top: 50%;
    left: 50%;
    z-index: 80;
    display: none;
    width: min(62rem, calc(100vw - 2rem));
    max-height: calc(100dvh - 3rem);
    overflow: hidden;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 9999px rgba(15, 23, 42, .42), 0 24px 70px rgba(15, 23, 42, .22);
}

.journal-sync-preview__detail-block.is-visible {
    display: block;
}

.journal-sync-preview__options {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
}

.journal-sync-preview__options label {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(7.5rem, auto);
    align-items: center;
    gap: .75rem;
    min-width: 0;
    border: 1px solid #dbe3ec;
    border-radius: .65rem;
    padding: .7rem .75rem;
    background: #fbfdff;
}

.journal-sync-preview__options span {
    display: block;
    margin-bottom: 0;
    color: var(--slate-700);
    font-size: .76rem;
    font-weight: 800;
}

.journal-sync-preview__options select {
    width: 100%;
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .52rem .65rem;
    color: var(--slate-950);
    background: #fff;
    outline: none;
}

.journal-sync-preview__options select:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 2px rgba(15, 47, 87, .15);
}

.journal-sync-preview__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.journal-sync-preview__detail-block .journal-sync-preview__grid {
    grid-template-columns: 1fr;
}

.journal-sync-preview__detail-block .journal-sync-preview__grid section {
    max-height: min(32rem, calc(100dvh - 12rem));
}

.journal-sync-preview__grid section {
    min-width: 0;
    max-height: 28rem;
    overflow-y: auto;
    border: 1px solid #dbe3ec;
    border-radius: .7rem;
    padding: .85rem;
    background: #fbfdff;
}

.journal-sync-preview__grid h4 {
    position: sticky;
    top: -.85rem;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: -.85rem -.85rem .75rem;
    padding: .85rem;
    border-bottom: 1px solid var(--slate-100);
    color: var(--slate-950);
    background: #fbfdff;
    font-size: .95rem;
    font-weight: 850;
}

.journal-sync-preview__grid h4 span {
    display: inline-flex;
    min-width: 1.65rem;
    height: 1.35rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: var(--brand);
    background: var(--brand-panel);
    font-size: .75rem;
    font-weight: 850;
}

.journal-sync-preview__grid article {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .55rem;
    padding: .7rem;
    background: #fff;
}

.journal-sync-preview__select-all {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .65rem;
    border: 1px solid #dbe3ec;
    border-radius: .55rem;
    padding: .5rem .65rem;
    color: var(--brand);
    background: #fff;
    cursor: pointer;
    font-size: .8rem;
    font-weight: 800;
}

.journal-sync-preview__select-all input,
.journal-sync-preview__selectable input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--brand);
    cursor: pointer;
}

.journal-sync-preview__selectable {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: flex-start;
    gap: .65rem;
}

.journal-sync-preview__selectable strong,
.journal-sync-preview__selectable span,
.journal-sync-preview__selectable ul {
    grid-column: 2;
}

.journal-sync-preview__grid article + article {
    margin-top: .6rem;
}

.journal-sync-preview__grid strong,
.journal-sync-preview__grid span {
    display: block;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.journal-sync-preview__grid strong {
    color: var(--slate-950);
    font-size: .88rem;
    line-height: 1.25rem;
}

.journal-sync-preview__grid span,
.journal-sync-preview__grid p,
.journal-sync-preview__grid li {
    color: var(--slate-500);
    font-size: .8rem;
    line-height: 1.25rem;
}

.journal-sync-preview__grid p {
    margin: 0;
    border: 1px dashed var(--slate-200);
    border-radius: .55rem;
    padding: .75rem;
    background: #fff;
    text-align: center;
}

.journal-sync-preview__grid ul {
    margin: .55rem 0 0;
    padding-left: 1rem;
}

html.modal-open,
body.modal-open {
    overflow: hidden;
    overscroll-behavior: none;
}

html.modal-open .app-sidebar,
html.modal-open .app-header,
html.modal-open .app-content > :not(.app-modal) {
    pointer-events: none;
    user-select: none;
}

html.modal-open .app-modal.is-visible {
    pointer-events: auto;
    user-select: auto;
}

#publication-section-modal.is-preparing .app-modal__panel::before,
#publication-section-modal.is-preparing .app-modal__panel::after {
    position: absolute;
    z-index: 6;
    content: "";
}

#publication-section-modal.is-preparing .app-modal__panel::before {
    inset: 0;
    background: rgba(248, 250, 252, .82);
    backdrop-filter: blur(2px);
}

#publication-section-modal.is-preparing .app-modal__panel::after {
    top: 50%;
    left: 50%;
    padding: .75rem 1rem;
    border: 1px solid var(--brand-muted);
    border-radius: .65rem;
    color: var(--brand);
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 47, 87, .16);
    content: "Preparando editor...";
    font-size: .82rem;
    font-weight: 850;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.swal-modern {
    border-radius: .85rem !important;
}

.swal-password-copy {
    margin-top: .85rem;
    text-align: left;
}

.swal-password-copy__label {
    display: block;
    margin-bottom: .45rem;
    color: var(--slate-700);
    font-size: .82rem;
    font-weight: 800;
}

.swal-password-copy__group {
    display: flex;
    gap: .5rem;
}

.swal-password-copy__input {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .7rem .8rem;
    color: var(--slate-950);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.swal-password-copy__input:focus {
    border-color: var(--brand);
    outline: none;
    box-shadow: 0 0 0 2px rgba(15,47,87,.15);
}

.swal-password-copy__button {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    border: 1px solid var(--brand);
    border-radius: .5rem;
    padding: .7rem .9rem;
    color: #fff;
    background: var(--brand);
    cursor: pointer;
    font-size: .88rem;
    font-weight: 800;
}

.swal-password-copy__button:hover {
    background: var(--brand-strong);
}

.swal-password-copy__hint {
    margin: .55rem 0 0;
    color: var(--slate-500);
    font-size: .8rem;
}

@keyframes app-spin {
    to { transform: rotate(360deg); }
}

@media (min-width: 640px) {
    .sm\:block { display: block; }
}

@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .app-menu-button {
        display: none;
    }

    .journal-toolbar {
        grid-template-columns: minmax(16rem, 1fr) minmax(11rem, .65fr) minmax(10rem, .55fr) minmax(9rem, .45fr) auto;
        align-items: center;
    }

    .journal-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .journal-sync-preview__summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (min-width: 1024px) {
    .lg\:flex { display: flex; }
    .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .lg\:col-span-2 { grid-column: span 2 / span 2; }
    .lg\:col-span-3 { grid-column: span 3 / span 3; }
    .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }

    .connections-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .connection-detail {
        grid-template-columns: minmax(0, 1.1fr) minmax(22rem, .9fr);
        align-items: start;
    }

    .journal-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .xl\:grid-cols-\[1\.2fr_0\.8fr\] { grid-template-columns: 1.2fr .8fr; }
}

@media (max-width: 767px) {
    .app-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 50;
        display: flex;
        width: min(18rem, 82vw);
        height: 100vh;
        height: 100dvh;
        transform: translateX(-100%);
        transition: transform .2s ease;
    }

    .app-header,
    .app-content {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    body.sidebar-open .app-sidebar {
        transform: translateX(0);
    }

    body.sidebar-open .app-sidebar-overlay {
        display: block;
    }

    .connection-card__header,
    .connection-card__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .connection-toolbar,
    .connection-toolbar__filters,
    .connection-toolbar__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .connection-toolbar__search,
    .connection-toolbar select,
    .connection-toolbar__filters button,
    .connection-toolbar__filters a,
    .connection-toolbar__primary,
    .connection-toolbar__ghost {
        width: 100%;
    }

    .connection-toolbar__search {
        min-width: 0;
        flex: 0 0 auto;
    }

    .connection-card__metrics {
        grid-template-columns: 1fr;
    }

    .connection-detail__topbar,
    .connection-detail__hero-head,
    .connection-list__item {
        flex-direction: column;
    }

    .connection-detail__topbar {
        align-items: stretch;
    }

    .connection-detail__delete {
        justify-content: center;
        width: 100%;
    }

    .connection-detail__metrics,
    .connection-collaborator-form,
    .connection-permissions {
        grid-template-columns: 1fr;
    }

    .connection-detail__hero-head,
    .connection-panel {
        padding: 1rem;
    }

    .connection-detail__metrics {
        padding: 0 1rem 1rem;
    }

    .app-modal__footer--between,
    .connection-manage__person {
        align-items: stretch;
        flex-direction: column;
    }

    .connection-manage,
    .journal-sync-preview,
    .connection-manage__inline-form,
    .connection-token-group,
    .journal-sync-preview__options,
    .journal-sync-preview__grid {
        grid-template-columns: 1fr;
    }

    .journal-sync-preview__options label {
        grid-template-columns: 1fr;
        gap: .45rem;
    }
}

.queue-monitor {
    display: grid;
    gap: 1.15rem;
}

.queue-monitor__header,
.queue-panel__header,
.queue-monitor__actions,
.queue-summary-card,
.queue-alert,
.queue-timeline__header,
.queue-timeline__item {
    display: flex;
    align-items: center;
}

.queue-monitor__header,
.queue-panel__header {
    justify-content: space-between;
    gap: 1rem;
}

.queue-monitor__header {
    padding: 1.35rem 1.5rem;
    border: 1px solid #cbdcf0;
    border-radius: 1rem;
    background:
        radial-gradient(circle at 85% 15%, rgba(67, 157, 218, .16), transparent 24rem),
        linear-gradient(135deg, #f8fcff 0%, #eef6ff 100%);
}

.queue-monitor__eyebrow,
.queue-panel__header p {
    margin: 0 0 .35rem;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.queue-monitor__header h2,
.queue-panel__header h3 {
    margin: 0;
    color: var(--slate-950);
}

.queue-monitor__header h2 {
    font-size: 1.45rem;
}

.queue-monitor__header p:not(.queue-monitor__eyebrow) {
    max-width: 42rem;
    margin: .45rem 0 0;
    color: var(--slate-600);
    font-size: .9rem;
    line-height: 1.55;
}

.queue-monitor__actions {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
}

.queue-monitor__connection,
.queue-monitor__refresh,
.queue-state,
.queue-format {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    width: fit-content;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.queue-monitor__connection {
    padding: .55rem .7rem;
    color: var(--slate-600);
    background: rgba(255, 255, 255, .75);
}

.queue-monitor__refresh {
    padding: .65rem .85rem;
    color: #fff;
    background: var(--brand);
    box-shadow: 0 7px 16px rgba(15, 47, 87, .18);
}

.queue-monitor__refresh:hover {
    color: #fff;
    background: var(--brand-strong);
}

.queue-alert {
    align-items: flex-start;
    gap: .8rem;
    border: 1px solid #fcd58b;
    border-radius: .85rem;
    padding: 1rem 1.1rem;
    color: #92400e;
    background: #fffbeb;
}

.queue-alert > i {
    margin-top: .1rem;
    font-size: 1.15rem;
}

.queue-alert strong,
.queue-alert p {
    display: block;
}

.queue-alert p {
    margin: .28rem 0 .55rem;
    font-size: .86rem;
    line-height: 1.5;
}

.queue-alert code {
    display: inline-block;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #f4c970;
    border-radius: .45rem;
    padding: .45rem .55rem;
    color: #713f12;
    background: rgba(255, 255, 255, .7);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .78rem;
    white-space: nowrap;
}

.queue-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
}

.queue-summary-card {
    gap: .75rem;
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .85rem;
    padding: .9rem;
    background: #fff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .035);
}

.queue-summary-card > span {
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .7rem;
}

.queue-summary-card strong,
.queue-summary-card small {
    display: block;
}

.queue-summary-card strong {
    color: var(--slate-900);
    font-size: 1.35rem;
    line-height: 1;
}

.queue-summary-card small {
    margin-top: .25rem;
    color: var(--slate-500);
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.25;
}

.queue-summary-card--queued > span,
.queue-state--queued {
    color: #1d4ed8;
    background: #eff6ff;
}

.queue-summary-card--processing > span,
.queue-state--processing {
    color: #0e7490;
    background: #ecfeff;
}

.queue-summary-card--stalled > span,
.queue-summary-card--failed > span,
.queue-state--failed {
    color: #b91c1c;
    background: #fef2f2;
}

.queue-state--waiting {
    color: #a16207;
    background: #fefce8;
}

.queue-state--completed {
    color: #15803d;
    background: #f0fdf4;
}

.queue-panel {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 9px 24px rgba(15, 23, 42, .04);
}

.queue-panel__header {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--slate-200);
    background: #fbfdff;
}

.queue-panel__header h3 {
    font-size: 1rem;
}

.queue-panel__header > span {
    color: var(--slate-500);
    font-size: .76rem;
    font-weight: 800;
}

.queue-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.queue-table {
    min-width: 48rem;
}

.queue-table--deliveries {
    min-width: 65rem;
}

.queue-table td {
    vertical-align: top;
}

.queue-table td > strong,
.queue-table td > small,
.queue-table td .queue-state + small,
.queue-publication-link,
.queue-success-detail,
.queue-muted {
    display: block;
}

.queue-table td > small,
.queue-table td .queue-state + small,
.queue-muted {
    margin-top: .35rem;
    color: var(--slate-500);
    font-size: .76rem;
    line-height: 1.35;
}

.queue-state {
    padding: .38rem .55rem;
}

.queue-format {
    padding: .4rem .52rem;
    color: var(--brand);
    background: var(--brand-panel);
    letter-spacing: .05em;
}

.queue-publication-link {
    margin-top: .32rem;
    color: var(--brand);
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.35;
}

.queue-publication-link--title {
    margin-top: 0;
    color: var(--slate-800);
    font-size: .84rem;
}

.queue-publication-link--title:hover {
    color: var(--brand);
}

.queue-error {
    max-width: 30rem;
    margin: 0;
    color: #b91c1c;
    font-size: .8rem;
    line-height: 1.45;
}

.queue-success-detail {
    color: #15803d;
    font-size: .8rem;
    line-height: 1.45;
}

.queue-empty {
    padding: 1.4rem !important;
    color: var(--slate-500);
    text-align: center;
}

.queue-timeline {
    display: grid;
    gap: 0;
    margin: 0;
    padding: .4rem 1.15rem 1rem;
    list-style: none;
}

.queue-timeline__item {
    position: relative;
    align-items: flex-start;
    gap: .8rem;
    padding: .9rem 0;
}

.queue-timeline__item + .queue-timeline__item {
    border-top: 1px solid var(--slate-100);
}

.queue-timeline__dot {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 999px;
    font-size: .78rem;
}

.queue-timeline__content {
    min-width: 0;
    flex: 1 1 auto;
}

.queue-timeline__header {
    justify-content: space-between;
    gap: .7rem;
}

.queue-timeline__header time,
.queue-timeline__content > small {
    color: var(--slate-500);
    font-size: .75rem;
}

.queue-timeline__content > p {
    margin: .45rem 0;
    color: var(--slate-700);
    font-size: .84rem;
    line-height: 1.45;
}

.queue-timeline__content > small a {
    color: var(--brand);
    font-weight: 800;
}

.queue-context,
.queue-exception {
    margin-top: .6rem;
}

.queue-context summary,
.queue-exception summary {
    color: var(--brand);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 850;
}

.queue-context pre,
.queue-exception pre {
    max-height: 18rem;
    overflow: auto;
    margin: .5rem 0 0;
    border: 1px solid var(--slate-200);
    border-radius: .55rem;
    padding: .7rem;
    color: var(--slate-700);
    background: var(--slate-50);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .73rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 1023px) {
    .queue-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .queue-monitor__header,
    .queue-panel__header,
    .queue-monitor__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .queue-monitor__actions {
        justify-content: flex-start;
    }

    .queue-monitor__connection,
    .queue-monitor__refresh {
        justify-content: center;
    }

    .queue-summary {
        grid-template-columns: 1fr;
    }

    .queue-monitor__header,
    .queue-panel__header {
        padding: 1rem;
    }

    .queue-timeline {
        padding: .35rem 1rem .85rem;
    }

    .queue-timeline__header {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Editorial task monitor: problems first, infrastructure details on demand. */
.task-monitor {
    display: grid;
    gap: 1.25rem;
}

.task-header,
.task-panel__header,
.task-attention-card__heading,
.task-summary-card,
.task-alert,
.task-activity li {
    display: flex;
    align-items: center;
}

.task-header,
.task-panel__header,
.task-attention-card__heading {
    justify-content: space-between;
    gap: 1rem;
}

.task-header {
    padding: 1.45rem 1.6rem;
    border: 1px solid var(--brand-muted);
    border-radius: 1.1rem;
    background:
        radial-gradient(circle at 90% 5%, rgba(22, 59, 99, .13), transparent 19rem),
        linear-gradient(135deg, #f8fafc, var(--brand-panel));
}

.task-header__eyebrow,
.task-panel__header p {
    margin: 0 0 .35rem;
    color: var(--brand);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.task-header h2,
.task-panel__header h3 {
    margin: 0;
    color: var(--slate-950);
}

.task-header h2 {
    font-family: "Georgia", "Times New Roman", serif;
    font-size: 1.65rem;
}

.task-header p:not(.task-header__eyebrow) {
    max-width: 43rem;
    margin: .45rem 0 0;
    color: var(--slate-600);
    font-size: .92rem;
    line-height: 1.55;
}

.task-refresh {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    flex: 0 0 auto;
    border-radius: .65rem;
    padding: .72rem .9rem;
    color: #fff;
    background: var(--brand);
    box-shadow: 0 8px 16px rgba(15, 47, 87, .18);
    font-size: .82rem;
    font-weight: 850;
}

.task-refresh:hover {
    color: #fff;
    background: var(--brand-strong);
}

.task-alert {
    align-items: flex-start;
    gap: .8rem;
    border: 1px solid #f5c76b;
    border-radius: .85rem;
    padding: 1rem 1.15rem;
    color: #78350f;
    background: #fffbeb;
}

.task-alert > i {
    margin-top: .1rem;
    color: #b45309;
}

.task-alert strong,
.task-alert p {
    display: block;
}

.task-alert p {
    margin: .25rem 0 .5rem;
    font-size: .86rem;
    line-height: 1.5;
}

.task-alert summary,
.task-technical-detail summary {
    color: var(--brand);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 850;
}

.task-alert code {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    margin-top: .5rem;
    border: 1px solid #f5d18d;
    border-radius: .45rem;
    padding: .55rem;
    color: #713f12;
    background: rgba(255, 255, 255, .72);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .75rem;
    white-space: nowrap;
}

.task-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .9rem;
}

.task-summary-card {
    gap: .8rem;
    border: 1px solid var(--slate-200);
    border-radius: .9rem;
    padding: 1rem 1.1rem;
    background: #fff;
    box-shadow: 0 9px 22px rgba(15, 23, 42, .035);
}

.task-summary-card > span {
    display: grid;
    width: 2.45rem;
    height: 2.45rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .7rem;
}

.task-summary-card strong,
.task-summary-card small {
    display: block;
}

.task-summary-card strong {
    color: var(--slate-900);
    font-size: 1.45rem;
    line-height: 1;
}

.task-summary-card small {
    margin-top: .25rem;
    color: var(--slate-500);
    font-size: .77rem;
    font-weight: 800;
}

.task-summary-card--attention > span,
.task-state--failed {
    color: #b42318;
    background: #fff1f0;
}

.task-summary-card--active > span,
.task-state--processing {
    color: #1d4ed8;
    background: #eff6ff;
}

.task-summary-card--completed > span,
.task-state--completed {
    color: #15803d;
    background: #f0fdf4;
}

.task-state--queued {
    color: #1d4ed8;
    background: #eff6ff;
}

.task-state--waiting {
    color: #a16207;
    background: #fefce8;
}

.task-panel {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .95rem;
    background: #fff;
    box-shadow: 0 9px 24px rgba(15, 23, 42, .04);
}

.task-panel--attention {
    border-color: #f6d38c;
}

.task-panel__header {
    padding: 1.05rem 1.2rem;
    border-bottom: 1px solid var(--slate-200);
    background: #fbfdfc;
}

.task-panel--attention .task-panel__header {
    border-bottom-color: #f6e3b9;
    background: #fffcf5;
}

.task-panel__header h3 {
    font-size: 1.05rem;
}

.task-panel__header > span {
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 800;
}

.task-attention-list {
    display: grid;
    gap: .8rem;
    padding: 1rem 1.15rem 1.15rem;
}

.task-attention-card {
    border: 1px solid #f4dfb2;
    border-left: 4px solid #d97706;
    border-radius: .7rem;
    padding: 1rem 1.05rem;
    background: #fffdfa;
}

.task-attention-card__heading {
    align-items: flex-start;
}

.task-attention-card__heading > div {
    min-width: 0;
}

.task-attention-card__heading a,
.task-publication-link {
    display: block;
    color: var(--slate-800);
    font-size: .92rem;
    font-weight: 850;
    line-height: 1.4;
}

.task-attention-card__heading a {
    margin-top: .45rem;
}

.task-attention-card__heading a:hover,
.task-publication-link:hover {
    color: var(--brand);
}

.task-attention-card__heading small,
.task-publication-link + small,
.task-table td > small {
    display: block;
    margin-top: .3rem;
    color: var(--slate-500);
    font-size: .77rem;
    line-height: 1.4;
}

.task-attention-card__message {
    margin: .8rem 0;
    color: var(--slate-700);
    font-size: .86rem;
    line-height: 1.55;
}

.task-attention-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.5rem;
    margin: 0;
}

.task-attention-card__facts div {
    display: grid;
    gap: .1rem;
}

.task-attention-card__facts dt {
    color: var(--slate-500);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.task-attention-card__facts dd {
    margin: 0;
    color: var(--slate-800);
    font-size: .79rem;
    font-weight: 750;
}

.task-state,
.task-format {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    width: fit-content;
    border-radius: 999px;
    padding: .4rem .58rem;
    font-size: .75rem;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.task-format {
    color: var(--brand);
    background: var(--brand-panel);
    letter-spacing: .05em;
}

.task-technical-detail {
    margin-top: .8rem;
}

.task-technical-detail pre {
    max-height: 15rem;
    overflow: auto;
    margin: .5rem 0 0;
    border: 1px solid var(--slate-200);
    border-radius: .5rem;
    padding: .7rem;
    color: var(--slate-700);
    background: var(--slate-50);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .72rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.task-empty {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1.6rem;
    color: var(--slate-600);
}

.task-empty > i {
    color: #15803d;
    font-size: 1.55rem;
}

.task-empty strong,
.task-empty span {
    display: block;
}

.task-empty span {
    margin-top: .2rem;
    font-size: .8rem;
}

.task-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.task-table {
    width: 100%;
    min-width: 48rem;
    border-collapse: collapse;
}

.task-table th {
    padding: .8rem 1.2rem;
    color: var(--slate-500);
    background: var(--brand-panel);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .055em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.task-table td {
    padding: 1rem 1.2rem;
    border-top: 1px solid var(--slate-100);
    color: var(--slate-700);
    font-size: .84rem;
    line-height: 1.45;
    vertical-align: top;
}

.task-table tbody tr:hover {
    background: #f8fafc;
}

.task-table td > strong {
    display: block;
    color: var(--slate-800);
    font-size: .82rem;
}

.task-table__empty {
    padding: 1.5rem !important;
    color: var(--slate-500) !important;
    text-align: center;
}

.task-activity {
    display: grid;
    margin: 0;
    padding: 0 1.2rem;
    list-style: none;
}

.task-activity li {
    align-items: flex-start;
    gap: .8rem;
    padding: 1rem 0;
}

.task-activity li + li {
    border-top: 1px solid var(--slate-100);
}

.task-activity__icon {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 999px;
    color: var(--brand);
    background: var(--brand-panel);
    font-size: .76rem;
}

.task-activity p {
    margin: 0;
    color: var(--slate-700);
    font-size: .85rem;
    line-height: 1.45;
}

.task-activity small {
    display: block;
    margin-top: .28rem;
    color: var(--slate-500);
    font-size: .75rem;
}

.task-activity small a {
    color: var(--brand);
    font-weight: 800;
}

.task-diagnostics {
    border: 1px solid var(--slate-200);
    border-radius: .85rem;
    padding: .9rem 1rem;
    color: var(--slate-600);
    background: #fbfcfd;
}

.task-diagnostics > summary {
    color: var(--slate-700);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 850;
}

.task-diagnostics > p {
    margin: .65rem 0 0;
    font-size: .8rem;
    line-height: 1.45;
}

.task-diagnostics__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.task-diagnostics__grid section {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .65rem;
    background: #fff;
}

.task-diagnostics__grid h3 {
    margin: 0;
    padding: .75rem .9rem;
    border-bottom: 1px solid var(--slate-200);
    color: var(--slate-700);
    font-size: .8rem;
}

.task-table--technical {
    min-width: 38rem;
}

.task-table--technical th {
    padding: .65rem .85rem;
}

.task-table--technical td {
    padding: .8rem .85rem;
    font-size: .78rem;
}

@media (max-width: 1023px) {
    .task-diagnostics__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .task-header,
    .task-panel__header,
    .task-attention-card__heading {
        align-items: stretch;
        flex-direction: column;
    }

    .task-header,
    .task-panel__header {
        padding: 1rem;
    }

    .task-refresh {
        justify-content: center;
    }

    .task-summary {
        grid-template-columns: 1fr;
    }

    .task-attention-list {
        padding: .85rem;
    }

    .task-attention-card {
        padding: .9rem;
    }

    .task-attention-card__facts {
        display: grid;
        grid-template-columns: 1fr;
    }

    .task-activity {
        padding: 0 1rem;
    }

    .task-diagnostics {
        padding: .8rem;
    }
}

/* Compact task history: summaries lead, details stay inside modals. */
.task-actions {
    display: flex;
    justify-content: flex-start;
}

.task-queue-activity {
    display: flex;
    align-items: center;
    gap: .9rem;
    min-width: 0;
    border: 1px solid var(--brand-muted);
    border-radius: .85rem;
    padding: .8rem 1rem;
    color: var(--brand);
    background: var(--brand-panel);
}

.task-queue-activity--warning {
    border-color: #f1cf86;
    color: #8a510d;
    background: #fff9ec;
}

.task-queue-animation {
    display: flex;
    align-items: center;
    width: 6.6rem;
    flex: 0 0 auto;
    gap: .42rem;
}

.task-queue-animation::before,
.task-queue-animation::after {
    width: .7rem;
    height: .15rem;
    content: "";
    border-radius: 999px;
    background: currentColor;
    opacity: .45;
}

.task-queue-animation span {
    width: .62rem;
    height: .62rem;
    border-radius: 999px;
    background: currentColor;
    animation: task-queue-pulse 1.4s ease-in-out infinite;
}

.task-queue-animation span:nth-child(2) { animation-delay: .15s; }
.task-queue-animation span:nth-child(3) { animation-delay: .3s; }
.task-queue-animation span:nth-child(4) { animation-delay: .45s; }

.task-queue-activity strong,
.task-queue-activity p {
    display: block;
}

.task-queue-activity strong {
    font-size: .85rem;
}

.task-queue-activity p {
    margin: .15rem 0 0;
    color: var(--slate-600);
    font-size: .78rem;
}

@keyframes task-queue-pulse {
    0%, 100% { opacity: .25; transform: translateX(0); }
    50% { opacity: 1; transform: translateX(.24rem); }
}

.task-history {
    overflow: hidden;
    border: 1px solid var(--slate-200);
    border-radius: .95rem;
    background: #fff;
    box-shadow: 0 9px 24px rgba(15, 23, 42, .04);
}

.task-history__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    border-bottom: 1px solid var(--slate-200);
    background: #f8fafc;
}

.task-history__header p {
    margin: 0 0 .3rem;
    color: var(--brand);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.task-history__header h2 {
    margin: 0;
    color: var(--slate-950);
    font-size: 1.1rem;
}

.task-history__header > span {
    color: var(--slate-500);
    font-size: .78rem;
    font-weight: 800;
}

.task-filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .65rem;
    padding: .95rem 1.2rem;
    border-bottom: 1px solid var(--slate-200);
    background: var(--brand-panel);
}

.task-filters__search {
    position: relative;
    min-width: 0;
    flex: 1 1 18rem;
}

.task-filters__search > i {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: .78rem;
    color: var(--slate-400);
    transform: translateY(-50%);
    pointer-events: none;
}

.task-filters input,
.task-filters select {
    min-width: 0;
    height: 2.42rem;
    border: 1px solid var(--slate-300);
    border-radius: .5rem;
    padding: .5rem .62rem;
    color: var(--slate-700);
    background: #fff;
    font-size: .8rem;
}

.task-filters input {
    width: 100%;
    padding-left: 2.25rem;
}

.task-filters select {
    width: auto;
    max-width: 15rem;
    flex: 1 1 8.5rem;
}

.task-filters input:focus,
.task-filters select:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(15, 47, 87, .15);
}

.task-filters__clear {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.42rem;
    border-radius: .5rem;
    padding: .5rem .72rem;
    color: var(--brand);
    font-size: .78rem;
    font-weight: 850;
    white-space: nowrap;
}

.task-filters__clear:hover {
    background: #fff;
}

.task-history__table {
    min-width: 68rem;
}

.task-history__index {
    width: 3.5rem;
    color: var(--slate-500) !important;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.task-history__actions {
    width: 4.25rem;
    text-align: center;
}

.task-origin {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    width: fit-content;
    border-radius: 999px;
    padding: .38rem .58rem;
    font-size: .73rem;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.task-origin--batch {
    color: var(--brand);
    background: var(--brand-panel);
}

.task-origin--individual {
    color: var(--slate-600);
    background: var(--slate-100);
}

.task-error-preview {
    display: flex !important;
    align-items: flex-start;
    gap: .35rem;
    max-width: 24rem;
    color: #b42318 !important;
    font-weight: 700;
}

.task-error-preview i {
    margin-top: .18rem;
    flex: 0 0 auto;
}

.task-history .pagination-container {
    margin: 0;
    padding: 1rem 1.2rem;
    border-top: 1px solid var(--slate-200);
}

.task-detail-modal__body {
    display: grid;
    gap: 1rem;
}

.task-detail-modal__status {
    display: grid;
    gap: .55rem;
    border: 1px solid var(--brand-muted);
    border-radius: .7rem;
    padding: .9rem;
    background: var(--brand-panel);
}

.task-detail-modal__status p {
    margin: 0;
    color: var(--slate-700);
    font-size: .86rem;
    line-height: 1.5;
}

.task-detail-modal__status .task-detail-modal__error-summary {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    border-top: 1px solid #fecaca;
    padding-top: .7rem;
    color: #991b1b;
    font-weight: 700;
}

.task-detail-modal__error-summary i {
    margin-top: .18rem;
    flex: 0 0 auto;
}

.task-detail-modal > .app-modal__header {
    border-bottom-color: var(--brand-muted);
    background: var(--brand-panel);
}

.task-detail-modal > .app-modal__header p {
    color: var(--brand);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.task-detail-modal > .app-modal__footer {
    border-top-color: var(--brand-muted);
    background: #f8fafc;
}

.task-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

.task-detail-grid div {
    min-width: 0;
    border: 1px solid var(--slate-200);
    border-radius: .6rem;
    padding: .75rem;
    background: #fff;
}

.task-detail-grid dt {
    color: var(--slate-500);
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.task-detail-grid dd {
    margin: .28rem 0 0;
    color: var(--slate-800);
    font-size: .8rem;
    font-weight: 750;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.task-detail-modal__diagnostic,
.task-detail-modal__publication {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    width: fit-content;
    border: 1px solid var(--brand-muted);
    border-radius: .55rem;
    padding: .68rem .8rem;
    color: var(--brand);
    background: var(--brand-panel);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 850;
}

.task-detail-modal__diagnostic:hover,
.task-detail-modal__publication:hover {
    border-color: var(--brand);
    color: #fff;
    background: var(--brand);
}

.task-submodal {
    z-index: 90;
    width: min(52rem, calc(100vw - 2rem));
    border: 1px solid var(--slate-200);
    border-radius: .8rem;
    background: #fff;
}

.task-submodal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid var(--slate-200);
    background: var(--brand-panel);
}

.task-submodal__header p,
.task-submodal__header h4 {
    margin: 0;
}

.task-submodal__header p {
    color: var(--brand);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.task-submodal__header h4 {
    margin-top: .25rem;
    color: var(--slate-900);
    font-size: 1rem;
}

.task-submodal__body {
    max-height: calc(100dvh - 10rem);
    overflow-y: auto;
    padding: 1rem 1.15rem;
}

.task-submodal__error {
    border: 1px solid #fecaca;
    border-radius: .6rem;
    padding: .8rem;
    color: #991b1b;
    background: #fff7f7;
}

.task-submodal__error strong {
    display: block;
    font-size: .8rem;
}

.task-submodal pre {
    max-height: 14rem;
    overflow: auto;
    margin: .5rem 0 0;
    border: 1px solid var(--slate-200);
    border-radius: .45rem;
    padding: .65rem;
    color: var(--slate-700);
    background: var(--slate-50);
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .72rem;
    line-height: 1.45;
    white-space: pre-wrap;
    word-break: break-word;
}

.task-submodal__timeline {
    display: grid;
    gap: 0;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.task-submodal__timeline li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .8rem;
    padding: .85rem 0;
}

.task-submodal__timeline li + li {
    border-top: 1px solid var(--slate-100);
}

.task-submodal__timeline strong,
.task-submodal__timeline span {
    display: block;
}

.task-submodal__timeline strong {
    color: var(--slate-700);
    font-size: .82rem;
    line-height: 1.45;
}

.task-submodal__timeline span {
    margin-top: .25rem;
    color: var(--slate-500);
    font-size: .74rem;
}

.task-submodal__timeline summary {
    color: var(--brand);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 850;
    white-space: nowrap;
}

@media (max-width: 1180px) {
    .task-filters__search {
        flex-basis: 100%;
    }
}

@media (max-width: 767px) {
    .app-sidebar {
        max-width: min(18rem, 82vw);
        flex-basis: min(18rem, 82vw);
    }

    .task-queue-activity,
    .task-history__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .task-filters {
        align-items: stretch;
        flex-direction: column;
        padding: .85rem 1rem;
    }

    .task-filters__search,
    .task-filters select,
    .task-filters__clear {
        width: 100%;
        max-width: none;
        flex-basis: auto;
    }

    .task-history__header,
    .task-history .pagination-container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .task-detail-grid {
        grid-template-columns: 1fr;
    }

    .task-submodal__timeline li {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .task-queue-animation span {
        animation: none;
    }
}
