:root { --at-primary:#39798a; --at-navbar:#203b46; --at-background:#f2f6f7; --at-accent:#86baba; }
/* Default links include sortable table headings; component/state colours keep priority. */
:root { --bs-link-color:var(--at-primary); --bs-link-hover-color:var(--at-navbar); }
a { color:var(--bs-link-color); }
a:hover { color:var(--bs-link-hover-color); }
body { background-color:var(--at-background); }
body.bg-light { background-color:var(--at-background)!important; }
.btn-outline-primary { --bs-btn-color:var(--at-primary); --bs-btn-border-color:var(--at-primary); --bs-btn-hover-bg:var(--at-primary); --bs-btn-hover-border-color:var(--at-primary); --bs-btn-active-bg:var(--at-primary); --bs-btn-active-border-color:var(--at-primary); }
.text-primary { color:var(--at-primary)!important; }
.nav-pills .nav-link.active { background-color:var(--at-primary); }
.btn-primary { --bs-btn-bg:var(--at-primary); --bs-btn-border-color:var(--at-primary); --bs-btn-hover-bg:var(--at-navbar); --bs-btn-hover-border-color:var(--at-navbar); --bs-btn-active-bg:var(--at-navbar); --bs-btn-active-border-color:var(--at-navbar); }
.form-control:focus,.form-select:focus { border-color:var(--at-primary); box-shadow:0 0 0 .2rem color-mix(in srgb,var(--at-primary) 20%,transparent); }
nav.navbar.bg-primary { background-color:var(--at-navbar)!important; }
.at-logo { width:100%; max-width:260px; height:64px; object-fit:contain; }
.at-nav-brand { display:inline-flex!important; align-items:center; margin-right:1rem; }
.at-nav-brand .at-logo { width:145px; height:36px; padding:4px 9px; background:#fff; border-radius:8px; }
.at-service-footer { text-align:center; color:#596b73; font-size:.78rem; padding:1.2rem 1rem; }
.at-service-footer a { color:var(--at-primary); text-decoration:none; font-weight:600; }
.at-service-footer a:hover { text-decoration:underline; }
.at-login { min-height:100vh; padding:clamp(24px,6vh,64px) 16px 16px; background:radial-gradient(ellipse at top left,color-mix(in srgb,var(--at-accent) 30%,transparent),transparent 60%),var(--at-background)!important; }
.at-login-intro { text-align:center; margin:0 auto 1.5rem; color:#203b46; max-width:460px; }
.at-login-intro h1 { font-size:clamp(1.7rem,4vw,2.4rem); font-weight:700; letter-spacing:-.04em; }
.at-eyebrow { font-size:.7rem; letter-spacing:.18em; font-weight:700; color:var(--at-primary); }
.at-login > .container { max-width:480px; padding:0; }
.at-login .container .col-md-6 { width:100%; }
.at-login form .card { margin-top:0!important; border:1px solid #dbe5e8; border-radius:18px; box-shadow:0 18px 60px #203b4612; overflow:hidden; }
.at-login .card > a { display:flex; justify-content:center; padding:28px 24px 4px; }
.at-login .card-body { padding:24px 32px; }
.at-login .card-body > p { font-size:.9rem; color:#596b73; margin-bottom:24px; }
.at-login .card-footer { display:none; }
.at-login .card .btn-primary { border-radius:9px; font-size:1rem; padding:.8rem; margin-bottom:0!important; }
.at-login .card .input-group-text { background:#f7f9fa; color:var(--at-primary); }
.at-login .card .form-control { min-height:44px; }
.at-login .card .btn-link { color:var(--at-primary); font-size:.85rem; text-align:right; }
.at-login .fa-beat { animation:none!important; }
.at-login-intro + .container { margin-inline:auto; }
/* Sidebar and location bar: native permissions and utilities remain in use. */
.at-menu-toggle { color:#fff; border:0; display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:44px; padding:8px; flex-shrink:0; }
.at-menu-toggle:hover,.at-menu-toggle:focus-visible { background:#ffffff20; color:#fff; }
.at-hamburger .at-nav-brand { display:none!important; }
.at-hamburger .navbar-collapse { flex-basis:auto; flex-grow:1; min-width:0; }
.at-hamburger .navbar .container-fluid { flex-wrap:nowrap; gap:4px; }
.at-hamburger nav.navbar { min-height:58px; }
.at-breadcrumb { color:#fff; min-width:0; max-width:65%; }
.at-breadcrumb ol { display:flex; align-items:center; gap:12px; padding:0; margin:0; list-style:none; font-size:1rem; }
.at-breadcrumb li { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.at-breadcrumb li + li::before { content:'›'; margin-right:12px; opacity:.65; }
.at-drawer { --bs-offcanvas-width:280px; max-width:90vw; color:#fff; background:linear-gradient(165deg,var(--at-navbar),color-mix(in srgb,var(--at-navbar) 82%,var(--at-primary))); }
.at-drawer .offcanvas-header { padding:18px 16px; gap:12px; align-items:center; }
.at-drawer .offcanvas-header .btn-close { flex-shrink:0; }
.at-drawer .offcanvas-body { padding:8px 0 24px; }
.at-drawer-logo { display:flex; flex:1; min-width:0; justify-content:center; background:#fff; border-radius:7px; padding:7px 9px; }
.at-drawer-logo .at-logo { height:32px; width:100%; }
.at-menu-search { padding:0 16px 18px; }
.at-menu-search .form-control { color:#fff; background:#ffffff18; border-color:#ffffff40; min-height:42px; }
.at-menu-search .form-control::placeholder { color:#ffffffc9; }
.at-menu-search input::-webkit-search-cancel-button { filter:grayscale(1) brightness(3); }
.at-nav-list { list-style:none; padding:0; margin:0; }
.at-nav-list [hidden] { display:none!important; }
.at-nav-list .at-nav-list { padding:0; background:#00000012; }
.at-nav-list summary { position:relative; list-style:none; cursor:pointer; padding:13px 20px; font-weight:500; color:#fff; }
.at-nav-list summary::-webkit-details-marker { display:none; }
.at-nav-list summary::before { content:'▹'; display:inline-block; width:22px; }
.at-nav-list details[open] > summary { background:#ffffff18; box-shadow:inset 3px 0 #ffffff70; }
.at-nav-list details[open] > summary::before { content:'▾'; }
.at-nav-list summary:hover,.at-nav-link:hover { background:#ffffff18; color:#fff; }
.at-nav-link { display:flex; align-items:center; gap:8px; padding:12px 20px 12px 36px; margin:0; text-decoration:none; color:#fff; line-height:1.4; overflow-wrap:anywhere; }
.at-nav-list .at-nav-list .at-nav-list .at-nav-link { padding-left:52px; }
.at-nav-link.active { background:#ffffff24; color:#fff; box-shadow:inset 3px 0 var(--at-accent); font-weight:650; }
.at-nav-link:focus-visible,.at-nav-list summary:focus-visible,.at-drawer-logo:focus-visible { outline:2px solid #fff; outline-offset:-3px; }
.at-menu-empty { padding:0 20px; color:#ffffffce; font-size:.9rem; }
@media(max-width:575px) { .at-breadcrumb { max-width:56%; } .at-breadcrumb ol { font-size:.85rem; gap:7px; } .at-breadcrumb li + li::before { margin-right:7px; } .at-login .card-body { padding:20px; } .at-hamburger #menuIconHelp { display:none; } }
@media print { .at-service-footer,.at-menu-toggle,.at-drawer { display:none!important; } }
@media(prefers-reduced-motion:reduce) { .at-drawer { transition:none!important; } }

/* Corporate identity controls. */
.at-drawer-logo.at-logo-no-plate,.at-nav-brand.at-logo-no-plate .at-logo { background:transparent; }
.nav-tabs .nav-link,.page-link { color:var(--at-primary); }
.nav-tabs .nav-link.active { color:var(--at-navbar); border-top:2px solid var(--at-primary); }
.pagination .active > .page-link { background-color:var(--at-primary); border-color:var(--at-primary); color:#fff; }
.form-check-input:checked { background-color:var(--at-primary); border-color:var(--at-primary); }
.at-login-intro { color:var(--at-navbar); }
