.main-menu-content{overflow-y:auto;height:calc(100vh - 80px)}.main-menu .navigation>li>a{display:flex;align-items:center}.table-sort{color:inherit}.table th.sorting{position:relative}.table th.sorting:after{content:'⌃⌄';font-size:10px;padding-right:6px;color:#aaa}.dataTables_filter{float:left;margin-top:1rem}.dataTables_filter input{display:block;width:160px}.dt-buttons{display:flex;width:176px;margin-right:0;margin-left:auto;clear:both}.table-responsive{clear:both}.dataTables_wrapper table{clear:both}.btn-group form{display:flex}.btn-group form .btn{border-radius:0 .3rem .3rem 0}.btn-group>a{border-radius:.3rem 0 0 .3rem}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.import-tools,.excel-upload{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.excel-upload input{width:250px}.login-page{background:#f8f8f8;min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:420px;max-width:calc(100% - 32px);border:0;box-shadow:0 4px 24px #0001}.login-card .card-body{padding:2rem}.login-card .brand-text{color:#7367f0}.selection-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.selection-count{font-weight:600}.certificates-table{min-width:1200px}.certificates-table td,.certificates-table th{white-space:nowrap}.certificates-table td.name-cell{white-space:normal;min-width:190px}.status-pill{padding:4px 9px;border-radius:20px;background:#e6f8ee;color:#1a8351;font-size:11px}.status-expired,.status-canceled{background:#ffebec;color:#d13a42}.status-pending{background:#fff5d6;color:#916f10}.mail-toggle{display:flex;align-items:center;gap:.7rem;padding:.75rem 0}.mail-toggle input{width:20px;height:20px}.header-navbar .btn.nav-link{padding:1.4rem .5rem}.validation-note{font-size:12px;color:#888}.sidenav-overlay{cursor:pointer}.upload-preview-table td{vertical-align:top}.private-export{max-width:800px}.dark-layout .table-sort{color:inherit}@media(max-width:1199px){body .main-menu{transform:translateX(100%);transition:transform .2s}body.menu-open .main-menu{transform:translateX(0)}body .app-content,body .footer{margin-right:0!important}body .header-navbar.floating-nav{width:calc(100% - 60px)!important;margin-right:30px!important}body.menu-open .sidenav-overlay{display:block;opacity:1;visibility:visible}body .main-menu .nav-toggle{display:block!important}}@media(max-width:767px){.content-header-right{text-align:right!important}.content-header-title{font-size:20px!important}.breadcrumb-wrapper{display:none}.pagination-row{display:block}.pagination{margin-top:1rem}.excel-upload input{width:100%}.excel-upload{width:100%}.dt-buttons{width:154px}.dataTables_filter input{width:136px}.card-body{padding:1.1rem}.selection-toolbar{align-items:stretch}}
@media print{body .main-menu,body .header-navbar,body .content-header,body .footer,.dataTables_filter,.dt-buttons,.pagination-row,.import-tools{display:none!important}body .app-content{margin:0!important;padding:0!important}.card{box-shadow:none}.table td:last-child,.table th:last-child{display:none}}
.certificate-color-input{display:flex;gap:12px;align-items:center}.certificate-color-input>.form-control{max-width:260px;direction:ltr}.certificate-color-input .btn{display:flex;align-items:center;gap:8px;white-space:nowrap}.certificate-color-swatch{display:inline-block;width:24px;height:24px;border-radius:50%;border:1px solid #b4b4b4}.certificate-color-dialog{width:380px;max-width:calc(100vw - 32px);border:0;border-radius:12px;padding:24px;box-shadow:0 20px 60px #0004;color:#333;font-family:inherit}.certificate-color-dialog::backdrop{background:#0006}.certificate-color-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.certificate-color-dialog h4{margin:0}.color-dialog-close{background:none;border:0;font-size:26px;line-height:1}.color-wheel-wrap{position:relative;width:256px;height:256px;margin:16px auto}.color-wheel-wrap canvas{width:100%;height:100%;border-radius:50%;touch-action:none;cursor:crosshair}.color-wheel-wrap canvas:focus-visible{outline:3px solid #7367f0;outline-offset:5px}.color-wheel-cursor{position:absolute;width:14px;height:14px;border:2px solid white;border-radius:50%;box-shadow:0 0 2px 2px #0007;transform:translate(-50%,-50%);pointer-events:none}.certificate-color-dialog input[type=range]{width:100%;accent-color:#7367f0;margin-bottom:16px}.color-preview-row{display:flex;gap:12px;align-items:center}.color-selected-preview{display:block;width:38px;height:38px;border-radius:50%;border:1px solid #bbb;flex-shrink:0}.color-preview-row input{width:140px;border:1px solid #ddd;border-radius:6px;padding:8px}.color-keyboard-help{font-size:11px;color:#777;margin:12px 0}.certificate-color-dialog footer{display:flex;gap:10px;margin-top:16px}.dark-layout .certificate-color-dialog{background:#10163a;color:#eee}
.certificate-color-dialog{font-family:Tahoma,Arial,sans-serif;font-size:14px}.certificate-color-dialog p{line-height:1.7}.certificate-color-input .btn{font-family:Tahoma,Arial,sans-serif}

/* Dashboard refinement: shared controls and predictable task density. */
body.dashboard-shell {
    --dashboard-bg: #f3f5f8;
    --dashboard-surface: #ffffff;
    --dashboard-subtle: #f7f9fc;
    --dashboard-text: #263449;
    --dashboard-muted: #58677b;
    --dashboard-border: #d5dde8;
    --dashboard-accent: #23476c;
    --dashboard-accent-hover: #183654;
    --dashboard-selected: #e8eef6;
    --dashboard-focus: #3d70a5;
    background: var(--dashboard-bg);
    color: var(--dashboard-text);
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    line-height: 1.55;
}
body.dashboard-shell.dark-layout {
    --dashboard-bg: #111b29;
    --dashboard-surface: #1a2739;
    --dashboard-subtle: #202f43;
    --dashboard-text: #e5ebf4;
    --dashboard-muted: #b4c1d2;
    --dashboard-border: #415168;
    --dashboard-accent: #a4c7ed;
    --dashboard-accent-hover: #c3dcf7;
    --dashboard-selected: #2b4059;
    --dashboard-focus: #a4c7ed;
    color-scheme: dark;
}
body.dashboard-shell ::selection { background: var(--dashboard-selected); color: var(--dashboard-text); }
body.dashboard-shell a { color: var(--dashboard-accent); text-underline-offset: .2em; }
body.dashboard-shell a:hover { color: var(--dashboard-accent-hover); }
body.dashboard-shell h1, body.dashboard-shell h2, body.dashboard-shell h3,
body.dashboard-shell h4, body.dashboard-shell h5, body.dashboard-shell h6 { color: var(--dashboard-text); font-family: inherit; }
body.dashboard-shell .text-muted, body.dashboard-shell .validation-note { color: var(--dashboard-muted) !important; }
body.dashboard-shell .validation-note { font-size: .9rem; line-height: 1.6; margin: .5rem 0 0; }
body.dashboard-shell .primary { color: var(--dashboard-accent) !important; }
body.dashboard-shell .app-content.content { padding: 7rem 1.5rem 1.5rem; }
body.dashboard-shell .app-content .content-wrapper { margin-top: 0; padding: 1rem 0 0; }
body.dashboard-shell .header-navbar.floating-nav {
    background: var(--dashboard-surface);
    border: 1px solid var(--dashboard-border);
    box-shadow: none;
    margin: 1rem 1.5rem 0;
    width: calc(100% - 260px - 3rem);
    border-radius: .6rem;
}
body.dashboard-shell .header-navbar .nav-link { color: var(--dashboard-text); }
body.dashboard-shell .header-navbar .user-name { max-width: 15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.dashboard-shell .user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--dashboard-selected);
    color: var(--dashboard-accent);
    font-size: 1.1rem;
    font-weight: 600;
}
body.dashboard-shell .main-menu, body.dashboard-shell .main-menu.menu-light .navigation {
    background: var(--dashboard-surface);
    color: var(--dashboard-text);
    box-shadow: none;
}
body.dashboard-shell .main-menu { border-inline-end: 1px solid var(--dashboard-border); }
body.dashboard-shell .main-menu .shadow-bottom, body.dashboard-shell .header-navbar-shadow { display: none; }
body.dashboard-shell .main-menu .navbar-header .brand-text { color: var(--dashboard-text); animation: none; }
body.dashboard-shell .dashboard-brand-icon { color: var(--dashboard-accent); font-size: 1.8rem; }
body.dashboard-shell .main-menu .navigation > li { margin: .25rem .75rem; }
body.dashboard-shell .main-menu.menu-light .navigation > li > a {
    color: var(--dashboard-muted);
    padding: .85rem 1rem;
    border-radius: .4rem;
    min-height: 44px;
    transform: none;
}
body.dashboard-shell .main-menu.menu-light .navigation > li > a:hover {
    background: var(--dashboard-subtle);
    color: var(--dashboard-text);
    transform: none;
}
body.dashboard-shell .main-menu.menu-light .navigation > li.active > a {
    background: var(--dashboard-selected);
    color: var(--dashboard-accent);
    box-shadow: none;
    font-weight: 600;
}
body.dashboard-shell .content-header-title { font-size: 1.6rem; font-weight: 600; border: 0 !important; }
body.dashboard-shell .content-header .breadcrumb { background: transparent; }
body.dashboard-shell .content-header .breadcrumb-item, body.dashboard-shell .content-header .breadcrumb-item + .breadcrumb-item::before { color: var(--dashboard-muted); }
body.dashboard-shell .content-header-right .form-group { margin-bottom: 1rem; }
body.dashboard-shell .card {
    background: var(--dashboard-surface);
    color: var(--dashboard-text);
    border: 1px solid var(--dashboard-border);
    border-radius: .75rem;
    box-shadow: none;
    margin-bottom: 1.5rem;
}
body.dashboard-shell .card-header { background: transparent; padding: 1.25rem 1.5rem .75rem; }
body.dashboard-shell .card-header .card-title { font-size: 1.2rem; font-weight: 600; }
body.dashboard-shell .card-body { padding: 1.25rem 1.5rem 1.5rem; }
body.dashboard-shell .form-group > label { color: var(--dashboard-text); font-size: 1rem; font-weight: 600; margin-bottom: .4rem; }
body.dashboard-shell .form-control {
    background: var(--dashboard-surface);
    color: var(--dashboard-text);
    border-color: var(--dashboard-border);
    border-radius: .4rem;
    min-height: 42px;
    font-family: inherit;
    font-size: 1rem;
    caret-color: var(--dashboard-accent);
}
body.dashboard-shell .form-control::placeholder { color: var(--dashboard-muted); opacity: 1; }
body.dashboard-shell .form-control:disabled, body.dashboard-shell .form-control[readonly] { background: var(--dashboard-subtle); opacity: 1; }
body.dashboard-shell .form-control:focus { border-color: var(--dashboard-focus); box-shadow: none; }
body.dashboard-shell input[type=checkbox], body.dashboard-shell input[type=radio] { accent-color: var(--dashboard-accent); }
body.dashboard-shell :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid var(--dashboard-focus);
    outline-offset: 3px;
}
body.dashboard-shell .btn { border-radius: .4rem; font-family: inherit; font-weight: 600; min-height: 40px; box-shadow: none !important; }
body.dashboard-shell .btn-primary { background: var(--dashboard-accent) !important; border-color: var(--dashboard-accent) !important; color: #fff !important; }
body.dashboard-shell .btn-primary:hover, body.dashboard-shell .btn-primary:focus { background: var(--dashboard-accent-hover) !important; border-color: var(--dashboard-accent-hover) !important; }
body.dashboard-shell.dark-layout .btn-primary { color: #11243b !important; }
body.dashboard-shell .btn-outline-primary { color: var(--dashboard-accent); border-color: var(--dashboard-accent); background: transparent; }
body.dashboard-shell .btn-outline-primary:hover, body.dashboard-shell .btn-outline-primary:focus { color: var(--dashboard-accent); background: var(--dashboard-selected) !important; }
body.dashboard-shell .btn-secondary, body.dashboard-shell .btn-outline-secondary { color: var(--dashboard-text); background: var(--dashboard-subtle); border-color: var(--dashboard-border); }
body.dashboard-shell .btn-secondary:hover, body.dashboard-shell .btn-outline-secondary:hover { background: var(--dashboard-selected) !important; color: var(--dashboard-text); }
body.dashboard-shell .btn.disabled, body.dashboard-shell .btn:disabled { opacity: .55; cursor: not-allowed; }
body.dashboard-shell .issue-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.5rem;
    row-gap: 1rem;
    margin-bottom: 1.5rem;
}
body.dashboard-shell .issue-form-grid > .form-group { min-width: 0; margin-bottom: 0; }
body.dashboard-shell [data-issue-form] > h5 { font-size: 1.1rem; font-weight: 600; margin: .25rem 0 1rem; }
body.dashboard-shell [data-issue-form] .issue-form-grid + h5 { margin-top: 1.5rem; }
body.dashboard-shell .select2-container { max-width: 100%; font-family: inherit; }
body.dashboard-shell .select2-container .select2-selection--single,
body.dashboard-shell .select2-container .select2-selection--multiple {
    min-height: 42px !important;
    background: var(--dashboard-surface);
    color: var(--dashboard-text);
    border: 1px solid var(--dashboard-border);
    border-radius: .4rem;
    box-shadow: none !important;
}
body.dashboard-shell .select2-container .select2-selection__rendered { color: var(--dashboard-text); }
body.dashboard-shell .select2-container--focus .select2-selection,
body.dashboard-shell .select2-container--open .select2-selection { border-color: var(--dashboard-focus) !important; outline: 2px solid var(--dashboard-focus); outline-offset: 2px; }
body.dashboard-shell .select2-container .select2-selection--multiple .select2-selection__choice {
    background: var(--dashboard-selected) !important;
    border-color: var(--dashboard-border) !important;
    color: var(--dashboard-text);
    white-space: normal;
    overflow-wrap: anywhere;
}
body.dashboard-shell .select2-container .select2-selection--multiple .select2-selection__choice__remove { color: var(--dashboard-muted) !important; }
body.dashboard-shell .select2-dropdown { background: var(--dashboard-surface); color: var(--dashboard-text); border-color: var(--dashboard-border); }
body.dashboard-shell .select2-search__field { background: var(--dashboard-surface); color: var(--dashboard-text); border-color: var(--dashboard-border); }
body.dashboard-shell .select2-results__option[aria-selected=true] { background: var(--dashboard-selected); color: var(--dashboard-text); }
body.dashboard-shell .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--dashboard-accent); color: #fff; }
body.dashboard-shell.dark-layout .select2-container--default .select2-results__option--highlighted[aria-selected] { color: #11243b; }
body.dashboard-shell .table { color: var(--dashboard-text); font-size: .95rem; font-variant-numeric: tabular-nums; }
body.dashboard-shell .table td, body.dashboard-shell .table th { border-color: var(--dashboard-border); padding: .85rem 1rem; vertical-align: middle; }
body.dashboard-shell .table thead th, body.dashboard-shell .table tfoot th { background: var(--dashboard-subtle); color: var(--dashboard-muted); font-weight: 600; text-transform: none; letter-spacing: 0; }
body.dashboard-shell .table-striped tbody tr:nth-of-type(odd) { background: var(--dashboard-subtle); }
body.dashboard-shell .table tbody tr:hover { background: var(--dashboard-selected); }
body.dashboard-shell .table-sort { color: inherit; }
body.dashboard-shell .table th.sorting:after { color: var(--dashboard-muted); }
body.dashboard-shell .table .btn { min-height: 36px; padding: .5rem .75rem; }
body.dashboard-shell .dataTables_filter { display: flex; align-items: flex-end; gap: .75rem; flex-wrap: wrap; margin: 0 0 1rem; }
body.dashboard-shell .dataTables_filter label { margin: 0; font-size: .9rem; color: var(--dashboard-muted); }
body.dashboard-shell .dataTables_filter input { width: 200px; }
body.dashboard-shell .dt-buttons { width: auto; margin-bottom: 1rem; }
body.dashboard-shell .selection-toolbar { margin-bottom: 1rem; }
body.dashboard-shell .certificate-filters {
    display: grid;
    grid-template-columns: minmax(10rem, 2fr) minmax(10rem, 1.5fr) minmax(6rem, 1fr) minmax(4.5rem, .6fr) auto;
    gap: 1rem;
    margin-inline: 0;
    align-items: end;
}
body.dashboard-shell .certificate-filters > div { width: auto; max-width: none; min-width: 0; padding: 0; }
body.dashboard-shell .certificate-filters label { color: var(--dashboard-text); font-weight: 600; margin-bottom: .4rem; }
body.dashboard-shell .certificate-filters .btn { min-height: 42px; white-space: nowrap; }
body.dashboard-shell .certificate-bulk-tools { margin: 1rem 0; }
body.dashboard-shell .certificate-bulk-tools > summary {
    padding: .85rem 1rem;
    min-height: 44px;
    color: var(--dashboard-accent);
    background: var(--dashboard-subtle);
    border: 1px solid var(--dashboard-border);
    border-radius: .4rem;
    font-weight: 600;
    cursor: pointer;
}
body.dashboard-shell .certificate-bulk-tools > summary:hover { background: var(--dashboard-selected); }
body.dashboard-shell .certificate-bulk-tools > summary:focus-visible { outline: 2px solid var(--dashboard-focus); outline-offset: 3px; }
body.dashboard-shell .certificate-bulk-tools > form { margin-top: 1rem; }
body.dashboard-shell .status-pill { font-size: .85rem; font-weight: 600; background: #e6f8ee; color: #176440; }
body.dashboard-shell .status-expired, body.dashboard-shell .status-canceled { background: #ffebec; color: #ad2634; }
body.dashboard-shell .status-pending { background: #fff5d6; color: #735807; }
body.dashboard-shell .page-link { color: var(--dashboard-accent); background: var(--dashboard-surface); border-color: var(--dashboard-border); min-height: 40px; }
body.dashboard-shell .page-item.active .page-link { background: var(--dashboard-accent); border-color: var(--dashboard-accent); color: #fff; }
body.dashboard-shell.dark-layout .page-item.active .page-link { color: #11243b; }
body.dashboard-shell .page-item.disabled .page-link { background: var(--dashboard-subtle); color: var(--dashboard-muted); border-color: var(--dashboard-border); }
body.dashboard-shell .dropdown-menu { background: var(--dashboard-surface); border: 1px solid var(--dashboard-border); box-shadow: none; }
body.dashboard-shell .dropdown-item { color: var(--dashboard-text); }
body.dashboard-shell .dropdown-item:hover, body.dashboard-shell .dropdown-item:focus { background: var(--dashboard-selected); color: var(--dashboard-text); }
body.dashboard-shell .dropdown-divider { border-color: var(--dashboard-border); }
body.dashboard-shell .footer { background: transparent; color: var(--dashboard-muted); }
body.dashboard-shell.dark-layout .table { background: var(--dashboard-surface); }
body.dashboard-shell.dark-layout .table tbody tr > :is(td, th) { background: transparent; color: var(--dashboard-text) !important; border-bottom: 1px solid var(--dashboard-border) !important; }
body.dashboard-shell.dark-layout .table :is(thead, tfoot) tr > th { background: var(--dashboard-subtle); color: var(--dashboard-muted) !important; }
body.dashboard-shell.dark-layout .table.table-striped tbody tr:nth-of-type(odd) { background: var(--dashboard-subtle); }
body.dashboard-shell.dark-layout .table.table-striped tbody tr:nth-of-type(even) { background: var(--dashboard-surface); }
body.dashboard-shell.dark-layout .table.table-striped tbody tr:hover { background: var(--dashboard-selected); }
@media (max-width: 1199.98px) {
    body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu {
        right: 0;
        left: auto;
        width: 260px;
        max-width: calc(100vw - 3rem);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(100%);
        transition: transform .2s ease, opacity .2s ease;
    }
    body.dashboard-shell.vertical-layout.vertical-menu-modern.menu-open .main-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }
    body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu .navigation > li > a > span {
        animation: none;
        opacity: 1;
    }
    body.dashboard-shell .header-navbar.floating-nav { width: calc(100% - 2rem) !important; margin: 1rem 1rem 0 !important; }
    body.dashboard-shell .app-content.content { padding: 7rem 1rem 1rem; }
}
@media (max-width: 767px) {
    body.dashboard-shell .issue-form-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    body.dashboard-shell .card-header { padding: 1rem 1rem .5rem; }
    body.dashboard-shell .card-body { padding: 1rem; }
    body.dashboard-shell .content-header-title { font-size: 1.4rem !important; }
    body.dashboard-shell .content-header-right .form-group { margin-bottom: .75rem; }
    body.dashboard-shell .dataTables_filter { float: none; clear: both; }
    body.dashboard-shell .dataTables_filter input { width: 160px; }
    body.dashboard-shell .selection-toolbar > .btn { white-space: normal; }
    body.dashboard-shell .table td, body.dashboard-shell .table th { padding: .75rem; }
}
@media (max-width: 991px) {
    body.dashboard-shell .certificate-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.dashboard-shell .certificate-filters > div:last-child { grid-column: 1 / -1; }
    body.dashboard-shell .certificate-filters > div:last-child .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    body.dashboard-shell *, body.dashboard-shell *::before, body.dashboard-shell *::after { animation: none !important; transition: none !important; }
}
@media print {
    body.dashboard-shell { background: #fff; color: #000; }
    body.dashboard-shell .card { border: 0; }
    body.dashboard-shell .table { color: #000; }
}

body.dashboard-shell .status-pill.status-inactive, body.dashboard-shell .status-pill.status-canceled { background: #f1e9e9; color: #8b3030; }
body.dashboard-shell .status-pill.status-expired { background: #fff1d3; color: #805500; }
body.dashboard-shell .status-pill.status-pending { background: #edf0f4; color: #4c5b6b; }
body.dashboard-shell.dark-layout .status-pill.status-inactive, body.dashboard-shell.dark-layout .status-pill.status-canceled { background: #4a282e; color: #ffb9bb; }
body.dashboard-shell.dark-layout .status-pill.status-expired { background: #473915; color: #ffe09c; }
.certificate-list-tabs { display: flex; gap: .75rem; flex-wrap: wrap; }

/* Home and shared task layouts retain the dashboard's navy palette. */
body.dashboard-shell .dashboard-skip-link { position: fixed; inset-block-start: .5rem; inset-inline-start: 1rem; z-index: 1100; padding: .75rem 1rem; background: var(--dashboard-surface); border: 1px solid var(--dashboard-border); transform: translateY(-200%); }
body.dashboard-shell .dashboard-skip-link:focus { transform: translateY(0); }
body.dashboard-shell .task-section { min-width: 0; margin: 0 0 1.5rem; padding: 1.5rem 0 0; border: 0; border-top: 1px solid var(--dashboard-border); }
body.dashboard-shell .task-section > legend, body.dashboard-shell .task-section > h3 { width: auto; max-width: 100%; padding: 0; margin: 0 0 1rem; font-size: 1.15rem; font-weight: 600; line-height: 1.5; }
body.dashboard-shell .task-section > legend { float: none; }
body.dashboard-shell .task-section > .issue-form-grid { margin-bottom: 0; }
body.dashboard-shell .task-toolbar, body.dashboard-shell .form-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
body.dashboard-shell .form-actions { padding-top: 1rem; border-top: 1px solid var(--dashboard-border); }
body.dashboard-shell .card-body > p, body.dashboard-shell .task-section > p { max-width: 75ch; }
body.dashboard-shell .card-header { gap: .75rem; }
body.dashboard-shell .card-header h3.card-title { margin-bottom: 0; }
body.dashboard-shell .card-header > a { white-space: nowrap; }
body.dashboard-shell .home-overview h2, body.dashboard-shell #platform-heading { font-size: 1.25rem; margin-bottom: .75rem; font-weight: 600; }
body.dashboard-shell .home-filters { align-items: end; margin: 1.5rem 0; }
body.dashboard-shell .home-filters > .form-group { flex: 1 1 15rem; margin: 0; }
body.dashboard-shell .home-filters > button, body.dashboard-shell .home-filters > a { flex: 0 0 auto; min-height: 42px; }
body.dashboard-shell .home-status-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--dashboard-border); }
body.dashboard-shell .home-status-link { display: flex; align-items: center; gap: .75rem; padding: 1rem .75rem; border-bottom: 1px solid var(--dashboard-border); min-height: 60px; color: var(--dashboard-text); text-decoration: none; }
body.dashboard-shell .home-status-link > span { flex: 1; }
body.dashboard-shell .home-status-link strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
body.dashboard-shell .home-status-link i { color: var(--dashboard-muted); }
body.dashboard-shell .home-status-link:hover, body.dashboard-shell .platform-links > a:hover { background: var(--dashboard-subtle); color: var(--dashboard-accent); }
body.dashboard-shell .home-status-link:active { background: var(--dashboard-selected); }
body.dashboard-shell .home-record-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; }
body.dashboard-shell .home-record-grid > .card { min-width: 0; }
body.dashboard-shell .home-certificate-list { padding: 0; margin: 0; list-style: none; }
body.dashboard-shell .home-certificate-list > li { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--dashboard-border); }
body.dashboard-shell .home-certificate-list > li:last-child { border-bottom: 0; padding-bottom: 0; }
body.dashboard-shell .home-certificate-details { display: grid; gap: .25rem; min-width: 0; overflow-wrap: anywhere; }
body.dashboard-shell .home-certificate-details > strong { font-weight: 600; }
body.dashboard-shell .home-certificate-details > a { width: fit-content; font-variant-numeric: tabular-nums; }
body.dashboard-shell .home-record-actions { display: flex; align-items: end; flex-direction: column; gap: .6rem; flex-shrink: 0; }
body.dashboard-shell .platform-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin: 1rem 0 1.5rem; }
body.dashboard-shell .platform-links > a { display: flex; align-items: center; gap: .75rem; min-height: 48px; padding: .5rem .75rem; border-bottom: 1px solid var(--dashboard-border); text-decoration: none; }
body.dashboard-shell .platform-links strong { color: var(--dashboard-text); font-variant-numeric: tabular-nums; }
body.dashboard-shell .empty-state { padding: 1.5rem 0; color: var(--dashboard-muted); }
body.dashboard-shell .empty-state p { max-width: 60ch; margin-bottom: .75rem; }
body.dashboard-shell .empty-state a { font-weight: 600; }
body.dashboard-shell .certificate-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.dashboard-shell .certificate-filters .filter-renewal { grid-column: auto; min-height: 42px; display: flex; align-items: center; }
body.dashboard-shell .certificate-filters .filter-renewal label { margin: 0; }
body.dashboard-shell .dataTables_filter { display: flex; align-items: end; gap: .75rem; flex-wrap: wrap; margin-bottom: 1rem; }
body.dashboard-shell .dataTables_filter label { display: flex; align-items: center; gap: .5rem; margin: 0; }
body.dashboard-shell .dataTables_filter :is(button, a) { min-height: 42px; }
body.dashboard-shell .import-tools { align-items: start; }
body.dashboard-shell .excel-upload { flex: 1 1 22rem; }
body.dashboard-shell .excel-upload input[type=file] { width: min(100%, 24rem); min-height: 44px; }
body.dashboard-shell details > summary { cursor: pointer; min-height: 44px; padding-block: .5rem; color: var(--dashboard-accent); font-weight: 600; }
body.dashboard-shell .import-report { margin: 1rem 0; }
body.dashboard-shell .import-report .alert { overflow-wrap: anywhere; margin-top: .75rem; }
body.dashboard-shell .private-export { margin-inline: auto; }
body.dashboard-shell .export-progress { width: 100%; height: 16px; accent-color: var(--dashboard-accent); }
body.dashboard-shell.login-page { padding: 2rem 0; }
body.dashboard-shell.login-page .login-card { width: 460px; margin: 0; }
body.dashboard-shell.login-page .login-card .card-body { padding: 2rem; }
body.dashboard-shell.login-page .brand-text { color: var(--dashboard-accent); }
body.dashboard-shell .form-control[dir=ltr], body.dashboard-shell bdi[dir=ltr] { unicode-bidi: isolate; font-variant-numeric: tabular-nums; }
body.dashboard-shell input[type=email], body.dashboard-shell input[autocomplete=one-time-code], body.dashboard-shell input[type=date], body.dashboard-shell input[type=number] { direction: ltr; }
html[dir=ltr] body.dashboard-shell .content-header-title { float: none !important; }
html[dir=ltr] body.dashboard-shell .content-header .breadcrumb-wrapper { padding: 0; }
html[dir=ltr] body.dashboard-shell .content-header-right { text-align: right !important; }
html[dir=ltr] body.dashboard-shell .table { text-align: left; }
html[dir=ltr] body.dashboard-shell .navigation > li > a > i { margin-right: 1rem; margin-left: 0; }
@media (max-width: 991px) {
    body.dashboard-shell .home-record-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
    body.dashboard-shell .home-status-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.dashboard-shell .certificate-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.dashboard-shell .certificate-filters .filter-renewal { grid-column: auto; }
}
@media (max-width: 575px) {
    body.dashboard-shell .home-filters > .form-group { flex-basis: 100%; }
    body.dashboard-shell .home-filters > button, body.dashboard-shell .home-filters > a { flex: 1; }
    body.dashboard-shell .home-status-link { gap: .5rem; padding: .8rem .4rem; font-size: .95rem; }
    body.dashboard-shell .home-status-link i { display: none; }
    body.dashboard-shell .home-certificate-list > li { gap: .6rem; }
    body.dashboard-shell .home-record-actions .status-pill { max-width: 7.5rem; white-space: normal; text-align: center; }
    body.dashboard-shell .form-actions > .btn, body.dashboard-shell .task-toolbar > .btn { flex-grow: 1; }
    body.dashboard-shell .dataTables_filter label { flex-grow: 1; }
    body.dashboard-shell .dataTables_filter input { width: 100%; min-width: 0; }
    body.dashboard-shell .certificate-filters { grid-template-columns: minmax(0, 1fr); }
    body.dashboard-shell .certificate-filters .filter-renewal { grid-column: 1; }
    body.dashboard-shell .excel-upload input[type=file], body.dashboard-shell .excel-upload > button { width: 100%; }
    body.dashboard-shell .certificate-color-input { flex-wrap: wrap; }
    body.dashboard-shell.login-page .login-card .card-body { padding: 1.5rem; }
}
/* Reading direction follows the selected interface language. */
html[dir=ltr] body.dashboard-shell { direction: ltr; text-align: left; }
html[dir=ltr] body.dashboard-shell :is(.app-content, .content-body, .content-header, .card-body, .task-section) { direction: ltr; text-align: left; }
html[dir=ltr] body.dashboard-shell :is(.header-navbar, .main-menu) { direction: ltr; text-align: left; }
html[dir=ltr] body.dashboard-shell .form-group > label { text-align: left; }
/* Data charts and compact Home tables. All marks use the existing theme tokens. */
body.dashboard-shell .home-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; }
body.dashboard-shell .home-chart-grid > section { min-width: 0; }
body.dashboard-shell .home-chart-grid h2 { font-size: 1.2rem; font-weight: 600; margin-bottom: .5rem; }
body.dashboard-shell .monthly-chart { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); direction: ltr; gap: .35rem; margin-top: 1rem; }
body.dashboard-shell .chart-trigger { width: 100%; border: 0; background: transparent; color: var(--dashboard-text); font: inherit; border-radius: .35rem; padding: .5rem; cursor: pointer; }
body.dashboard-shell .chart-trigger:hover, body.dashboard-shell .chart-trigger[aria-expanded=true] { background: var(--dashboard-subtle); }
body.dashboard-shell .monthly-chart-bar { display: flex; flex-direction: column; align-items: center; padding: .4rem .1rem; }
body.dashboard-shell .monthly-chart-bar svg { display: block; width: 100%; height: 130px; }
body.dashboard-shell .chart-month-label { display: grid; text-align: center; gap: .1rem; font-variant-numeric: tabular-nums; }
body.dashboard-shell .chart-month-label small { font-size: .85rem; color: var(--dashboard-muted); }
body.dashboard-shell .chart-visible-count { font-size: 1rem; font-variant-numeric: tabular-nums; }
body.dashboard-shell .chart-track { fill: var(--dashboard-selected); }
body.dashboard-shell .chart-fill { fill: var(--dashboard-accent); }
body.dashboard-shell .chart-details-area { min-height: 4rem; margin-top: .75rem; border-top: 1px solid var(--dashboard-border); padding-top: .75rem; }
body.dashboard-shell .chart-detail { display: flex; align-items: start; justify-content: space-between; gap: .5rem; flex-wrap: wrap; font-size: .95rem; }
body.dashboard-shell .chart-detail[hidden], body.dashboard-shell .chart-hint[hidden] { display: none; }
body.dashboard-shell .chart-detail > span { overflow-wrap: anywhere; }
body.dashboard-shell .chart-detail > a { font-weight: 600; padding-block: .2rem; }
body.dashboard-shell .chart-hint { font-size: .95rem; margin: 0; }
body.dashboard-shell .course-chart { list-style: none; padding: 0; margin: 1rem 0 0; }
body.dashboard-shell .course-chart li + li { margin-top: .5rem; }
body.dashboard-shell .course-chart-label { display: flex; align-items: start; gap: .75rem; justify-content: space-between; margin-bottom: .5rem; text-align: start; }
body.dashboard-shell .course-chart-label > span { min-width: 0; overflow-wrap: anywhere; }
body.dashboard-shell .course-chart-label strong { font-variant-numeric: tabular-nums; }
body.dashboard-shell .course-chart-bar svg { display: block; width: 100%; height: 8px; }
body.dashboard-shell .home-record-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
body.dashboard-shell .home-certificates-table { min-width: 540px; margin: 0; }
body.dashboard-shell .home-certificates-table td { vertical-align: middle; }
body.dashboard-shell .home-certificates-table .home-trainee-cell { min-width: 170px; overflow-wrap: anywhere; }
body.dashboard-shell .home-trainee-cell :is(strong, span, a) { display: block; }
body.dashboard-shell .home-trainee-cell > a { width: fit-content; margin-top: .2rem; }
body.dashboard-shell .home-table-scroll:focus-visible { outline: 2px solid var(--dashboard-focus); outline-offset: 3px; }
body.dashboard-shell input[type=month] { direction: ltr; }
@media (max-width: 991px) {
    body.dashboard-shell .home-chart-grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (max-width: 575px) {
    body.dashboard-shell .monthly-chart { gap: .1rem; }
    body.dashboard-shell .monthly-chart-bar svg { height: 105px; }
    body.dashboard-shell .chart-detail > a { min-height: 40px; display: inline-flex; align-items: center; }
}body.dashboard-shell .chart-month-label { min-height: 44px; padding: .35rem 0; font-weight: 600; }
body.dashboard-shell .course-chart > li { display: grid; grid-template-columns: minmax(0, 1fr) 100px; gap: .75rem; align-items: center; }
body.dashboard-shell .course-chart .course-chart-label { display: block; min-height: 44px; padding-block: .5rem; margin: 0; overflow-wrap: anywhere; font-weight: 600; }
body.dashboard-shell .course-chart-bar > strong { display: block; margin-bottom: .5rem; text-align: end; }
/* Shared record actions preserve a quiet hierarchy and consistent touch targets. */
body.dashboard-shell .record-actions { display: flex; flex-wrap: nowrap; align-items: center; gap: .35rem; width: max-content; }
body.dashboard-shell .record-actions form { margin: 0; }
body.dashboard-shell .record-actions .btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: .5rem; border-radius: .45rem; }
body.dashboard-shell .record-actions .feather { font-size: 1.15rem; }
body.dashboard-shell .certificate-bulk-form { padding-block: 1rem; border-top: 1px solid var(--dashboard-border); margin-top: .75rem; }
body.dashboard-shell .certificate-filters .filter-renewal { grid-column: auto; }
body.dashboard-shell input:is([data-cert-id], [data-select-page], [data-trainee-id], [data-trainee-page]) { width: 18px; height: 18px; accent-color: var(--dashboard-accent); cursor: pointer; }

/* The sidebar, reserved content space and floating header move together. */
html[dir=ltr] body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu.menu-fixed { left: 0 !important; right: auto !important; }
html[dir=rtl] body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu.menu-fixed { right: 0 !important; left: auto !important; }
body.dashboard-shell .main-menu .navigation > li > a { direction: inherit; text-align: start; justify-content: flex-start; gap: .8rem; }
body.dashboard-shell .main-menu .navigation > li > a > i { margin: 0 !important; width: 1.3rem; flex-shrink: 0; text-align: center; }
body.dashboard-shell .main-menu .navigation > li > a > .menu-title { min-width: 0; white-space: normal; line-height: 1.5; text-align: start; }
@media (min-width: 1200px) {
    html[dir=ltr] body.dashboard-shell :is(.app-content.content, .footer) { margin-left: 260px !important; margin-right: 0 !important; }
    html[dir=rtl] body.dashboard-shell :is(.app-content.content, .footer) { margin-right: 260px !important; margin-left: 0 !important; }
    html[dir=ltr] body.dashboard-shell .header-navbar.floating-nav { left: 260px !important; right: 0 !important; }
    html[dir=rtl] body.dashboard-shell .header-navbar.floating-nav { right: 260px !important; left: 0 !important; }
}
@media (max-width: 1199.98px) {
    html[dir] body.dashboard-shell :is(.app-content.content, .footer) { margin-left: 0 !important; margin-right: 0 !important; }
    html[dir] body.dashboard-shell .header-navbar.floating-nav { left: 0 !important; right: 0 !important; }
    html[dir=ltr] body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu { transform: translateX(-100%); }
    html[dir=rtl] body.dashboard-shell.vertical-layout.vertical-menu-modern .main-menu { transform: translateX(100%); }
    html[dir] body.dashboard-shell.vertical-layout.vertical-menu-modern.menu-open .main-menu { transform: translateX(0); }
}

html[dir=rtl] body.dashboard-shell .main-menu .menu-title { font-family: Tahoma, Arial, sans-serif; }

/* Clear heading levels and task boundaries throughout the administration pages. */
body.dashboard-shell .content-header-title { font-size: 1.7rem; font-weight: 650; line-height: 1.35; margin-block-end: .4rem !important; }
body.dashboard-shell .card-header .card-title { font-size: 1.2rem; line-height: 1.5; margin: 0; }
body.dashboard-shell .settings-page-nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-block-end: 1.5rem; border-block-end: 1px solid var(--dashboard-border); }
body.dashboard-shell .settings-page-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: .7rem .25rem; font-weight: 600; border-block-end: 2px solid transparent; }
body.dashboard-shell .settings-page-nav a[aria-current=page] { border-block-end-color: var(--dashboard-accent); color: var(--dashboard-text); }
body.dashboard-shell .settings-page-intro { max-width: 75ch; margin-block-end: 1.75rem; }
body.dashboard-shell .list-task-section { min-width: 0; padding-block: 1.5rem; border-block-start: 1px solid var(--dashboard-border); }
body.dashboard-shell .list-task-section > h2, body.dashboard-shell .list-section-heading h2 { font-size: 1.15rem; line-height: 1.5; font-weight: 600; margin: 0 0 1rem; }
body.dashboard-shell .list-section-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; }
body.dashboard-shell .list-task-section .certificate-bulk-tools { margin-block: 1rem; }
body.dashboard-shell .list-task-section:last-child { padding-block-end: 0; }
body.dashboard-shell .task-section > legend { font-size: 1.1rem; padding-inline-end: .75rem; }
body.dashboard-shell .form-group > label { line-height: 1.5; }
body.dashboard-shell input[type=time] { max-width: 20rem; font-variant-numeric: tabular-nums; }
body.dashboard-shell .brand-text { font-size: 1.7rem; font-weight: 650; }
@media (max-width: 575.98px) {
    body.dashboard-shell .settings-page-nav { gap: .25rem .75rem; }
    body.dashboard-shell .settings-page-nav a { font-size: .9rem; }
    body.dashboard-shell .list-task-section { padding-block: 1.25rem; }
}
