/* 0.1.3: shared chrome, accessible navigation, centered controls, date filters.
   Original source-theme.css remains intact; these are requested refinements. */
:root {
    --portal-chrome-bg: linear-gradient(180deg, var(--portal-sidebar) 0%, var(--portal-sidebar-2) 100%);
    --portal-header-bg: var(--portal-sidebar);
    --portal-row-hover: #eaf3ff;
    --portal-row-active: #d4e8ff;
}
.portal-sidebar,
.portal-topbar,
.portal-hero {
    background: var(--portal-chrome-bg);
    color: #fff;
}
.portal-topbar { border-bottom-color: #0f2439; backdrop-filter: none; }
.portal-topbar h2, .portal-topbar .text-secondary { color: #fff !important; }
.portal-topbar .top-pill {
    background: rgba(255, 255, 255, .12);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .22);
}
.portal-topbar .scope-pill select { color: #fff; }
.portal-topbar .scope-pill select option { color: var(--portal-text); background: #fff; }
.portal-topbar .scope-pill select:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.portal-hero p, .portal-hero small { color: rgba(255, 255, 255, .88); }
/* Page, card/section and table headings all use the sidebar's navy base. */
#content .panel-title,
#content .step-title,
#content .form-section-card > h2,
#content .page-heading {
    background: var(--portal-header-bg);
    color: #fff;
    border-radius: 10px;
    padding: .7rem .9rem;
    line-height: 1.4;
}
#content .page-heading .muted { color: rgba(255,255,255,.85); }
#content table.table > thead > tr > th,
#content .nimble-grid-host .dt-scroll-head,
#content .nimble-grid-host .dt-scroll-head th {
    background: var(--portal-header-bg);
    color: #fff;
    --bs-table-bg: var(--portal-header-bg);
    --bs-table-color: #fff;
    --bs-table-accent-bg: transparent;
    box-shadow: none;
    border-color: rgba(255,255,255,.22);
}
#content .dt-column-order { color: #fff; }
/* Do not enlarge DataTables' invisible sizing header inside its scroll body. */
#content .dt-scroll-body .dt-scroll-sizing { height: 0; overflow: hidden; }

/* Flex centering corrects tall anchor/button text alignment everywhere. */
.portal-content .btn,
.portal-topbar .btn,
.auth-form-wrap .btn,
.impersonation-banner .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    text-align: center;
    line-height: 1.35;
    min-height: 44px;
    padding: .6rem .9rem;
    gap: .3rem;
}
.portal-content .btn-sm,
.portal-content .btn-small,
.portal-topbar .btn-sm,
.auth-form-wrap .btn-sm,
.impersonation-banner .btn-sm {
    min-height: 36px;
    padding: .4rem .65rem;
    line-height: 1.25;
}
.btn > .bi { flex-shrink: 0; line-height: 1; }
.toolbar-actions { align-items: center; }
#content .page-link { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; }

/* A real button, not a '#' link: no hash navigation or page-top jump. */
.portal-nav .nav-group-toggle {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    gap: .75rem; margin: .65rem 0 .35rem; padding: .7rem .85rem;
    min-height: 42px; line-height: 1.3; border: 0; border-radius: 10px;
    background: rgba(255,255,255,.07); color: rgba(255,255,255,.9);
    text-align: left; cursor: pointer; font-weight: 700;
}
.portal-nav .nav-group-toggle:hover { background: rgba(255,255,255,.14); }
.portal-nav .nav-group-toggle:focus-visible { outline: 2px solid #83b8f2; outline-offset: 2px; }
.portal-nav .nav-group-toggle[aria-expanded="false"] .nav-chevron { transform: rotate(-90deg); }
.portal-nav .nav-chevron { transition: transform .15s ease; flex-shrink: 0; }
.portal-nav .nav-group-links[hidden] { display: none !important; }
.portal-sidebar { overflow-anchor: none; scrollbar-gutter: stable; }
@media (prefers-reduced-motion: reduce) { .portal-nav .nav-chevron { transition: none; } }

/* Bootstrap paints table cells with inset shadows; highlight the cells, not TR. */
#content table.table > tbody > tr:hover > td,
#content table.table > tbody > tr:focus-within > td {
    --bs-table-bg-state: var(--portal-row-hover);
    --bs-table-accent-bg: var(--portal-row-hover);
    --bs-table-hover-bg: var(--portal-row-hover);
    color: var(--portal-text);
    box-shadow: inset 0 0 0 9999px var(--portal-row-hover) !important;
}
#content table.table > tbody > tr.nimble-row-selected > td {
    --bs-table-bg-state: var(--portal-row-active);
    --bs-table-accent-bg: var(--portal-row-active);
    color: var(--portal-text);
    box-shadow: inset 0 0 0 9999px var(--portal-row-active) !important;
}
#content table.table > tbody > tr.nimble-row-selected > td:first-child {
    box-shadow: inset 4px 0 0 var(--portal-accent), inset 0 0 0 9999px var(--portal-row-active) !important;
}
#content tr.nimble-selectable-row { cursor: pointer; }
#content tr.nimble-selectable-row:focus-visible { outline: 2px solid var(--portal-accent); outline-offset: -2px; }

.order-ranges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.order-range { min-width: 0; padding: .9rem; border: 1px solid var(--portal-border); border-radius: 12px; }
.order-range > legend { float: none; width: auto; font-weight: 700; font-size: .95rem; margin-bottom: 0; }
.order-range-inputs { display: flex; flex-wrap: wrap; gap: .75rem; }
.order-range-inputs > div { flex: 1 1 140px; min-width: 0; }
.order-range-inputs > div[hidden] { display: none !important; }
.order-range-inputs .form-select, .order-range-inputs .form-control { min-height: 42px; }
.order-range-hint { min-height: 1.5em; }
.order-filter-summary { border-left: 3px solid var(--portal-accent); padding: .65rem .85rem; background: #edf5ff; border-radius: 6px; color: var(--portal-text); }
@media (max-width: 991.98px) {
    .portal-sidebar { max-height: 65vh; overflow-y: auto; }
    .order-ranges { grid-template-columns: 1fr; }
    .portal-topbar { position: sticky; top: 0; }
}
@media (max-width: 575.98px) {
    .portal-topbar, .portal-content { padding: 1rem; }
    .order-range-inputs { flex-direction: column; }
    .order-range-inputs > div { flex-basis: auto; }
    .portal-content .btn { white-space: normal; }
}
