/* Screen-only design tokens inherit each area's configured colours and font. */
@media screen {
body.app-ui {
    --ui-primary: var(--primary-purple, var(--cms-admin, var(--cms-primary, #6B46C1)));
    --ui-secondary: var(--primary-purple-dark, var(--cms-admin-dark, var(--cms-secondary, #553C9A)));
    --ui-surface: var(--cms-card, #fff);
    --ui-text: var(--text-dark, var(--cms-text, #2D3748));
    --ui-muted: var(--cms-muted, #718096);
    --ui-border: var(--border-color, var(--cms-line, #E2E8F0));
    --ui-soft: color-mix(in srgb, var(--ui-primary) 6%, var(--ui-surface));
    --bs-primary: var(--ui-primary);
    --bs-body-color: var(--ui-text);
    --bs-body-bg: var(--ui-surface);
    --bs-border-color: var(--ui-border);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.app-ui :is(h1,h2,h3,h4,h5,h6) {line-height:1.4;font-weight:600;overflow-wrap:anywhere}
body.app-ui :is(.page-title,.section-heading) {margin-bottom:1.25rem}
body.app-ui :is(.card,.news-card,.download-item,.report-stat,.report-hero,.report-panel) {
    border:1px solid var(--ui-border);border-radius:14px;background:var(--ui-surface);color:var(--ui-text);
    box-shadow:0 2px 10px rgba(24,32,56,.04);overflow-wrap:anywhere;
}
body.app-ui .card:hover {box-shadow:0 3px 14px rgba(24,32,56,.07);transform:none}
body.app-ui .card .card-header {background:transparent;border-bottom:1px solid var(--ui-border);padding:1rem 1.25rem;font-weight:600;border-radius:14px 14px 0 0}
body.app-ui .card .card-body {padding:1.25rem}
body.app-ui .card-footer {background:transparent;border-top:1px solid var(--ui-border)}
body.app-ui .btn {border-radius:9px;min-height:40px;align-content:center;padding:.5rem .9rem;font-weight:500;line-height:1.5;max-width:100%;white-space:normal;transition:background-color .15s,border-color .15s,box-shadow .15s}
body.app-ui .btn-sm {min-height:34px;padding:.35rem .65rem}
body.app-ui .btn-primary {background:var(--ui-primary);border-color:var(--ui-primary);color:var(--cms-on-primary,#fff)}
body.app-ui .btn-primary:is(:hover,:focus-visible,:active) {background:var(--ui-secondary);border-color:var(--ui-secondary);color:var(--cms-on-primary,#fff)}
body.app-ui .btn-outline-primary {color:var(--ui-primary);border-color:var(--ui-primary);background:transparent}
body.app-ui .btn-outline-primary:is(:hover,:focus-visible,:active) {background:var(--ui-primary);color:var(--cms-on-primary,#fff)}
body.app-ui .btn:is(:disabled,.disabled) {opacity:.55;box-shadow:none;cursor:not-allowed}
body.app-ui :is(.form-control,.form-select,.select2-container--bootstrap-5 .select2-selection) {min-height:42px;border-radius:9px;border-color:var(--ui-border);background-color:var(--ui-surface);color:var(--ui-text);line-height:1.5}
body.app-ui textarea.form-control {min-height:100px;resize:vertical}
body.app-ui .form-control[readonly] {background:var(--ui-soft)}
body.app-ui :is(.form-control,.form-select):disabled {background:var(--ui-soft);opacity:.75}
body.app-ui :is(.form-control,.form-select):focus {border-color:var(--ui-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ui-primary) 16%,transparent)}
body.app-ui .form-label {font-weight:500;margin-bottom:.4rem}
body.app-ui :is(.invalid-feedback,.help-block) {line-height:1.5}
body.app-ui .has-error :is(input,select,textarea),body.app-ui :is(.form-control,.form-select).is-invalid {border-color:var(--bs-danger,#dc3545)}
body.app-ui :is(a,button,input,select,textarea,[tabindex]):focus-visible {outline:3px solid var(--ui-primary);outline-offset:3px}
body.app-ui .table {--bs-table-color:var(--ui-text);--bs-table-bg:var(--ui-surface);--bs-table-border-color:var(--ui-border);--bs-table-hover-bg:var(--ui-soft);margin-bottom:0}
body.app-ui .table > :not(caption) > * > * {padding:.8rem .9rem;vertical-align:middle}
body.app-ui .table thead th {background:var(--ui-soft);color:var(--ui-text);font-weight:600;letter-spacing:normal;text-transform:none;border-bottom:1px solid var(--ui-border)}
body.app-ui .table :is(td,th) {line-height:1.55}
body.app-ui .table a:not(.btn) {text-underline-offset:3px}
body.app-ui .table a:not(.btn):hover {text-decoration:underline}
body.app-ui .table-responsive {border-radius:10px;scrollbar-width:auto;scrollbar-color:var(--ui-primary) var(--ui-soft);overscroll-behavior-x:contain}
body.app-ui .table-responsive::-webkit-scrollbar {height:10px}
body.app-ui .table-responsive::-webkit-scrollbar-thumb {background:var(--ui-primary);border-radius:8px;border:2px solid var(--ui-surface)}
body.app-ui .table-responsive::-webkit-scrollbar-track {background:var(--ui-soft)}
body.app-ui .table-responsive.is-draggable {cursor:grab}
body.app-ui .table-responsive.is-dragging {cursor:grabbing}
body.app-ui .empty {padding:2rem 1rem;text-align:center;color:var(--ui-muted)}
body.app-ui .alert {border-radius:10px;line-height:1.6}
body.app-ui :is(.badge,.badge-status) {border-radius:7px;padding:.4em .65em;line-height:1.4;white-space:normal}
body.app-ui .dropdown-menu {border-radius:12px;padding:.4rem;border-color:var(--ui-border);box-shadow:0 8px 28px rgba(24,32,56,.12);max-width:calc(100vw - 24px)}
body.app-ui .dropdown-item {border-radius:7px;padding:.6rem .8rem;white-space:normal}
body.app-ui .dropdown-item:is(:hover,:focus) {background:var(--ui-soft);color:var(--ui-text)}
body.app-ui .nav-tabs {gap:.25rem;border-color:var(--ui-border)}
body.app-ui .nav-tabs .nav-link {border-radius:9px 9px 0 0;padding:.65rem .9rem;color:var(--ui-muted)}
body.app-ui .nav-tabs .nav-link.active {background:var(--ui-surface);border-color:var(--ui-border) var(--ui-border) var(--ui-surface);color:var(--ui-primary);font-weight:600}
body.app-ui .modal-content {border-radius:16px;border-color:var(--ui-border);background:var(--ui-surface);color:var(--ui-text)}
body.app-ui :is(.breadcrumb,.breadcrumb a) {overflow-wrap:anywhere}
body.app-ui .breadcrumb {margin-bottom:0;row-gap:.3rem}
body.app-ui .sidebar .nav-link,body.app-ui .cms-nav a {min-height:42px;border-radius:9px;line-height:1.6}
body.app-ui .sidebar .nav-link.active,body.app-ui .cms-nav a.active {box-shadow:inset 3px 0 0 currentColor;font-weight:600}
body.app-ui .top-navbar,body.app-ui .cms-topbar {min-height:64px;gap:1rem}
body.app-ui .cms-main {min-width:0}
body.app-ui-cms .cms-content {padding:20px;min-width:0}
body.app-ui .cms-topbar {flex-wrap:wrap}
body.app-ui .cms-menu-toggle {display:none}
body.app-ui .app-skip-link {position:fixed;top:-100px;left:1rem;z-index:2000;padding:.65rem 1rem;background:var(--ui-primary);color:#fff;border-radius:0 0 9px 9px}
body.app-ui .app-skip-link:focus {top:0}
body.app-ui .section-heading {gap:1rem}
body.app-ui .news-card {overflow:hidden}
body.app-ui .news-card img {transition:transform .18s}
body.app-ui .news-card:hover img {transform:scale(1.015)}
body.app-ui .download-item {gap:1rem;padding:1rem 1.25rem}
body.app-ui .content-section {padding:1.75rem 0}
@media(max-width:767px) {
    body.app-ui .btn {min-height:44px}
    body.app-ui :is(.form-control,.form-select) {min-height:44px}
    body.app-ui .card .card-body {padding:1rem}
    body.app-ui .card .card-header {padding:.85rem 1rem}
    body.app-ui-cms .cms-content {padding:14px}
    body.app-ui .cms-topbar {padding:10px 14px;position:sticky;top:0;z-index:100}
    body.app-ui .cms-menu-toggle {display:inline-flex}
    body.app-ui .cms-sidebar {position:fixed;width:min(300px,86vw);transform:translateX(-100%);height:100dvh;transition:transform .18s}
    body.app-ui .cms-sidebar.is-open {transform:translateX(0)}
    body.app-ui .cms-nav {max-height:none}
    body.app-ui .cms-topbar > div {min-width:0}
    body.app-ui .top-navbar > .d-flex {flex-wrap:wrap;gap:.65rem}
    body.app-ui .table > :not(caption) > * > * {padding:.7rem}
    body.app-ui .content-section {padding:1.25rem 0}
}
@media(prefers-reduced-motion:reduce) {body.app-ui *,body.app-ui *::before,body.app-ui *::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}}
}
