/* Shared workspace and contextual documentation. */
:root {
    --es-font-body: 1rem;
    --es-font-control: .9375rem;
    --es-font-caption: .875rem;
    --es-focus: 0 0 0 3px rgb(49 91 232 / 18%);
}
body { font-size: var(--es-font-body); line-height: 1.6; }
.app-content, .platform-main { padding-bottom: 48px; }
.app-content > .container-fluid { padding-inline: 0; }
.app-content h1, .app-content h2, .app-content h3, .platform-main h1, .platform-main h2, .platform-main h3 { text-wrap: balance; }
.page-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.page-header > :first-child { min-width: 0; }
.page-header h1, .page-header h2, .page-header h3 { margin-bottom: 0; font-size: clamp(1.35rem, 2.3vw, 1.75rem); font-weight: 700; letter-spacing: -.025em; }
.page-header .page-subtitle { font-size: var(--es-font-control); max-width: 65ch; margin-top: 6px; }
.page-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.page-location ol { display: flex; flex-wrap: wrap; gap: 6px 10px; list-style: none; padding: 0; margin: 0 0 18px; color: var(--es-muted); font-size: var(--es-font-caption); }
.page-location li + li::before { content: '/'; margin-right: 10px; color: #94a3b8; }
.page-location a { text-decoration: none; color: var(--es-primary); }
.page-location [aria-current] { color: #334155; }
.topbar-actions { display: flex; align-items: center; flex-shrink: 0; gap: 10px; }
.topbar-actions form { margin: 0; }
.topbar-help { gap: 7px; white-space: nowrap; }
.help-external-icon { font-size: .65em; }
.sidebar-nav .nav-link, .sidebar-nav summary { font-weight: 700; }
.sidebar-nav details ul .nav-link { font-size: var(--es-font-control); }
.sidebar-nav summary { gap: 3px; }
.sidebar-nav summary > i, .sidebar-nav summary::after { flex-shrink: 0; }
.card { box-shadow: 0 2px 6px rgb(20 32 57 / 3%); }
.card-header:not([class*="bg-"]) { background: #fafbfe; }
.card-header > h2, .card-header > h3, .card-header > h4, .card-header > h5, .card-header > h6 { margin: 0; font-size: 1rem; font-weight: 700; }
.card-footer { background: #fafbfe; border-color: var(--es-border); padding: 16px 20px; }
.card-footer .btn + .btn { margin-left: 6px; }
.form-label, .form-group > label { font-size: var(--es-font-control); }
.management-form { display: block; }
.management-form > .btn { margin-top: 8px; }
.filter-bar { row-gap: 16px; align-items: end; }
.filter-bar > * { min-width: 0; }
.form-control, .form-select { font-size: var(--es-font-body); min-height: 44px; }
.form-control:disabled, .form-control[readonly], .form-select:disabled { background-color: #f1f4f9; color: #526079; }
.form-text, .invalid-feedback, .valid-feedback, small, .small { font-size: var(--es-font-caption); }
.form-check-input { width: 1.15em; height: 1.15em; }
.form-check-label { padding-left: 3px; }
.btn { font-size: var(--es-font-control); min-height: 44px; }
.btn-sm { font-size: var(--es-font-caption); min-height: 40px; }
.btn:focus-visible, .form-control:focus, .form-select:focus { box-shadow: var(--es-focus); }
.table { font-size: var(--es-font-control); }
.table thead th { font-size: var(--es-font-caption); letter-spacing: .025em; vertical-align: middle; }
.table .table-dark th { color: #fff; background: #24334e; --bs-table-bg: #24334e; --bs-table-color: #fff; }
.table td .btn, .table td form.d-inline { margin-block: 2px; }
.table td .btn-group { gap: 3px; }
.table td.text-center[colspan] { padding-block: 28px; }
.badge { font-size: var(--es-font-caption); line-height: 1.25; white-space: normal; text-align: left; }
.alert { font-size: var(--es-font-control); overflow-wrap: anywhere; }
.alert ul:last-child { margin-bottom: 0; }
.dataTables_wrapper > .row:first-child { align-items: center; row-gap: 12px; margin-bottom: 16px; }
.dataTables_wrapper > .row:last-child { align-items: center; row-gap: 12px; margin-top: 16px; }
.dataTables_wrapper label, .dataTables_info { font-size: var(--es-font-caption); color: #526079; }
.dataTables_wrapper .dataTables_filter input { min-height: 42px; }
.dataTables_wrapper .dataTables_paginate .pagination { flex-wrap: wrap; gap: 4px; }
.pagination .page-link { border-radius: 7px; min-width: 40px; min-height: 40px; text-align: center; }
.nav-tabs { gap: 4px; }
.nav-tabs .nav-link { font-weight: 600; color: #526079; }
.nav-tabs .nav-link.active { color: var(--es-primary); border-bottom-color: #fff; }
.modal-content { border: 1px solid var(--es-border); border-radius: 16px; box-shadow: 0 20px 60px rgb(20 32 57 / 20%); }
.modal-header, .modal-footer { border-color: var(--es-border); }
.modal-title { font-size: 1.15rem; font-weight: 700; }
.help-header { margin-bottom: 28px !important; }
.help-layout { display: grid; grid-template-columns: minmax(230px, .8fr) minmax(0, 2fr); gap: 28px; align-items: start; }
.help-navigation { position: sticky; top: 94px; max-height: calc(100dvh - 118px); overflow-y: auto; padding: 20px; background: #fff; border: 1px solid var(--es-border); border-radius: 14px; scrollbar-width: thin; }
.help-search-status { margin: 8px 0 18px; font-size: var(--es-font-caption); color: var(--es-muted); }
.help-contents > summary { cursor: pointer; font-weight: 700; font-size: var(--es-font-control); padding-block: 8px; }
.help-group { margin-top: 20px; }
.help-group h2 { color: #526079; font-size: var(--es-font-caption); font-weight: 700; margin-bottom: 8px; }
.help-nav-link { display: block; border-radius: 8px; padding: 9px 11px; margin-bottom: 3px; color: #334155; font-size: var(--es-font-control); text-decoration: none; overflow-wrap: anywhere; }
.help-nav-link:hover { background: #f1f4fb; color: var(--es-primary-dark); }
.help-nav-link.active { background: #eaf0ff; color: #2447bd; font-weight: 700; box-shadow: inset 3px 0 #315be8; }
.help-article { padding: clamp(20px, 3vw, 40px); border: 1px solid var(--es-border); border-radius: 16px; background: #fff; scroll-margin-top: 100px; }
.help-article > h2 { font-size: clamp(1.4rem, 2.3vw, 1.9rem); font-weight: 700; }
.help-introduction { color: #526079; margin: 16px 0 28px; }
.help-access-note { color: var(--es-muted); font-size: var(--es-font-caption); padding-bottom: 18px; border-bottom: 1px solid var(--es-border); }
.help-article section { margin-top: 30px; }
.help-article h3 { font-size: 1.0625rem; font-weight: 700; margin-bottom: 16px; }
.help-steps { padding-left: 25px; }
.help-steps li { padding-left: 8px; margin-bottom: 14px; }
.help-steps li::marker { color: var(--es-primary); font-weight: 700; }
.help-definitions { margin: 0; }
.help-definitions > div { padding-block: 13px; border-bottom: 1px solid #e9eef5; }
.help-definitions dt { font-size: var(--es-font-control); color: #1e293b; }
.help-definitions dd { margin: 5px 0 0; color: #526079; font-size: var(--es-font-control); }
.help-notes { border-left: 3px solid #9bb0ee; padding: 18px 20px; background: #f5f7fe; border-radius: 0 10px 10px 0; }
.help-notes ul { padding-left: 20px; margin: 0; }
.help-notes li + li { margin-top: 10px; }
@container workspace (max-width: 850px) {
    .help-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .help-navigation { position: static; max-height: none; }
    #helpContents { max-height: 280px; overflow-y: auto; }
}
@media (max-width: 991.98px) {
    .platform-main .help-layout { grid-template-columns: minmax(0, 1fr); }
    .platform-main .help-navigation { position: static; max-height: none; }
    .platform-main #helpContents { max-height: 280px; overflow-y: auto; }
}
@media (max-width: 575.98px) {
    .topbar-actions { gap: 6px; }
    .topbar-help .help-external-icon { display: none; }
    .topbar-user strong { max-width: 34vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .page-actions { width: 100%; }
    .page-actions > .btn, .page-actions > form { flex: 1 1 auto; }
    .page-actions > form > .btn { width: 100%; }
    .table .btn { min-height: 44px; }
    .help-navigation { padding: 16px; }
    .help-article { scroll-margin-top: 90px; }
    .dataTables_wrapper .dataTables_length { text-align: left; }
}
@media print {
    .topbar-actions, .help-navigation, .help-header > a { display: none !important; }
    .help-layout { display: block; }
    .help-article { border: none; padding: 0; }
    .table-responsive { overflow: visible; }
}
