/* Application additions to AdminLTE 4 / Bootstrap 5. Vendor styles remain unmodified. */
:root { --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", sans-serif; }
body { font-size: .95rem; }
a { text-underline-offset: .2em; }
h1 { font-size: 1.8rem; font-weight: 650; margin-bottom: 1.25rem; }
h2 { font-size: 1.25rem; font-weight: 600; margin: 1.5rem 0 1rem; }
h3 { font-size: 1.05rem; font-weight: 600; }
:focus-visible { outline: 3px solid #c77b00; outline-offset: 3px; }
.skip-link { position: fixed; left: -10000px; }
.skip-link:focus { left: 1rem; top: .5rem; padding: .6rem 1rem; background: #fff; z-index: 1100; }
.app-sidebar { --lte-sidebar-width: 250px; }
.sidebar-wrapper { overflow-y: auto; }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; margin-right: .65rem; border-radius: .5rem; vertical-align: middle; flex-shrink: 0; }
.nav-icon { display: inline-flex; justify-content: center; align-items: center; font-style: normal; }
.sidebar-toggle { font-size: 1.3rem; }
.dashboard { min-width: 0; padding-bottom: 1.5rem; }
.panel { min-width: 0; padding: 1.5rem; overflow-wrap: anywhere; }
.panel > h2:first-child { margin-top: 0; }
.page-header { padding-block: 1.5rem; overflow-wrap: anywhere; }
.page-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; }
.page-heading h1 { min-width: 0; margin: 0; }
.page-links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 0; margin: 0; list-style: none; font-size: .875rem; }
.page-links a { display: inline-block; padding-block: .25rem; }
.admin-content > form, .login-panel form { max-width: 56rem; }
.admin-content label, .login-panel label { display: block; font-weight: 500; margin: .9rem 0 .35rem; }
.admin-content label .form-control, .admin-content label .form-select { margin-top: .35rem; }
.admin-content form > .btn, .login-panel form > .btn, fieldset + .btn { margin-top: 1rem; }
.admin-content form + form { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--bs-border-color); }
.admin-content form[method="get"] { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem 1rem; max-width: none; margin-bottom: 1.5rem; padding: 1rem; border-radius: .375rem; background: var(--bs-tertiary-bg); }
.admin-content form[method="get"] > label { flex: 1 1 13rem; margin: 0; }
.admin-content form[method="get"] > p { flex-basis: 100%; margin: .5rem 0; }
.admin-content form[method="get"] > .btn { margin-top: 0; }
.form-control, .form-select { max-width: 100%; }
.form-check-input { margin-right: .4rem; float: none; }
.form-check-input:checked[type="checkbox"] { background-image: url('/assets/icons/check.svg'); }
.form-select { --bs-form-select-bg-img: url('/assets/icons/chevron.svg'); }
textarea.form-control { min-height: 7rem; }
select[multiple] option { padding: .4rem .6rem; }
fieldset { min-width: 0; padding: 1rem; margin: 1rem 0; border: 1px solid var(--bs-border-color); border-radius: .375rem; }
legend { font-size: 1rem; font-weight: 600; }
[role="alert"] { color: #842029; background: #f8d7da; border: 1px solid #f1aeb5; padding: .8rem 1rem; border-radius: .375rem; }
dd { margin-bottom: 1rem; overflow-wrap: anywhere; }
dt { font-weight: 600; }
pre { max-width: 100%; overflow-x: auto; }
code, .wrapped-secret { overflow-wrap: anywhere; }
.wrapped-metadata { white-space: pre-wrap; overflow-wrap: anywhere; }
.button-link { display: inline-block; background: var(--bs-primary); color: #fff; padding: .45rem .8rem; border-radius: .375rem; text-decoration: none; }
.button-link:hover { background: #0b5ed7; color: #fff; }
.dashboard-nav { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.dashboard-nav a, nav[aria-label="Pagination"] a { display: inline-block; padding: .45rem .7rem; border: 1px solid var(--bs-border-color); border-radius: .375rem; background: var(--bs-body-bg); text-decoration: none; }
.dashboard-nav a[aria-current] { background: var(--bs-primary); color: white; border-color: var(--bs-primary); }
.admin-content > a { display: inline-block; margin: .5rem .5rem .5rem 0; }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.metric { margin-bottom: 0; padding: 1.25rem; border-top: 3px solid #444852; }
.metric h3 { font-size: .9rem; color: var(--bs-secondary-color); }
.metric-value { font-size: 2rem; font-weight: 700; font-variant-numeric: tabular-nums; margin: .4rem 0; }
.metric-value span { font-size: .95rem; font-weight: 400; }
.muted { color: var(--bs-secondary-color); font-size: .875rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; font-weight: 700; color: var(--bs-secondary-color); }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.dashboard-grid .card { margin-bottom: 0; }
.badge.good { background: #d1e7dd; color: #0a3622; }
.badge.bad { background: #f8d7da; color: #58151c; }
.badge.neutral { background: #e2e3e5; color: #2b2f32; }
.health-summary { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; padding: 0; list-style: none; }
.distribution { margin: 0; padding: 0; list-style: none; }
.distribution li { margin: .9rem 0; }
.distribution li > div { display: flex; justify-content: space-between; gap: 1rem; }
.distribution meter { display: block; width: 100%; height: .7rem; margin-top: .35rem; accent-color: var(--bs-primary); }
.table-scroll { max-width: 100%; overflow-x: auto; }
.table { width: 100%; font-size: .875rem; }
.table thead { --bs-table-bg: var(--bs-tertiary-bg); }
.table td, .table th { padding: .75rem; }
.table td { overflow-wrap: anywhere; min-width: 6rem; }
.table caption { caption-side: top; font-size: .8rem; }
.table td .btn { margin-top: 0; white-space: nowrap; }
.table td form { margin: 0; }
.table code { font-size: .8rem; }
.public-catalog { max-width: 1200px; }
.dashboard-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.catalog-grid .card { margin-bottom: 0; }
.catalog-grid h2 { margin-top: 0; }
.catalog-link { padding: 1rem 0; }
.catalog-label { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .5rem; }
.catalog-link a { display: block; padding: .65rem; border-radius: .375rem; background: var(--bs-tertiary-bg); }
.login-panel { width: min(30rem, calc(100% - 2rem)); padding: 2rem; margin: 2rem auto; }
.login-panel h1 { font-size: 1.5rem; }
.login-panel form > .btn { width: 100%; }
@media (max-width: 1199px) { .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
    .metric-grid, .dashboard-grid, .catalog-grid { grid-template-columns: minmax(0, 1fr); }
    .panel { padding: 1rem; }
    .app-header .container-fluid { gap: .5rem; }
    .app-header .navbar-brand { display: none; }
    .app-header .nav-link { font-size: .8rem; }
    .app-header .gap-3 { gap: .5rem !important; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0s !important; animation-duration: 0s !important; } }
/* Keep column labels readable; wide tables scroll inside their own container. */
.table th { white-space: nowrap; }
.table td { min-width: 8rem; max-width: 28rem; }
/* Public AdminLTE layout with top navigation and no sidebar column. */
.layout-top-nav .app-wrapper { grid-template-areas: "lte-app-header" "lte-app-main" "lte-app-footer"; grid-template-columns: minmax(0, 1fr); }
.layout-top-nav .app-header .navbar-brand { display: block; white-space: normal; font-size: 1.05rem;  }
.catalog-url-row { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.catalog-url-row a { flex: 1 1 15rem; min-width: 0; background-color: rgb(68, 72, 82); color: #ffffff; }
.catalog-copy { flex: 0 0 auto; }
.catalog-copy-status:empty { display: none; }
.catalog-intro { margin-bottom: 1.5rem; }
.layout-top-nav .app-header .btn { white-space: nowrap; }
/* Tabulator Bootstrap 5 adapted to the AdminLTE palette and application forms. */
.app-table { min-width: 0; max-width: 100%; }
.table-search { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; margin-bottom: .75rem; }
.table-search label { margin: 0; font-weight: 400; font-size: .875rem; }
.table-search input { width: min(100%, 18rem); }
.table-caption { margin-bottom: .75rem; font-size: .8rem; }
.tabulator.adminlte-table { font-family: inherit; font-size: .875rem; border: 1px solid var(--bs-border-color); border-radius: .375rem; background: var(--bs-body-bg); color: var(--bs-body-color); }
.tabulator.adminlte-table .tabulator-header,
.tabulator.adminlte-table .tabulator-header .tabulator-col { background: var(--bs-tertiary-bg); color: var(--bs-body-color); border-color: var(--bs-border-color); }
.tabulator.adminlte-table .tabulator-header .tabulator-col .tabulator-col-content { padding: .75rem; }
.tabulator.adminlte-table .tabulator-row { background: var(--bs-body-bg); color: var(--bs-body-color); border-color: var(--bs-border-color); }
.tabulator.adminlte-table .tabulator-row.tabulator-row-even { background: var(--bs-tertiary-bg); }
.tabulator.adminlte-table .tabulator-row:hover { background: var(--bs-secondary-bg); }
.tabulator.adminlte-table .tabulator-cell { padding: .75rem; white-space: normal; overflow-wrap: anywhere; border-color: var(--bs-border-color); }
.table-cell-content { min-width: 0; }
.table-cell-content form { margin: 0; }
.table-cell-content form + form { margin-top: .5rem; padding-top: 0; border: 0; }
.table-cell-content form > .btn { margin-top: 0; }
.table-cell-content .btn { white-space: normal; }
.tabulator.adminlte-table .tabulator-footer { background: var(--bs-body-bg); color: var(--bs-body-color); border-color: var(--bs-border-color); }
.tabulator.adminlte-table .tabulator-footer .tabulator-footer-contents { flex-wrap: wrap; gap: .5rem; }
.tabulator.adminlte-table .tabulator-footer .tabulator-page { color: var(--bs-primary); background: var(--bs-body-bg); border-color: var(--bs-border-color); }
.tabulator.adminlte-table .tabulator-footer .tabulator-page.active { background: #fff327; color: #444852; border-color: #fff327; }
.tabulator.adminlte-table .tabulator-footer .tabulator-page:disabled { color: var(--bs-secondary-color); }
.tabulator.adminlte-table .tabulator-placeholder .tabulator-placeholder-contents { color: var(--bs-secondary-color); font-size: .95rem; white-space: normal; }
@media (max-width: 767px) {
    .table-search { align-items: flex-start; flex-direction: column; }
    .tabulator.adminlte-table .tabulator-footer .tabulator-paginator { white-space: normal; }
}
.tabulator.adminlte-table .tabulator-footer .tabulator-page { white-space: nowrap; }
@media (max-width: 767px) {
    .tabulator.adminlte-table .tabulator-footer .tabulator-footer-contents { align-items: flex-start; flex-direction: column; }
    .tabulator.adminlte-table .tabulator-footer .tabulator-paginator { width: 100%; text-align: left; }
    .tabulator.adminlte-table .tabulator-footer .tabulator-page-size { margin-bottom: .5rem; }
    .tabulator.adminlte-table .tabulator-footer .tabulator-pages { display: inline-block; }
}

/* Public integration guides: readable prose, horizontally scrollable examples. */
.guide-layout { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: 1.5rem; }
.guide-main, .guide-content { min-width: 0; }
.guide-content { line-height: 1.7; overflow-wrap: anywhere; }
.guide-content h2, .guide-content h3, .guide-content h4 { margin-top: 1.75rem; scroll-margin-top: 5rem; }
.guide-content h2 { font-size: 1.4rem; }
.guide-content h3 { font-size: 1.15rem; }
.guide-content pre { padding: 1rem; border-radius: .375rem; background: var(--bs-tertiary-bg); overflow-x: auto; white-space: pre; }
.guide-content pre code { color: var(--bs-body-color); }
.guide-content table { display: block; overflow-x: auto; margin-bottom: 1.5rem; width: 100%; }
.guide-content th, .guide-content td { border: 1px solid var(--bs-border-color); padding: .6rem; }
.guide-content blockquote { border-left: .25rem solid var(--bs-primary); padding-left: 1rem; }
@media (max-width: 991px) { .guide-layout { grid-template-columns: minmax(0, 1fr); } }

/* Keep the favicon inside the original brand footprint. */
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sidebar-mini.sidebar-collapse .sidebar-brand .brand-mark { margin-right: 0; }
/* A compact icon rail remains available even below the drawer breakpoint. */
@media (max-width: 991.98px) {
    .sidebar-mini.sidebar-expand-lg > .app-wrapper { grid-template-columns: 4.6rem minmax(0, 1fr); }
    .sidebar-mini.sidebar-expand-lg.sidebar-collapse .app-sidebar { margin-left: 0; }
}
.btn-stelogy {
    color: rgb(255, 255, 255);
    background-color: rgba(255, 243, 39,0);
    border-color: rgba(255, 255, 255, 1);
}
.btn-stelogy:hover {
    background-color: rgba(255, 243, 39,0.2);
}

/* Stelogy active navigation, using the AdminLTE 4 sidebar-menu class. */
.sidebar-dark-stelogyYel .sidebar-menu > .nav-item > .nav-link.active {
    background-color: rgba(255, 243, 39, 1);
    color: #fff;
    border-color: rgba(255, 243, 39, 1);
}


/* Shared Stelogy link and button palette. Keep navigation states and buttons distinct. */
:root {
    --bs-link-color: #444852;
    --bs-link-color-rgb: 68, 72, 82;
    --bs-link-hover-color: #fff327;
    --bs-link-hover-color-rgb: 255, 243, 39;
}
a:not(.btn):not(.nav-link):not(.brand-link):not(.navbar-brand) { color: #444852; }
a:not(.btn):not(.nav-link):not(.brand-link):not(.navbar-brand):hover { color: #fff327; }
.btn-stelogy-grey {
    --bs-btn-color: #fff327;
    --bs-btn-bg: #444852;
    --bs-btn-border-color: #444852;
    --bs-btn-hover-color: #444852;
    --bs-btn-hover-bg: #fff327;
    --bs-btn-hover-border-color: #444852;
    --bs-btn-active-color: #444852;
    --bs-btn-active-bg: #fff327;
    --bs-btn-active-border-color: #444852;
    --bs-btn-disabled-color: #fff327;
    --bs-btn-disabled-bg: #444852;
    --bs-btn-disabled-border-color: #444852;
    --bs-btn-focus-shadow-rgb: 68, 72, 82;
}


/* Public home: publication URLs displayed as code. */
.public-page .catalog-link a code { color: #fff; }
.public-page .catalog-link a:hover code,
.public-page .catalog-link a:focus-visible code { color: #fff327; }


/* Stelogy pagination for Bootstrap and Tabulator. */
.pagination {
    --bs-pagination-active-bg: #fff327;
    --bs-pagination-active-border-color: #fff327;
    --bs-pagination-active-color: #444852;
    --bs-pagination-hover-bg: #444852;
    --bs-pagination-hover-border-color: #444852;
    --bs-pagination-hover-color: #fff;
}
.pagination .page-item:not(.active):not(.disabled) .page-link:hover { color: #fff; background-color: #444852; border-color: #444852; }
.pagination.pagination .page-item.active > .page-link,
.pagination.pagination .page-item.active > .page-link:hover { color: #444852; background-color: #fff327; border-color: #fff327; }
.tabulator.adminlte-table .tabulator-footer .tabulator-page:not(.active):not(:disabled):hover { background: #444852; color: #fff; border-color: #444852; }
.tabulator.adminlte-table .tabulator-footer .tabulator-page.active:hover { background: #fff327; color: #444852; border-color: #fff327; }
.card.card-outline.card-primary { border-top-color: #444852; }

.error-page { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 2rem; padding: 2rem; }
.error-illustration { display: block; width: 100%; max-width: 400px; height: auto; margin: auto; }
.error-code { color: #444852; font-weight: 700; font-size: 1.2rem; }
@media (max-width: 767px) { .error-page { grid-template-columns: minmax(0, 1fr); padding: 1.25rem; } .error-illustration { max-width: 240px; } }
