:root {
    --certlab-navy-950: #071d2f;
    --certlab-navy-900: #0b2942;
    --certlab-navy-800: #103957;
    --certlab-navy-700: #165071;
    --certlab-green-600: #147a37;
    --certlab-green-500: #17823b;
    --certlab-green-400: #64d56f;
    --certlab-green-100: #e9f8ec;
    --certlab-blue-100: #eaf3f8;
    --certlab-ink: #163049;
    --certlab-muted: #67798b;
    --certlab-border: #dfe8ef;
    --certlab-canvas: #f4f7fa;
    --certlab-white: #ffffff;
    --certlab-shadow-sm: 0 8px 22px rgba(17, 53, 80, .07);
    --certlab-shadow-md: 0 20px 50px rgba(11, 41, 66, .13);
    --certlab-radius: 16px;
}

html {
    background: var(--certlab-canvas);
}

body.certlab-shell,
body.certlab-auth-body {
    color: var(--certlab-ink);
    background: var(--certlab-canvas);
}

body.certlab-shell .page-content {
    min-height: calc(100vh - 132px);
    padding-top: 94px;
}

.certlab-container {
    max-width: 1600px;
}

.certlab-shell .card {
    border: 1px solid rgba(223, 232, 239, .9);
    border-radius: var(--certlab-radius);
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-shell .btn-primary,
.certlab-auth-body .btn-primary {
    color: #fff;
    border-color: var(--certlab-green-600);
    background: linear-gradient(135deg, var(--certlab-green-600), var(--certlab-green-500));
    box-shadow: 0 7px 16px rgba(20, 122, 55, .2);
}

.certlab-shell .btn-primary:hover,
.certlab-shell .btn-primary:focus,
.certlab-auth-body .btn-primary:hover,
.certlab-auth-body .btn-primary:focus {
    color: #fff;
    border-color: #10682e;
    background: linear-gradient(135deg, #10682e, #147a37);
}

.certlab-shell .btn-outline-primary {
    color: var(--certlab-navy-700);
    border-color: #b7cbd9;
}

.certlab-shell .btn-outline-primary:hover {
    color: #fff;
    border-color: var(--certlab-navy-700);
    background: var(--certlab-navy-700);
}

.certlab-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--certlab-green-600);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.2;
    text-transform: uppercase;
}

.certlab-eyebrow--light {
    color: #9af0a7;
}

/* Cabecera y marca */
.certlab-topbar {
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--certlab-border);
    box-shadow: 0 5px 24px rgba(15, 49, 74, .06);
    backdrop-filter: blur(12px);
}

.certlab-topbar .navbar-header {
    height: 72px;
}

.certlab-brand-box,
.certlab-sidebar {
    background: linear-gradient(168deg, var(--certlab-navy-900) 0%, var(--certlab-navy-950) 100%) !important;
}

.certlab-brand-box {
    height: 72px;
    box-shadow: inset 0 -1px rgba(255, 255, 255, .06);
}

.certlab-brand-box .logo {
    line-height: 72px;
}

.certlab-brand-box .logo-lg img {
    width: auto;
    max-width: 174px;
    object-fit: contain;
}

.certlab-brand-box .logo-sm img {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

.certlab-topbar-product {
    align-items: center;
    gap: 10px;
    margin-left: 10px;
    padding-left: 18px;
    border-left: 1px solid var(--certlab-border);
}

.certlab-product-mark {
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: var(--certlab-green-600);
    background: var(--certlab-green-100);
    border-radius: 11px;
    font-size: 19px;
}

.certlab-topbar-product div,
.certlab-user-summary {
    flex-direction: column;
}

.certlab-topbar-product strong,
.certlab-user-summary strong {
    color: var(--certlab-ink);
    font-size: 13px;
    line-height: 1.2;
}

.certlab-topbar-product small,
.certlab-user-summary small {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-environment {
    align-items: center;
    gap: 7px;
    margin-right: 16px;
    padding: 7px 11px;
    color: #4e677c;
    background: #f2f6f8;
    border: 1px solid var(--certlab-border);
    border-radius: 30px;
    font-size: 11px;
    font-weight: 600;
}

.certlab-environment > span {
    width: 7px;
    height: 7px;
    background: var(--certlab-green-500);
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(50, 189, 82, .13);
}

.certlab-user-button {
    display: flex !important;
    align-items: center;
    gap: 9px;
}

.certlab-user-avatar {
    display: inline-grid;
    width: 38px;
    height: 38px;
    place-items: center;
    color: var(--certlab-navy-700);
    background: var(--certlab-blue-100);
    border: 1px solid #d3e3ec;
    border-radius: 12px;
    font-size: 20px;
}

.certlab-user-menu {
    width: 250px;
    padding: 8px;
    border: 1px solid var(--certlab-border);
    border-radius: 14px;
    box-shadow: var(--certlab-shadow-md);
}

.certlab-user-menu__summary {
    display: flex;
    flex-direction: column;
    padding: 10px 12px;
}

.certlab-user-menu__summary span,
.certlab-user-menu__summary small {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-user-menu__summary strong {
    margin: 3px 0;
    color: var(--certlab-ink);
}

.certlab-user-menu .dropdown-item {
    border: 0;
    border-radius: 9px;
    background: transparent;
}

/* Menú lateral */
.certlab-sidebar {
    top: 72px;
    padding-bottom: 90px;
}

.certlab-sidebar #sidebar-menu {
    padding: 12px 13px 40px;
}

body[data-sidebar=dark] .certlab-sidebar #sidebar-menu ul li a {
    margin: 2px 0;
    padding: 11px 13px;
    color: #fff;
    border-radius: 10px;
    font-size: 13px;
}

body[data-sidebar=dark] .certlab-sidebar #sidebar-menu ul li a i {
    color: rgba(255, 255, 255, .88);
    font-size: 19px;
}

.certlab-sidebar #sidebar-menu ul li a:hover,
.certlab-sidebar #sidebar-menu ul li.mm-active > a {
    color: #fff;
    background: rgba(255, 255, 255, .075);
}

.certlab-sidebar #sidebar-menu ul li.mm-active > a i,
.certlab-sidebar #sidebar-menu ul li a:hover i {
    color: var(--certlab-green-400);
}

body[data-sidebar=dark] .certlab-sidebar #sidebar-menu ul li ul.sub-menu li a {
    padding: 8px 12px 8px 46px;
    color: rgba(255, 255, 255, .88);
    font-size: 12px;
}

.certlab-sidebar #sidebar-menu .sub-menu li.mm-active > a {
    color: #fff;
    background: rgba(50, 189, 82, .12);
}

.certlab-sidebar .menu-title {
    padding: 19px 13px 6px !important;
    color: rgba(255, 255, 255, .58) !important;
    font-size: 11px !important;
    font-weight: 800;
    letter-spacing: .12em;
}

.certlab-sidebar-logout {
    margin-top: 22px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.certlab-sidebar-logout button {
    width: 100%;
    padding: 11px 13px;
    color: #ffb8b8;
    border: 0;
    border-radius: 10px;
    background: transparent;
    text-align: left;
}

.certlab-sidebar-logout button i {
    width: 20px;
    margin-right: 8px;
    font-size: 19px;
    vertical-align: middle;
}

.certlab-sidebar-logout button:hover {
    color: #fff;
    background: rgba(220, 53, 69, .18);
}

.certlab-sidebar-signature {
    position: absolute;
    right: 16px;
    bottom: 18px;
    left: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px;
    color: #8fa6b6;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 11px;
    background: rgba(255, 255, 255, .035);
    font-size: 10px;
}

.certlab-sidebar-signature img {
    width: 46px;
    height: 28px;
    object-fit: contain;
}

body.vertical-collpsed .certlab-sidebar-signature {
    display: none;
}

/* Título y pie */
.certlab-shell .page-title-box {
    margin-bottom: 18px;
    padding-bottom: 0;
}

.certlab-shell .page-title-box h4 {
    color: var(--certlab-ink);
    font-weight: 700;
}

.certlab-shell .breadcrumb-item a {
    color: var(--certlab-green-600);
}

.certlab-footer {
    color: var(--certlab-muted);
    border-top: 1px solid var(--certlab-border);
    background: #fff;
}

.certlab-footer-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 58px;
    gap: 20px;
    font-size: 11px;
}

.certlab-footer-content > div:first-child,
.certlab-footer-meta {
    display: flex;
    align-items: center;
    gap: 9px;
}

.certlab-footer-content strong {
    color: var(--certlab-navy-800);
    letter-spacing: .06em;
}

.certlab-footer-dot {
    width: 4px;
    height: 4px;
    background: var(--certlab-green-500);
    border-radius: 50%;
}

/* Acceso */
.certlab-auth-body {
    min-height: 100vh;
    overflow-x: hidden;
}

.certlab-auth-shell {
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(430px, 1.08fr) minmax(480px, .92fr);
}

.certlab-auth-brand {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 100vh;
    overflow: hidden;
    padding: 70px clamp(55px, 8vw, 130px);
    color: #153f27;
    border-right: 1px solid rgba(20, 122, 55, .24);
    background:
        radial-gradient(circle at 13% 12%, rgba(109, 207, 64, .44), transparent 34%),
        radial-gradient(circle at 76% 88%, rgba(20, 122, 55, .2), transparent 29%),
        linear-gradient(145deg, #b9e5b9 0%, #d7efd9 48%, #eef8ef 100%);
    box-shadow: inset -20px 0 65px rgba(16, 104, 44, .06);
}

.certlab-auth-brand:before {
    position: absolute;
    top: -10%;
    right: -10%;
    width: 70%;
    height: 70%;
    content: "";
    border: 1px solid rgba(20, 122, 55, .13);
    border-radius: 50%;
    box-shadow: 0 0 0 80px rgba(20, 122, 55, .035), 0 0 0 160px rgba(20, 122, 55, .018);
}

.certlab-auth-brand__content {
    position: relative;
    z-index: 2;
    max-width: 640px;
}

.certlab-auth-logo {
    width: 280px;
    height: 195px;
    margin-bottom: 30px;
    object-fit: contain;
    object-position: left center;
}

.certlab-auth-product {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 28px;
    padding: 9px 13px;
    border: 1px solid rgba(20, 122, 55, .22);
    border-radius: 12px;
    background: rgba(255, 255, 255, .78);
}

.certlab-auth-product > span {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    color: var(--certlab-green-600);
    background: var(--certlab-green-100);
    border-radius: 10px;
    font-size: 18px;
}

.certlab-auth-product div {
    display: flex;
    flex-direction: column;
}

.certlab-auth-product strong {
    color: #0d5427;
    letter-spacing: .09em;
}

.certlab-auth-product small {
    color: #4d7258;
    font-size: 10px;
}

.certlab-auth-brand h1 {
    max-width: 590px;
    margin-bottom: 18px;
    color: #0b3f22;
    font-size: clamp(34px, 4vw, 56px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.certlab-auth-brand > .certlab-auth-brand__content > p {
    max-width: 570px;
    margin-bottom: 34px;
    color: #416b4d;
    font-size: 16px;
    line-height: 1.7;
}

.certlab-auth-features {
    display: grid;
    gap: 14px;
}

.certlab-auth-features > div {
    display: flex;
    align-items: center;
    gap: 13px;
}

.certlab-auth-features i {
    display: grid;
    flex: 0 0 38px;
    height: 38px;
    place-items: center;
    color: var(--certlab-green-600);
    border: 1px solid #cce8d2;
    border-radius: 11px;
    background: rgba(233, 248, 236, .9);
    font-size: 19px;
}

.certlab-auth-features span {
    display: flex;
    flex-direction: column;
    color: #4e7158;
    font-size: 12px;
}

.certlab-auth-features strong {
    margin-bottom: 1px;
    color: #123f24;
    font-size: 13px;
}

.certlab-auth-brand__footer {
    position: absolute;
    right: clamp(55px, 8vw, 130px);
    bottom: 28px;
    left: clamp(55px, 8vw, 130px);
    z-index: 2;
    color: #3f6f4b;
    font-size: 10px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.certlab-auth-brand__glow {
    position: absolute;
    z-index: 1;
    border-radius: 50%;
    filter: blur(6px);
}

.certlab-auth-brand__glow--one {
    right: 15%;
    bottom: 7%;
    width: 230px;
    height: 230px;
    background: rgba(57, 164, 47, .22);
}

.certlab-auth-brand__glow--two {
    top: 12%;
    left: 10%;
    width: 120px;
    height: 120px;
    background: rgba(126, 213, 72, .25);
}

.certlab-auth-form-panel {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 55px clamp(32px, 6vw, 90px);
    background: #f8fafb;
}

.certlab-auth-card {
    width: 100%;
    max-width: 480px;
    padding: clamp(30px, 4vw, 48px);
    border: 1px solid var(--certlab-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 28px 65px rgba(11, 41, 66, .1);
}

.certlab-auth-card__header {
    margin-bottom: 30px;
}

.certlab-auth-card__header h2 {
    margin-bottom: 7px;
    color: var(--certlab-ink);
    font-size: 27px;
    font-weight: 700;
    letter-spacing: -.02em;
}

.certlab-auth-card__header p {
    margin: 0;
    color: var(--certlab-muted);
}

.certlab-login-form .form-label {
    margin-bottom: 7px;
    color: #354d61;
    font-size: 12px;
    font-weight: 700;
}

.certlab-input-icon {
    position: relative;
}

.certlab-input-icon > i:first-child {
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 2;
    color: #8295a5;
    font-size: 19px;
    transform: translateY(-50%);
}

.certlab-input-icon .form-control {
    height: 52px;
    padding-right: 45px;
    padding-left: 45px;
    color: var(--certlab-ink);
    border-color: #d8e3ea;
    border-radius: 12px;
    background: #fbfcfd;
    font-size: 14px;
}

.certlab-input-icon .form-control:focus {
    border-color: var(--certlab-green-500);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(50, 189, 82, .1);
}

.certlab-password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    z-index: 3;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    color: #6d8090;
    border: 0;
    border-radius: 9px;
    background: transparent;
    transform: translateY(-50%);
}

.certlab-password-toggle:hover {
    color: var(--certlab-navy-700);
    background: var(--certlab-blue-100);
}

.certlab-login-form .form-check-input:checked {
    border-color: var(--certlab-green-600);
    background-color: var(--certlab-green-600);
}

.certlab-login-form .form-check-label,
.certlab-login-help {
    color: #607486;
    font-size: 11px;
}

.certlab-login-help {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.certlab-login-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
}

.certlab-login-submit i {
    font-size: 21px;
    transition: transform .2s ease;
}

.certlab-login-submit:hover i {
    transform: translateX(4px);
}

.certlab-login-alert {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    border: 0;
    border-radius: 11px;
    font-size: 12px;
}

.certlab-login-alert > i {
    margin-top: 2px;
    font-size: 18px;
}

.certlab-login-alert .validation-summary-errors ul {
    margin: 4px 0 0;
    padding-left: 17px;
}

.certlab-field-error {
    display: block;
    margin-top: 5px;
    font-size: 11px;
}

.certlab-auth-security {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 25px;
    padding-top: 20px;
    color: #718494;
    border-top: 1px solid #edf1f4;
    font-size: 10px;
}

.certlab-auth-security i {
    color: var(--certlab-green-600);
    font-size: 15px;
}

.certlab-auth-legal {
    position: absolute;
    bottom: 22px;
    color: #8b9aa7;
    font-size: 10px;
}

.certlab-auth-mobile-logo {
    display: none;
}

/* Dashboard */
.certlab-welcome-card {
    position: relative;
    display: flex;
    min-height: 245px;
    overflow: hidden;
    margin-bottom: 18px;
    color: #fff;
    border-radius: 21px;
    background:
        linear-gradient(110deg, rgba(11, 41, 66, .98) 0%, rgba(16, 57, 87, .96) 58%, rgba(25, 122, 64, .92) 130%),
        var(--certlab-navy-900);
    box-shadow: 0 24px 45px rgba(11, 41, 66, .18);
}

.certlab-welcome-card:before {
    position: absolute;
    top: -170px;
    right: 23%;
    width: 390px;
    height: 390px;
    content: "";
    border: 1px solid rgba(255, 255, 255, .065);
    border-radius: 50%;
    box-shadow: 0 0 0 70px rgba(255, 255, 255, .018), 0 0 0 140px rgba(255, 255, 255, .012);
}

.certlab-welcome-card__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex: 1 1 64%;
    flex-direction: column;
    justify-content: center;
    padding: 36px clamp(30px, 4vw, 56px);
}

.certlab-welcome-card h1 {
    margin-bottom: 10px;
    color: #fff;
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 700;
    letter-spacing: -.03em;
}

.certlab-welcome-card p {
    max-width: 660px;
    margin-bottom: 18px;
    color: #c3d1dc;
    font-size: 14px;
    line-height: 1.65;
}

.certlab-welcome-card__meta {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 7px;
    padding: 7px 11px;
    color: #acd0bb;
    border: 1px solid rgba(100, 213, 111, .16);
    border-radius: 30px;
    background: rgba(50, 189, 82, .09);
    font-size: 10px;
}

.certlab-welcome-card__visual {
    position: relative;
    z-index: 2;
    flex: 0 0 35%;
    min-width: 350px;
}

.certlab-visual-core {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    width: 102px;
    height: 102px;
    place-items: center;
    color: #b6f6bd;
    border: 1px solid rgba(151, 240, 163, .35);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(100, 213, 111, .34), rgba(50, 189, 82, .12));
    box-shadow: 0 18px 40px rgba(0, 0, 0, .18), inset 0 0 30px rgba(100, 213, 111, .12);
    font-size: 47px;
    transform: translate(-50%, -50%);
}

.certlab-visual-orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.certlab-visual-orbit--one {
    width: 190px;
    height: 190px;
}

.certlab-visual-orbit--two {
    width: 275px;
    height: 275px;
    border-color: rgba(255, 255, 255, .06);
}

.certlab-visual-chip {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 12px;
    color: #d7e5ed;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 11px;
    background: rgba(255, 255, 255, .08);
    box-shadow: 0 9px 20px rgba(0, 0, 0, .13);
    backdrop-filter: blur(6px);
    font-size: 10px;
}

.certlab-visual-chip i {
    color: #92e99e;
    font-size: 17px;
}

.certlab-visual-chip--one {
    top: 35px;
    right: 23px;
}

.certlab-visual-chip--two {
    bottom: 38px;
    left: 5px;
}

.certlab-metric-card {
    display: block;
    min-height: 185px;
    color: inherit;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.certlab-metric-card:hover {
    color: inherit;
    border-color: #c7d8e3;
    box-shadow: 0 18px 34px rgba(11, 41, 66, .11);
    transform: translateY(-4px);
}

.certlab-metric-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}

.certlab-metric-card__icon {
    display: grid;
    width: 45px;
    height: 45px;
    place-items: center;
    border-radius: 13px;
    font-size: 23px;
}

.certlab-metric-card__arrow {
    color: #a2b2bf;
    font-size: 21px;
}

.certlab-metric-card__value {
    display: block;
    margin-bottom: 2px;
    color: var(--certlab-ink);
    font-size: 29px;
    font-weight: 800;
    line-height: 1;
}

.certlab-metric-card h2 {
    margin: 8px 0 5px;
    color: #3e5669;
    font-size: 13px;
    font-weight: 700;
}

.certlab-metric-card p {
    margin: 0;
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-metric-card--primary .certlab-metric-card__icon { color: #27658e; background: #e9f3f9; }
.certlab-metric-card--warning .certlab-metric-card__icon { color: #b37812; background: #fff5dd; }
.certlab-metric-card--success .certlab-metric-card__icon { color: #1c9440; background: var(--certlab-green-100); }
.certlab-metric-card--info .certlab-metric-card__icon { color: #148ba3; background: #e5f7fa; }

.certlab-dashboard-card {
    overflow: hidden;
}

.certlab-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 79px;
    padding: 20px 23px 13px;
    border-bottom: 0;
    background: #fff;
}

.certlab-card-header h2 {
    margin: 0;
    color: var(--certlab-ink);
    font-size: 17px;
    font-weight: 700;
}

.certlab-card-badge {
    padding: 6px 9px;
    color: #607486;
    border: 1px solid var(--certlab-border);
    border-radius: 30px;
    background: #f8fafb;
    font-size: 11px;
    font-weight: 600;
}

.certlab-quick-action {
    display: flex;
    align-items: center;
    min-height: 78px;
    gap: 12px;
    padding: 13px;
    color: inherit;
    border: 1px solid #e4ebf0;
    border-radius: 13px;
    background: #fbfcfd;
    text-decoration: none;
    transition: border-color .2s ease, background .2s ease, transform .2s ease;
}

.certlab-quick-action:hover {
    color: inherit;
    border-color: #bad8c2;
    background: #f8fcf9;
    transform: translateY(-2px);
}

.certlab-quick-action__icon {
    display: grid;
    flex: 0 0 43px;
    height: 43px;
    place-items: center;
    color: var(--certlab-green-600);
    background: var(--certlab-green-100);
    border-radius: 12px;
    font-size: 21px;
}

.certlab-quick-action__copy {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.certlab-quick-action__copy strong {
    color: var(--certlab-ink);
    font-size: 12px;
}

.certlab-quick-action__copy small {
    margin-top: 2px;
    color: var(--certlab-muted);
    font-size: 10px;
}

.certlab-quick-action > i {
    color: #9aabb8;
    font-size: 20px;
}

.certlab-dashboard-shortcut {
    position: relative;
    display: flex;
    min-height: 164px;
    overflow: hidden;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    padding: 20px 17px 17px;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 15px;
    background: linear-gradient(150deg, var(--certlab-navy-900), var(--certlab-navy-950));
    box-shadow: 0 15px 28px rgba(7, 29, 47, .18);
    text-align: center;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.certlab-dashboard-shortcut--blue {
    background: linear-gradient(150deg, var(--certlab-navy-700), #1b638a);
}

.certlab-dashboard-shortcut::after {
    position: absolute;
    right: -38px;
    bottom: -50px;
    width: 90px;
    height: 90px;
    content: "";
    border-radius: 50%;
    background: rgba(100, 213, 111, .14);
}

.certlab-dashboard-shortcut:hover {
    color: #fff;
    border-color: rgba(100, 213, 111, .48);
    box-shadow: 0 20px 34px rgba(7, 29, 47, .25);
    transform: translateY(-3px);
}

.certlab-dashboard-shortcut__icon {
    display: grid;
    width: 52px;
    height: 52px;
    margin: 0 auto 3px;
    place-items: center;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 14px;
    background: rgba(255, 255, 255, .1);
    font-size: 28px;
}

.certlab-dashboard-shortcut strong {
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.35;
    text-transform: uppercase;
}

.certlab-dashboard-shortcut small {
    min-height: 30px;
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
    line-height: 1.45;
}

.certlab-dashboard-shortcut__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    color: var(--certlab-green-400);
    font-size: 10px;
    font-weight: 700;
}

.certlab-dashboard-shortcut__link i {
    font-size: 15px;
}

.certlab-alert-list {
    display: grid;
    gap: 10px;
    padding-top: 4px;
}

.certlab-dashboard-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    color: inherit;
    border: 1px solid #e6edf1;
    border-radius: 12px;
    text-decoration: none;
}

.certlab-dashboard-alert:hover {
    color: inherit;
    background: #fbfcfd;
}

.certlab-dashboard-alert__icon {
    display: grid;
    flex: 0 0 37px;
    height: 37px;
    place-items: center;
    border-radius: 10px;
    font-size: 19px;
}

.certlab-dashboard-alert > span:nth-child(2) {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.certlab-dashboard-alert strong,
.certlab-alert-summary strong {
    color: var(--certlab-ink);
    font-size: 11px;
}

.certlab-dashboard-alert small,
.certlab-alert-summary span {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-dashboard-alert > i {
    color: #9aabb8;
}

.certlab-dashboard-alert--warning .certlab-dashboard-alert__icon { color: #b37812; background: #fff4db; }
.certlab-dashboard-alert--info .certlab-dashboard-alert__icon { color: #168ba3; background: #e5f7fa; }

.certlab-alert-summary {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    color: var(--certlab-green-600);
    border-radius: 11px;
    background: var(--certlab-green-100);
}

.certlab-alert-summary > i {
    font-size: 19px;
}

.certlab-alert-summary > span {
    display: flex;
    flex-direction: column;
}

.certlab-activity-list {
    display: grid;
}

.certlab-activity-item {
    display: grid;
    align-items: center;
    padding: 14px 2px;
    border-bottom: 1px solid #edf1f4;
    grid-template-columns: 42px minmax(180px, 1fr) minmax(95px, auto) minmax(90px, auto);
    gap: 12px;
}

.certlab-activity-item:last-child {
    border-bottom: 0;
}

.certlab-activity-item__icon {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 10px;
    font-size: 18px;
}

.certlab-activity-item__icon--success { color: #1b943f; background: var(--certlab-green-100); }
.certlab-activity-item__icon--warning { color: #b37812; background: #fff4db; }
.certlab-activity-item__icon--info { color: #168ba3; background: #e5f7fa; }
.certlab-activity-item__icon--neutral { color: #617788; background: #eef3f6; }

.certlab-activity-item__copy {
    display: flex;
    flex-direction: column;
}

.certlab-activity-item__copy strong {
    color: var(--certlab-ink);
    font-size: 12px;
}

.certlab-activity-item__copy small,
.certlab-activity-item__date {
    color: var(--certlab-muted);
    font-size: 10px;
}

/* Listados */
.certlab-module-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 15px;
    padding: 23px 25px;
    border: 1px solid var(--certlab-border);
    border-radius: var(--certlab-radius);
    background: linear-gradient(120deg, #fff 0%, #fbfdfb 65%, #f1f9f3 100%);
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-module-hero__icon {
    display: grid;
    flex: 0 0 58px;
    height: 58px;
    place-items: center;
    color: var(--certlab-green-600);
    border: 1px solid #d5eddb;
    border-radius: 16px;
    background: var(--certlab-green-100);
    font-size: 29px;
}

.certlab-module-hero__copy {
    flex: 1;
}

.certlab-module-hero h1 {
    margin: 0 0 5px;
    color: var(--certlab-ink);
    font-size: 22px;
    font-weight: 700;
}

.certlab-module-hero p {
    margin: 0;
    color: var(--certlab-muted);
    font-size: 12px;
}

.certlab-module-hero__action .btn {
    min-height: 44px;
    padding: 10px 17px;
    border-radius: 11px;
    font-size: 12px;
    font-weight: 700;
}

.certlab-info-alert {
    gap: 10px;
    margin-bottom: 15px;
    padding: 11px 14px;
    color: #4c6678;
    border: 1px solid #d9eaf1;
    border-radius: 12px;
    background: #eff8fb;
    font-size: 10px;
}

.certlab-info-alert > i {
    color: #198da7;
    font-size: 18px;
}

.certlab-info-alert > div {
    display: flex;
    flex-direction: column;
}

.certlab-info-alert strong {
    color: #284d62;
    font-size: 11px;
}

.certlab-list-card .card-body {
    padding: 22px;
}

.certlab-list-toolbar {
    display: grid;
    align-items: center;
    margin-bottom: 20px;
    grid-template-columns: minmax(260px, 1.2fr) minmax(300px, 2fr) auto;
    gap: 13px;
}

.certlab-search-box {
    position: relative;
}

.certlab-search-box > i {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    color: #7e92a2;
    font-size: 18px;
    transform: translateY(-50%);
}

.certlab-search-box .form-control {
    height: 42px;
    padding: 8px 38px;
    border-color: #dce5eb;
    border-radius: 11px;
    background: #fafcfd;
    font-size: 11px;
}

.certlab-search-box .form-control:focus {
    border-color: #8cd09d;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(50, 189, 82, .08);
}

.certlab-search-clear {
    position: absolute;
    top: 50%;
    right: 7px;
    z-index: 2;
    display: grid;
    width: 29px;
    height: 29px;
    place-items: center;
    color: #8799a7;
    border: 0;
    border-radius: 8px;
    background: transparent;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

.certlab-search-clear.is-visible {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

.certlab-search-clear:hover {
    color: var(--certlab-navy-700);
    background: #edf3f6;
}

.certlab-filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.certlab-filter {
    padding: 7px 11px;
    color: #607486;
    border: 1px solid #dce5eb;
    border-radius: 30px;
    background: #fff;
    font-size: 10px;
    font-weight: 600;
}

.certlab-filter:hover,
.certlab-filter.is-active {
    color: #187b35;
    border-color: #a8d9b4;
    background: var(--certlab-green-100);
}

.certlab-list-updated {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    color: #8495a3;
    white-space: nowrap;
    font-size: 11px;
}

.certlab-list-updated i {
    color: var(--certlab-green-600);
    font-size: 14px;
}

.certlab-table-wrap {
    border: 1px solid #e5ebef;
    border-radius: 13px;
}

.certlab-table {
    width: 100% !important;
    margin: 0 !important;
}

.certlab-table thead th {
    padding: 12px 14px;
    color: #607486;
    border-bottom: 1px solid #dfe7ec !important;
    background: #f6f9fa;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.certlab-table tbody td {
    padding: 13px 14px;
    color: #425b6e;
    border-bottom-color: #edf1f4;
    font-size: 10px;
    vertical-align: middle;
}

.certlab-table tbody tr:last-child td {
    border-bottom: 0;
}

.certlab-table tbody tr:hover td {
    background: #fbfdfb;
}

.certlab-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    border-radius: 30px;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
}

.certlab-status > span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.certlab-status--success { color: #197d35; background: #e9f8ec; }
.certlab-status--success > span { background: #2ab550; }
.certlab-status--warning { color: #9b6910; background: #fff4da; }
.certlab-status--warning > span { background: #e5a526; }
.certlab-status--danger { color: #a6383f; background: #fdebed; }
.certlab-status--danger > span { background: #dc4b55; }
.certlab-status--info { color: #167a91; background: #e7f6f9; }
.certlab-status--info > span { background: #25a6bf; }
.certlab-status--neutral { color: #586c7b; background: #edf2f5; }
.certlab-status--neutral > span { background: #8195a4; }

.certlab-row-action {
    min-width: 93px;
    padding: 5px 8px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 600;
}

/* Acciones de estado observadas en la grilla legacy de Cesados. */
.certlab-state-actions {
    display: inline-flex;
    align-items: center;
    flex-direction: column;
    gap: 8px;
}

.certlab-state-action {
    display: inline-grid;
    width: 50px;
    height: 58px;
    padding: 0;
    place-items: center;
    color: #fff;
    border: 0;
    border-radius: 10px;
    box-shadow: none;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}

.certlab-state-action:hover,
.certlab-state-action:focus-visible {
    color: #fff;
    filter: brightness(.94);
    transform: translateY(-1px);
    box-shadow: 0 5px 12px rgba(13, 42, 62, .18);
}

.certlab-state-action:focus-visible {
    outline: 3px solid rgba(26, 115, 232, .28);
    outline-offset: 2px;
}

.certlab-state-action--danger { background: #db0606; }
.certlab-state-action--secondary { background: #6c757d; }
.certlab-state-action--success { background: #28a745; }

.certlab-state-action__icon {
    position: relative;
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    font-size: 27px;
}

.certlab-state-action__overlay {
    position: absolute;
    right: -2px;
    bottom: -1px;
    padding: 1px;
    border-radius: 50%;
    background: #6c757d;
    font-size: 16px;
    font-weight: 700;
}

.certlab-state-action--danger .certlab-state-action__overlay { background: #db0606; }
.certlab-state-action--secondary .certlab-state-action__overlay { background: #6c757d; }
.certlab-state-action--success .certlab-state-action__overlay { background: #28a745; }

#cesados .certlab-status {
    padding: 5px 10px;
    color: #fff;
    text-transform: uppercase;
}

#cesados .certlab-status > span { display: none; }
#cesados .certlab-status--info { background: #1a73e8; }
#cesados .certlab-status--success { background: #4caf50; }
#cesados .certlab-status--danger { background: #f44336; }
#cesados .certlab-status--neutral { background: #7b809a; }
#cesados .certlab-status--warning { background: #e5a526; }

.certlab-table-wrap .dataTables_wrapper > .row:first-child {
    display: none;
}

.certlab-table-wrap .dataTables_wrapper > .row:last-child {
    align-items: center;
    margin: 0;
    padding: 13px 12px;
    border-top: 1px solid #e8edf1;
}

.certlab-table-wrap .dataTables_info {
    padding: 0 !important;
    color: #7b8d9b;
    font-size: 11px;
}

.certlab-table-wrap .pagination {
    justify-content: flex-end;
    margin: 0;
}

.certlab-table-wrap .page-link {
    display: inline-flex;
    min-width: 34px;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    color: #536c7e;
    border-color: #dfe7ec;
    font-size: 12px;
    line-height: 1;
    text-align: center;
}

.certlab-table-wrap .page-item.active .page-link {
    color: #fff;
    border-color: var(--certlab-green-600);
    background: var(--certlab-green-600);
    font-weight: 700;
}

.certlab-mobile-list {
    display: grid;
    gap: 12px;
}

.certlab-mobile-card {
    padding: 16px;
    border: 1px solid #dfe7ec;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(12, 44, 68, .055);
}

.certlab-mobile-card__head,
.certlab-mobile-card__footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.certlab-mobile-card__code {
    color: var(--certlab-green-600);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
}

.certlab-mobile-card h2 {
    margin: 3px 0 2px;
    color: var(--certlab-ink);
    font-size: 14px;
    font-weight: 700;
}

.certlab-mobile-card p {
    margin: 0;
    color: var(--certlab-muted);
    font-size: 10px;
}

.certlab-mobile-card__details {
    display: grid;
    margin: 14px 0;
    padding: 11px;
    border-radius: 11px;
    background: #f7f9fa;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 14px;
}

.certlab-mobile-card__details div {
    min-width: 0;
}

.certlab-mobile-card__details dt {
    color: #8697a4;
    font-size: 11px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.certlab-mobile-card__details dd {
    overflow: hidden;
    margin: 2px 0 0;
    color: #40596c;
    font-size: 10px;
    font-weight: 600;
    text-overflow: ellipsis;
}

.certlab-mobile-card__footer {
    align-items: center;
}

.certlab-mobile-card__footer > span {
    flex: 1;
    color: #7a8d9a;
    font-size: 11px;
}

.certlab-mobile-empty,
.certlab-empty-state {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    min-height: 240px;
    color: #7d909e;
    text-align: center;
}

.certlab-mobile-empty i,
.certlab-empty-state i {
    margin-bottom: 8px;
    color: #9eb0bd;
    font-size: 40px;
}

.certlab-mobile-empty strong,
.certlab-empty-state h2 {
    margin: 0 0 3px;
    color: #465e70;
    font-size: 14px;
}

.certlab-mobile-empty span,
.certlab-empty-state p {
    font-size: 10px;
}

/* Modales */
.certlab-modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    box-shadow: 0 30px 75px rgba(7, 29, 47, .23);
}

.certlab-modal-content .modal-header,
.certlab-modal-content .modal-footer {
    padding: 18px 21px;
    border-color: #e8edf1;
}

.certlab-modal-content .modal-body {
    padding: 21px;
}

.certlab-modal-content .modal-title {
    color: var(--certlab-ink);
    font-size: 17px;
    font-weight: 700;
}

.certlab-modal-content .modal-body > p {
    color: var(--certlab-muted);
    font-size: 12px;
    line-height: 1.65;
    text-align: center;
}

.certlab-modal-illustration,
.certlab-logout-icon {
    display: grid;
    width: 60px;
    height: 60px;
    margin: 5px auto 15px;
    place-items: center;
    color: var(--certlab-green-600);
    border-radius: 18px;
    background: var(--certlab-green-100);
    font-size: 30px;
}

.certlab-logout-icon {
    color: #c2424a;
    background: #fdebed;
}

.certlab-demo-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 11px;
    color: #5e7384;
    border-radius: 10px;
    background: #f3f7f9;
    font-size: 10px;
}

.certlab-demo-note i {
    color: #1a8aa3;
    font-size: 17px;
}

.certlab-detail-field {
    display: flex;
    min-height: 73px;
    flex-direction: column;
    justify-content: center;
    padding: 13px;
    border: 1px solid #e3eaf0;
    border-radius: 11px;
    background: #fafcfd;
}

.certlab-detail-field span {
    margin-bottom: 4px;
    color: #8697a4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.certlab-detail-field strong {
    color: #3c5568;
    font-size: 11px;
}

.certlab-pdf-dialog {
    max-width: min(1120px, calc(100vw - 32px));
}

.certlab-pdf-body {
    min-height: min(68vh, 650px);
    background: #e9eef1;
}

.certlab-pdf-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(min(68vh, 650px) - 42px);
    flex-direction: column;
    color: #6e8292;
    text-align: center;
}

.certlab-pdf-placeholder i {
    margin-bottom: 12px;
    color: #d64d55;
    font-size: 58px;
}

.certlab-pdf-placeholder h6 {
    color: var(--certlab-ink);
    font-weight: 700;
}

.certlab-pdf-placeholder p,
.certlab-pdf-placeholder span {
    max-width: 470px;
    margin: 0 0 3px;
    font-size: 11px;
}

.certlab-pdf-frame {
    width: 100%;
    min-height: min(68vh, 650px);
    border: 0;
    background: #fff;
}

/* Resumen y filtros operacionales compartidos por los módulos CERTLAB. */
.certlab-module-stats {
    display: grid;
    margin-bottom: 15px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.certlab-module-stat {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 102px;
    align-items: center;
    gap: 13px;
    padding: 17px;
    overflow: hidden;
    border: 1px solid var(--certlab-border);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-module-stat::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 4px;
    height: 100%;
    background: var(--certlab-navy-700);
    content: "";
}

.certlab-module-stat--green::after { background: var(--certlab-green-600); }
.certlab-module-stat--amber::after { background: #d28a16; }
.certlab-module-stat--red::after { background: #cf4b57; }
.certlab-module-stat--blue::after { background: #2889b0; }

.certlab-module-stat__icon {
    display: grid;
    flex: 0 0 43px;
    height: 43px;
    place-items: center;
    color: var(--certlab-navy-700);
    border-radius: 12px;
    background: var(--certlab-blue-100);
    font-size: 22px;
}

.certlab-module-stat--green .certlab-module-stat__icon { color: var(--certlab-green-600); background: var(--certlab-green-100); }
.certlab-module-stat--amber .certlab-module-stat__icon { color: #a96909; background: #fff5df; }
.certlab-module-stat--red .certlab-module-stat__icon { color: #b53f49; background: #fff0f1; }
.certlab-module-stat--blue .certlab-module-stat__icon { color: #19789f; background: #eaf7fb; }

.certlab-module-stat > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.certlab-module-stat > div > span,
.certlab-module-stat small {
    overflow: hidden;
    color: var(--certlab-muted);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.certlab-module-stat strong {
    margin: 1px 0;
    color: var(--certlab-ink);
    font-size: 23px;
    font-weight: 700;
    line-height: 1.15;
}

.certlab-filter-card {
    margin-bottom: 15px;
    overflow: hidden;
    border: 1px solid var(--certlab-border);
    border-radius: var(--certlab-radius);
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-filter-card .card-body {
    padding: 20px 22px;
}

.certlab-filter-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 17px;
    gap: 15px;
}

.certlab-filter-card__heading h2 {
    margin: 1px 0 2px;
    color: var(--certlab-ink);
    font-size: 16px;
    font-weight: 700;
}

.certlab-filter-card__heading p {
    margin: 0;
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-filter-card__badge {
    display: inline-flex;
    min-height: 30px;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    color: #446174;
    border: 1px solid #dbe8ef;
    border-radius: 999px;
    background: #f5fafc;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.certlab-advanced-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 13px;
}

.certlab-advanced-filter label {
    display: flex;
    align-items: center;
    margin-bottom: 6px;
    gap: 6px;
    color: #39546a;
    font-size: 11px;
    font-weight: 600;
}

.certlab-advanced-filter label i {
    color: var(--certlab-green-600);
    font-size: 15px;
}

.certlab-advanced-filter .form-control,
.certlab-advanced-filter .form-select {
    min-height: 42px;
    border-color: #cfdde6;
    border-radius: 10px;
    color: var(--certlab-ink);
    font-size: 11px;
}

.certlab-advanced-filter .form-control:focus,
.certlab-advanced-filter .form-select:focus {
    border-color: var(--certlab-green-600);
    box-shadow: 0 0 0 3px rgba(20, 122, 55, .11);
}

.certlab-filter-card__actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
    gap: 9px;
}

.certlab-filter-card__actions .btn {
    min-width: 112px;
    min-height: 40px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
}

.certlab-table-length {
    margin-bottom: 10px;
}

.certlab-table-length label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-table-length select {
    min-width: 68px;
    min-height: 34px;
    padding: 4px 25px 4px 9px;
    border: 1px solid #cfdde6;
    border-radius: 8px;
    background-color: #fff;
}

/* Ficha operacional de garantías. */
.certlab-workspace {
    color: var(--certlab-ink);
}

.certlab-workspace-hero {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    padding: 25px 27px;
    overflow: hidden;
    gap: 18px;
    color: #fff;
    border-radius: 19px;
    background: linear-gradient(120deg, var(--certlab-navy-950), var(--certlab-navy-800) 68%, #125742);
    box-shadow: 0 16px 36px rgba(7, 29, 47, .17);
}

.certlab-workspace-hero::after {
    position: absolute;
    right: -45px;
    bottom: -95px;
    width: 260px;
    height: 260px;
    border: 42px solid rgba(100, 213, 111, .08);
    border-radius: 50%;
    content: "";
}

.certlab-workspace-hero__icon {
    display: grid;
    z-index: 1;
    flex: 0 0 62px;
    height: 62px;
    place-items: center;
    color: #91ee9c;
    border: 1px solid rgba(145, 238, 156, .25);
    border-radius: 17px;
    background: rgba(20, 122, 55, .3);
    font-size: 31px;
}

.certlab-workspace-hero__copy {
    z-index: 1;
    flex: 1;
}

.certlab-workspace-hero .certlab-eyebrow {
    color: #91ee9c;
}

.certlab-workspace-hero h1 {
    margin: 2px 0 4px;
    color: #fff;
    font-size: 24px;
    font-weight: 700;
}

.certlab-workspace-hero p {
    max-width: 690px;
    margin: 0;
    color: #d4e4ee;
    font-size: 12px;
}

.certlab-back-link {
    display: inline-flex;
    align-items: center;
    margin-bottom: 8px;
    gap: 4px;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
}

.certlab-back-link:hover {
    color: #91ee9c;
}

.certlab-workspace-hero__status {
    z-index: 1;
    display: flex;
    min-width: 196px;
    flex-direction: column;
    padding: 13px 15px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 13px;
    background: rgba(255, 255, 255, .07);
}

.certlab-workspace-hero__status span {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    font-weight: 700;
}

.certlab-workspace-hero__status small {
    margin-top: 3px;
    color: #bcd1df;
    font-size: 11px;
}

.certlab-form-alert,
.certlab-success-alert {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
    padding: 14px 16px;
    gap: 10px;
    border-radius: 13px;
    font-size: 11px;
}

.certlab-form-alert {
    color: #943b45;
    border: 1px solid #f0cbd0;
    background: #fff4f5;
}

.certlab-success-alert {
    color: #246a39;
    border: 1px solid #cce8d3;
    background: #effaf1;
}

.certlab-form-alert > i,
.certlab-success-alert > i {
    margin-top: 1px;
    font-size: 20px;
}

.certlab-form-alert > div,
.certlab-success-alert > div {
    display: flex;
    flex-direction: column;
}

.certlab-form-section {
    margin-bottom: 19px;
    overflow: hidden;
    border: 1px solid var(--certlab-border);
    border-radius: 17px;
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-form-section__header {
    display: flex;
    align-items: center;
    padding: 18px 21px;
    gap: 13px;
    border-bottom: 1px solid var(--certlab-border);
    background: linear-gradient(110deg, #fbfdfe, #f7fbf8);
}

.certlab-form-section__number {
    display: grid;
    flex: 0 0 39px;
    height: 39px;
    place-items: center;
    color: #fff;
    border-radius: 11px;
    background: var(--certlab-navy-800);
    font-size: 12px;
    font-weight: 700;
}

.certlab-form-section__header > div {
    flex: 1;
}

.certlab-form-section__header h2 {
    margin: 1px 0 1px;
    color: var(--certlab-ink);
    font-size: 17px;
    font-weight: 700;
}

.certlab-form-section__header p {
    margin: 0;
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-form-section__header > i {
    color: #b9c9d4;
    font-size: 28px;
}

.certlab-form-section .card-body {
    padding: 22px;
}

.certlab-record-form .form-label {
    margin-bottom: 6px;
    color: #365167;
    font-size: 11px;
    font-weight: 600;
}

.certlab-record-form .form-label span {
    color: #c84350;
}

.certlab-record-form .form-control,
.certlab-record-form .form-select {
    min-height: 44px;
    border-color: #cddbe5;
    border-radius: 10px;
    color: var(--certlab-ink);
    background-color: #fff;
    font-size: 12px;
}

.certlab-record-form .form-control:focus,
.certlab-record-form .form-select:focus {
    border-color: var(--certlab-green-600);
    box-shadow: 0 0 0 3px rgba(20, 122, 55, .1);
}

.certlab-record-form .field-validation-error {
    display: block;
    margin-top: 5px;
    font-size: 11px;
}

.certlab-field-help {
    display: block;
    margin-top: 5px;
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-requirements {
    margin-top: 21px;
    padding-top: 19px;
    border-top: 1px solid var(--certlab-border);
}

.certlab-requirements__heading {
    display: flex;
    align-items: center;
    margin-bottom: 13px;
    gap: 9px;
}

.certlab-requirements__heading > i {
    color: var(--certlab-green-600);
    font-size: 23px;
}

.certlab-requirements__heading > div {
    display: flex;
    flex-direction: column;
}

.certlab-requirements__heading strong {
    font-size: 12px;
}

.certlab-requirements__heading span {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-requirement-card {
    position: relative;
    display: flex;
    min-height: 73px;
    align-items: center;
    padding: 13px;
    gap: 10px;
    cursor: pointer;
    border: 1px solid #d7e2ea;
    border-radius: 12px;
    background: #fbfcfd;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.certlab-requirement-card:hover,
.certlab-requirement-card.is-selected {
    border-color: #91cda0;
    background: #f1faf3;
    box-shadow: 0 0 0 3px rgba(20, 122, 55, .06);
}

.certlab-requirement-card > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.certlab-requirement-card__check {
    display: grid;
    flex: 0 0 30px;
    height: 30px;
    place-items: center;
    color: transparent;
    border: 1px solid #bdccd7;
    border-radius: 9px;
    background: #fff;
    font-size: 19px;
}

.certlab-requirement-card.is-selected .certlab-requirement-card__check {
    color: #fff;
    border-color: var(--certlab-green-600);
    background: var(--certlab-green-600);
}

.certlab-requirement-card > span:last-child {
    display: flex;
    flex-direction: column;
}

.certlab-requirement-card strong {
    color: var(--certlab-ink);
    font-size: 11px;
}

.certlab-requirement-card small {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-conditional-field {
    display: none;
    margin-top: 8px;
}

.certlab-conditional-field.is-visible {
    display: block;
}

.certlab-money-field {
    position: relative;
}

.certlab-money-field > span {
    position: absolute;
    z-index: 1;
    top: 50%;
    left: 14px;
    color: var(--certlab-green-600);
    font-weight: 700;
    transform: translateY(-50%);
}

.certlab-money-field .form-control {
    padding-left: 31px;
}

.certlab-form-submit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
    padding: 17px 19px;
    gap: 18px;
    border: 1px solid #cfe7d5;
    border-radius: 15px;
    background: linear-gradient(100deg, #eff9f1, #f9fcfa);
}

.certlab-form-submit > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.certlab-form-submit > div:first-child > i {
    color: var(--certlab-green-600);
    font-size: 25px;
}

.certlab-form-submit > div:first-child > span {
    display: flex;
    flex-direction: column;
}

.certlab-form-submit strong {
    font-size: 12px;
}

.certlab-form-submit small {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-form-submit .btn {
    min-height: 43px;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
}

.certlab-form-aside {
    position: sticky;
    top: 92px;
    overflow: hidden;
    border: 1px solid var(--certlab-border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--certlab-shadow-sm);
}

.certlab-form-progress {
    padding: 18px;
    background: #f7fafc;
}

.certlab-form-progress > span {
    color: var(--certlab-muted);
    font-size: 11px;
}

.certlab-form-progress > strong {
    float: right;
    color: var(--certlab-green-600);
    font-size: 12px;
}

.certlab-form-progress > div {
    height: 6px;
    margin-top: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #dfe8ed;
}

.certlab-form-progress > div > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--certlab-green-600), var(--certlab-green-400));
    transition: width .2s ease;
}

.certlab-form-aside nav {
    display: flex;
    flex-direction: column;
    padding: 8px;
}

.certlab-form-aside nav a {
    display: grid;
    align-items: center;
    padding: 10px;
    color: var(--certlab-ink);
    border-radius: 10px;
    grid-template-columns: 29px 1fr auto;
    gap: 9px;
}

.certlab-form-aside nav a:hover {
    color: var(--certlab-green-600);
    background: var(--certlab-green-100);
}

.certlab-form-aside nav a > span {
    display: grid;
    height: 29px;
    place-items: center;
    color: var(--certlab-navy-700);
    border-radius: 8px;
    background: var(--certlab-blue-100);
    font-size: 11px;
    font-weight: 700;
}

.certlab-form-aside nav a > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.certlab-form-aside nav strong,
.certlab-form-aside nav small {
    overflow: hidden;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.certlab-form-aside nav small {
    color: var(--certlab-muted);
}

.certlab-form-tip {
    display: flex;
    margin: 5px 14px 14px;
    padding: 13px;
    gap: 9px;
    color: #386048;
    border: 1px solid #d1ead7;
    border-radius: 11px;
    background: #f1faf3;
}

.certlab-form-tip > i {
    font-size: 20px;
}

.certlab-form-tip strong {
    display: block;
    font-size: 11px;
}

.certlab-form-tip p {
    margin: 2px 0 0;
    color: #587164;
    font-size: 11px;
}

.certlab-form-required {
    padding: 12px 17px;
    color: var(--certlab-muted);
    border-top: 1px solid var(--certlab-border);
    font-size: 11px;
}

.certlab-form-required span {
    color: #c84350;
}

@media (max-width: 1199.98px) {
    .certlab-module-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .certlab-form-aside {
        position: static;
    }

    .certlab-list-toolbar {
        grid-template-columns: minmax(240px, 1fr) minmax(260px, 1.4fr);
    }

    .certlab-list-updated {
        display: none;
    }

    .certlab-welcome-card__visual {
        min-width: 290px;
    }
}

@media (max-width: 991.98px) {
    .certlab-advanced-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .certlab-auth-shell {
        grid-template-columns: 1fr;
    }

    .certlab-auth-brand {
        display: none;
    }

    .certlab-auth-form-panel {
        min-height: 100vh;
        padding-top: 110px;
        padding-bottom: 70px;
    }

    .certlab-auth-mobile-logo {
        position: absolute;
        top: 26px;
        left: 50%;
        display: block;
        transform: translateX(-50%);
    }

    .certlab-auth-mobile-logo img {
        width: 115px;
        height: 66px;
        object-fit: contain;
    }

    .certlab-welcome-card__visual {
        display: none;
    }

    .certlab-welcome-card__content {
        flex-basis: 100%;
    }

    .certlab-list-toolbar {
        grid-template-columns: 1fr;
    }

    .certlab-filter-group {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 3px;
        scrollbar-width: thin;
    }

    .certlab-filter {
        flex: 0 0 auto;
    }
}

@media (max-width: 767.98px) {
    .certlab-input-icon .form-control,
    .certlab-search-box .form-control {
        font-size: 16px;
    }

    body.certlab-shell .page-content {
        padding-top: 80px;
    }

    .certlab-shell .page-title-box {
        display: none !important;
    }

    .certlab-module-hero {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 12px;
        padding: 17px;
    }

    .certlab-module-hero__icon {
        flex-basis: 46px;
        height: 46px;
        border-radius: 13px;
        font-size: 23px;
    }

    .certlab-module-hero__copy {
        flex: 1 1 calc(100% - 62px);
    }

    .certlab-module-hero h1 {
        font-size: 17px;
    }

    .certlab-module-hero p {
        font-size: 10px;
    }

    .certlab-module-hero__action {
        width: 100%;
    }

    .certlab-module-hero__action .btn {
        width: 100%;
    }

    .certlab-workspace-hero {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 20px;
    }

    .certlab-workspace-hero__icon {
        flex-basis: 49px;
        height: 49px;
        font-size: 24px;
    }

    .certlab-workspace-hero__status {
        width: 100%;
    }

    .certlab-form-section .card-body {
        padding: 17px;
    }

    .certlab-form-submit {
        align-items: stretch;
        flex-direction: column;
    }

    .certlab-form-submit > div:last-child {
        display: grid;
        grid-template-columns: 1fr 1.5fr;
    }

    .certlab-list-card .card-body {
        padding: 15px;
    }

    .certlab-welcome-card {
        min-height: 220px;
        border-radius: 17px;
    }

    .certlab-welcome-card__content {
        padding: 27px 23px;
    }

    .certlab-welcome-card h1 {
        font-size: 25px;
    }

    .certlab-welcome-card p {
        font-size: 12px;
    }

    .certlab-metric-card {
        min-height: auto;
    }

    .certlab-metric-card .card-body {
        padding: 16px;
    }

    .certlab-metric-card__value {
        font-size: 25px;
    }

    .certlab-card-header {
        align-items: flex-start;
        padding: 17px 17px 10px;
    }

    .certlab-card-badge {
        display: none;
    }

    .certlab-activity-item {
        grid-template-columns: 38px minmax(0, 1fr) auto;
    }

    .certlab-activity-item__date {
        display: none;
    }

    .certlab-footer-content {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        min-height: 72px;
        gap: 3px;
    }

    .certlab-footer-content > div:first-child span,
    .certlab-footer-meta span:last-child {
        display: none;
    }
}

/* ========================================================================== */
/* Experiencia DEMO clara, inspirada en los patrones observados en Nalanda.   */
/* Se mantiene encapsulada para no alterar la operación SUPERADMIN existente. */
/* ========================================================================== */
.certlab-role-demo {
    --demo-purple: #0a6229;
    --demo-blue: #17823b;
    --demo-canvas: #f4f4f5;
    --demo-ink: #0b162c;
    --demo-link: #006da5;
    --demo-line: #bec0c5;
    --demo-green: #57ad2f;
    --demo-rose: #cf2e59;
    color: var(--demo-ink);
    background: var(--demo-canvas);
    font-family: "Segoe UI", Arial, sans-serif;
}

.certlab-role-demo #page-topbar {
    right: 0;
    left: 0;
    height: 80px;
}

.certlab-role-demo .certlab-demo-topbar {
    border: 0;
    background: linear-gradient(90deg, #095b25 0%, var(--demo-blue) 58%, #55ad2f 100%);
    box-shadow: 0 6px 22px rgba(9, 91, 37, .2);
}

.certlab-role-demo .certlab-demo-navbar {
    width: 100%;
    max-width: none;
    height: 80px;
    padding: 0 32px;
}

.certlab-demo-brand,
.certlab-demo-brand > a,
.certlab-demo-user {
    display: flex;
    align-items: center;
}

.certlab-demo-brand {
    gap: 18px;
}

.certlab-demo-brand > a:not(.certlab-demo-apps) {
    gap: 11px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
}

.certlab-demo-brand > a:not(.certlab-demo-apps):hover {
    color: #fff;
}

.certlab-demo-apps {
    display: grid !important;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 11px;
    color: #dcd5f0 !important;
    background: rgba(255, 255, 255, .08);
    font-size: 26px;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}

.certlab-demo-apps:hover {
    border-color: rgba(255, 255, 255, .45);
    color: #fff !important;
    background: rgba(255, 255, 255, .16);
    transform: translateY(-1px);
}

.certlab-demo-brand img {
    width: auto;
    max-width: 122px;
    height: 40px;
    object-fit: contain;
}

.certlab-demo-brand > a span {
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, .35);
}

.certlab-demo-user {
    gap: 9px;
    height: 80px;
    color: #fff !important;
    background: transparent !important;
    font-size: 14px;
    font-weight: 600;
}

.certlab-demo-user > i:first-child {
    font-size: 29px;
}

.certlab-role-demo .certlab-demo-sidebar {
    top: 100px;
    bottom: auto;
    left: 0;
    z-index: 1003;
    width: 76px;
    height: auto;
    min-height: 486px;
    padding: 0;
    border: 0;
    border-radius: 0 16px 16px 0;
    background: #fff !important;
    box-shadow: 0 1px 4px rgba(11, 22, 44, .18);
}

.certlab-demo-rail {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 3px;
    padding: 20px 10px 14px;
}

.certlab-demo-rail__mark {
    display: grid;
    width: 48px;
    height: 48px;
    margin: 0 auto 7px;
    place-items: center;
    border-radius: 12px;
}

.certlab-demo-rail__mark img {
    width: 38px;
    height: 38px;
    object-fit: contain;
}

.certlab-demo-rail__divider {
    display: block;
    height: 1px;
    margin: 0 7px 9px;
    background: #e1e2e5;
}

.certlab-demo-rail__item,
.certlab-demo-rail__group > summary {
    position: relative;
    display: grid;
    width: 54px;
    height: 51px;
    margin: 0 auto;
    padding: 0;
    place-items: center;
    color: #122039;
    border: 0;
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    list-style: none;
}

.certlab-demo-rail__group > summary::-webkit-details-marker {
    display: none;
}

.certlab-demo-rail__item i,
.certlab-demo-rail__group > summary i {
    font-size: 22px;
}

.certlab-demo-rail__item > span,
.certlab-demo-rail__group > summary > span {
    position: absolute;
    top: 50%;
    left: 62px;
    z-index: 2;
    display: none;
    min-width: max-content;
    padding: 7px 10px;
    color: #fff;
    border-radius: 7px;
    background: #17233c;
    box-shadow: 0 7px 18px rgba(11, 22, 44, .2);
    font-size: 11px;
    font-weight: 600;
    transform: translateY(-50%);
}

.certlab-demo-rail__item:hover > span,
.certlab-demo-rail__item:focus > span,
.certlab-demo-rail__group > summary:hover > span,
.certlab-demo-rail__group > summary:focus > span {
    display: block;
}

.certlab-demo-rail__item:hover,
.certlab-demo-rail__item:focus,
.certlab-demo-rail__item.mm-active,
.certlab-demo-rail__group.is-active > summary,
.certlab-demo-rail__group[open] > summary {
    color: var(--demo-blue);
    background: #eef0fa;
}

.certlab-demo-rail__item.mm-active:before,
.certlab-demo-rail__group.is-active > summary:before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: -10px;
    width: 4px;
    border-radius: 0 3px 3px 0;
    background: var(--demo-blue);
    content: "";
}

.certlab-demo-rail__group {
    position: relative;
}

.certlab-demo-rail__flyout {
    position: absolute;
    top: 0;
    left: 67px;
    z-index: 1005;
    display: none;
    width: 250px;
    padding: 12px;
    border: 1px solid #e0e1e5;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(11, 22, 44, .16);
}

.certlab-demo-rail__group:hover .certlab-demo-rail__flyout,
.certlab-demo-rail__group:focus-within .certlab-demo-rail__flyout,
.certlab-demo-rail__group[open] .certlab-demo-rail__flyout {
    display: block;
}

.certlab-demo-rail__flyout strong {
    display: block;
    padding: 7px 9px 10px;
    color: var(--demo-ink);
    font-size: 13px;
}

.certlab-demo-rail__flyout a {
    display: block;
    padding: 9px;
    color: #43516a;
    border-radius: 7px;
    font-size: 12px;
}

.certlab-demo-rail__flyout a:hover,
.certlab-demo-rail__flyout a.mm-active {
    color: var(--demo-blue);
    background: #f1f2f8;
}

.certlab-demo-rail__logout {
    margin-top: 9px;
    color: #a7354d;
    border-top: 1px solid #ececef;
    border-radius: 0;
}

.certlab-role-demo .main-content {
    margin-left: 76px;
}

.certlab-role-demo .page-content {
    min-height: calc(100vh - 126px);
    padding: 116px 38px 44px;
    background: var(--demo-canvas);
}

.certlab-role-demo .certlab-container {
    max-width: 1520px;
}

.certlab-role-demo .card {
    border: 1px solid #e0e1e4;
    border-radius: 16px;
    box-shadow: 0 1px 3px rgba(11, 22, 44, .12);
}

.certlab-role-demo .page-title-box h4,
.certlab-demo-page-heading h1,
.certlab-demo-overview-card h2,
.certlab-subcontractor-board h2,
.certlab-demo-charts h2,
.certlab-profile-page h1,
.certlab-profile-page h2 {
    color: var(--demo-ink);
}

.certlab-demo-summary,
.certlab-profile-page {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.certlab-demo-page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.certlab-demo-page-heading > div > span,
.certlab-subcontractor-board > header span,
.certlab-demo-charts > header > span,
.certlab-profile-details > header span {
    display: block;
    margin-bottom: 5px;
    color: #596781;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.certlab-demo-page-heading h1 {
    margin: 0;
    font-size: 25px;
    font-weight: 650;
}

.certlab-demo-page-heading p {
    margin: 7px 0 0;
    color: #66738a;
    font-size: 13px;
}

.certlab-demo-updated,
.certlab-demo-page-heading > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    color: #43516a;
    border: 1px solid #d8d9de;
    border-radius: 9px;
    background: #fff;
    font-size: 11px;
}

.certlab-demo-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.certlab-demo-overview-card,
.certlab-subcontractor-board,
.certlab-demo-charts,
.certlab-profile-identity,
.certlab-profile-details {
    border: 1px solid #e1e2e5;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(11, 22, 44, .12);
}

.certlab-demo-overview-card {
    min-height: 288px;
    padding: 30px 34px 26px;
}

.certlab-demo-overview-card h2,
.certlab-subcontractor-board h2,
.certlab-demo-charts h2,
.certlab-profile-details h2 {
    margin: 0;
    font-size: 19px;
    font-weight: 650;
}

.certlab-demo-document-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 24px;
    margin-top: 23px;
}

.certlab-demo-document-list a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 8px;
    min-height: 39px;
    color: var(--demo-link);
    border-bottom: 1px solid #ececef;
    font-size: 12px;
}

.certlab-demo-document-list a > span {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 7px;
}

.certlab-demo-document-list a > strong {
    color: var(--demo-ink);
    font-size: 15px;
}

.certlab-demo-overview-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 24px;
}

.certlab-demo-overview-actions a {
    display: grid;
    min-height: 43px;
    padding: 7px 12px;
    place-items: center;
    color: var(--demo-link);
    border: 1px solid var(--demo-link);
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    text-align: center;
}

.certlab-demo-progress-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 31px;
}

.certlab-demo-progress-list > div > span:first-child {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    color: var(--demo-link);
    font-size: 12px;
}

.certlab-demo-progress-list strong {
    color: var(--demo-green);
}

.certlab-demo-progress {
    display: block;
    height: 11px;
    overflow: hidden;
    border-radius: 20px;
    background: #e7e7e9;
}

.certlab-demo-progress > i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--demo-green);
}

.certlab-subcontractor-board {
    padding: 30px 34px 34px;
}

.certlab-subcontractor-board > header,
.certlab-demo-charts > header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.certlab-subcontractor-board > header > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--demo-link);
    font-size: 12px;
    font-weight: 600;
}

.certlab-subcontractor-country {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    color: var(--demo-ink);
    font-size: 14px;
}

.certlab-subcontractor-country > span {
    margin-left: auto;
    color: #69758a;
    font-size: 11px;
}

.certlab-subcontractor-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--demo-line);
    border-radius: 6px;
}

.certlab-subcontractor-table {
    width: 100%;
    min-width: 1120px;
    border-collapse: collapse;
    color: var(--demo-ink);
}

.certlab-subcontractor-table th,
.certlab-subcontractor-table td {
    border-right: 1px solid var(--demo-line);
    border-bottom: 1px solid var(--demo-line);
}

.certlab-subcontractor-table th:last-child,
.certlab-subcontractor-table td:last-child {
    border-right: 0;
}

.certlab-subcontractor-table thead th {
    height: 74px;
    padding: 12px 13px;
    background: #f0f1f8;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.18;
    text-align: center;
    text-transform: uppercase;
}

.certlab-subcontractor-table thead th:nth-child(1) { width: 48px; }
.certlab-subcontractor-table thead th:nth-child(2) { width: 37%; text-align: left; }
.certlab-subcontractor-table thead th:nth-child(3),
.certlab-subcontractor-table thead th:nth-child(4),
.certlab-subcontractor-table thead th:nth-child(5) { width: 11%; }
.certlab-subcontractor-table thead th:nth-child(6) { width: 10%; }
.certlab-subcontractor-table thead th:nth-child(7) { width: 14%; }
.certlab-subcontractor-table thead th:nth-child(8) { width: 52px; }

.certlab-subcontractor-project td {
    height: 66px;
    padding: 16px 18px;
    background: #e7e7e9;
    font-size: 13px;
    font-weight: 600;
}

.certlab-subcontractor-project td > span {
    font-weight: 700;
}

.certlab-subcontractor-project td > small {
    float: right;
    color: #657187;
    font-size: 10px;
    font-weight: 500;
}

.certlab-subcontractor-row td {
    height: 89px;
    padding: 12px 15px;
    background: #fff;
    text-align: center;
}

.certlab-subcontractor-row:hover td {
    background: #fafafa;
}

.certlab-subcontractor-row td:nth-child(2) {
    text-align: left;
}

.certlab-subcontractor-row td:nth-child(2) strong,
.certlab-subcontractor-row td:nth-child(2) small,
.certlab-subcontractor-row td:nth-child(7) span {
    display: block;
}

.certlab-subcontractor-row td:nth-child(2) strong {
    font-size: 12px;
    font-weight: 600;
}

.certlab-subcontractor-row td:nth-child(2) small,
.certlab-subcontractor-row td:nth-child(7) span {
    margin-top: 4px;
    color: #59667a;
    font-size: 10px;
}

.certlab-subcontractor-state {
    display: inline-block;
    width: 5px;
    height: 42px;
    border-radius: 5px;
    background: #b7bbc3;
}

.certlab-subcontractor-state--activo,
.certlab-subcontractor-state--abierto { background: var(--demo-green); }
.certlab-subcontractor-state--vencido { background: var(--demo-rose); }

.certlab-kpi-ring {
    --certlab-ring-color: var(--demo-green);
    position: relative;
    display: inline-grid;
    width: 46px;
    height: 46px;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--certlab-ring-color) calc(var(--certlab-percent) * 1%), #d9dadd 0);
}

.certlab-kpi-ring:before {
    position: absolute;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
    content: "";
}

.certlab-kpi-ring > span {
    position: relative;
    z-index: 1;
    color: var(--demo-ink);
    font-size: 10px;
    font-weight: 600;
}

.certlab-kpi-ring--medium { --certlab-ring-color: #e6a323; }
.certlab-kpi-ring--low { --certlab-ring-color: var(--demo-rose); }

.certlab-project-document {
    display: inline-flex;
    min-width: 43px;
    min-height: 43px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--demo-rose);
    border-radius: 7px;
    background: #fdeef2;
}

.certlab-project-document.is-ready {
    color: var(--demo-green);
    background: #e8f8f3;
}

.certlab-project-document i { font-size: 18px; }
.certlab-project-document small { margin-top: 1px; font-size: 8px; }

.certlab-subcontractor-action {
    display: inline-grid;
    width: 35px;
    height: 35px;
    place-items: center;
    color: var(--demo-link);
    border-radius: 7px;
    font-size: 21px;
}

.certlab-subcontractor-action:hover {
    color: var(--demo-blue);
    background: #eef0f8;
}

.certlab-demo-charts {
    padding: 30px 34px 34px;
}

.certlab-demo-charts > header {
    display: block;
}

.certlab-demo-charts > header p {
    margin: 7px 0 0;
    color: #68758a;
    font-size: 12px;
}

.certlab-role-demo .certlab-chart-card {
    min-height: 350px;
    border: 1px solid #e4e5e8;
    border-radius: 12px;
    background: #fff;
    box-shadow: none;
}

.certlab-demo-empty {
    display: flex;
    min-height: 190px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #69758a;
    border: 1px dashed #cfd1d7;
    border-radius: 8px;
}

.certlab-demo-empty > i { margin-bottom: 8px; font-size: 34px; }
.certlab-demo-empty > strong { color: var(--demo-ink); }
.certlab-demo-empty > span { margin-top: 4px; font-size: 11px; }

/* Mi perfil deja de ser un ancla del inicio y pasa a ser una vista real. */
.certlab-profile-grid {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
    gap: 28px;
}

.certlab-profile-identity,
.certlab-profile-details {
    padding: 34px;
}

.certlab-profile-identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.certlab-profile-avatar {
    display: grid;
    width: 86px;
    height: 86px;
    margin-bottom: 18px;
    place-items: center;
    color: #fff;
    border: 7px solid #eef0f8;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--demo-purple), var(--demo-blue));
    font-size: 25px;
    font-weight: 700;
}

.certlab-profile-identity h2 {
    margin: 0;
    font-size: 18px;
}

.certlab-profile-identity > p {
    margin: 6px 0 14px;
    color: #6c788b;
    font-size: 12px;
}

.certlab-profile-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 11px;
    color: #426253;
    border-radius: 30px;
    background: #eaf7f1;
    font-size: 10px;
    font-weight: 700;
}

.certlab-profile-status > i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--demo-green);
}

.certlab-profile-status.is-inactive {
    color: #9c3049;
    background: #fdeef2;
}

.certlab-profile-status.is-inactive > i { background: var(--demo-rose); }

.certlab-profile-demo-note {
    display: flex;
    gap: 10px;
    margin-top: 28px;
    padding: 15px;
    color: #48566e;
    border-radius: 10px;
    background: #f2f3f8;
    font-size: 10px;
    text-align: left;
}

.certlab-profile-demo-note > i { color: var(--demo-blue); font-size: 19px; }
.certlab-profile-demo-note strong { display: block; margin-bottom: 3px; color: var(--demo-ink); }

.certlab-profile-details > header {
    padding-bottom: 20px;
    border-bottom: 1px solid #e8e9ec;
}

.certlab-profile-details dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 32px;
    margin: 8px 0 0;
}

.certlab-profile-details dl > div {
    padding: 20px 0;
    border-bottom: 1px solid #ececef;
}

.certlab-profile-details dt {
    margin-bottom: 6px;
    color: #707c8f;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
}

.certlab-profile-details dd {
    margin: 0;
    color: var(--demo-ink);
    font-size: 13px;
}

.certlab-role-demo .footer {
    left: 76px;
    color: #707b8e;
    background: var(--demo-canvas);
}

@media (max-width: 1199.98px) {
    .certlab-demo-overview,
    .certlab-profile-grid {
        grid-template-columns: 1fr;
    }

    .certlab-profile-identity {
        align-items: flex-start;
        text-align: left;
    }
}

@media (max-width: 767.98px) {
    .certlab-role-demo .certlab-demo-navbar { padding: 0 14px; }
    .certlab-demo-brand { gap: 9px; }
    .certlab-demo-apps { width: 42px; height: 42px; font-size: 23px; }
    .certlab-demo-brand img { max-width: 92px; }
    .certlab-demo-brand > a span,
    .certlab-demo-user > span { display: none; }
    .certlab-role-demo .certlab-demo-sidebar { top: 92px; width: 64px; }
    .certlab-demo-rail { padding-right: 5px; padding-left: 5px; }
    .certlab-demo-rail__item,
    .certlab-demo-rail__group > summary { width: 50px; }
    .certlab-demo-rail__flyout { left: 57px; }
    .certlab-role-demo .main-content { margin-left: 64px; }
    .certlab-role-demo .page-content { padding: 108px 13px 32px; }
    .certlab-role-demo .footer { left: 64px; }
    .certlab-demo-page-heading { align-items: flex-start; flex-direction: column; }
    .certlab-demo-overview-card,
    .certlab-subcontractor-board,
    .certlab-demo-charts,
    .certlab-profile-identity,
    .certlab-profile-details { padding: 22px 18px; }
    .certlab-demo-document-list,
    .certlab-demo-overview-actions,
    .certlab-profile-details dl { grid-template-columns: 1fr; }
    .certlab-profile-details dl { gap: 0; }
}

.certlab-chart-card {
    min-height: 350px;
    padding: 20px 18px 12px;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 46, 68, .06);
}

.certlab-chart-card__heading h3 {
    margin: 0 0 4px;
    color: #153f5c;
    font-size: 16px;
    font-weight: 800;
}

.certlab-chart-card__heading p {
    min-height: 36px;
    margin: 0;
    color: #738195;
    font-size: 12px;
}

.certlab-chart { min-height: 270px; }
.certlab-chart-empty { padding: 95px 10px; color: #738195; text-align: center; }

@media (min-width: 1200px) {
    .certlab-chart-grid > div:first-child,
    .certlab-chart-grid > div:nth-child(2) { width: 50%; }
}

@media (max-width: 575.98px) {
    .certlab-module-stats,
    .certlab-advanced-filter-grid {
        grid-template-columns: 1fr;
    }

    .certlab-module-stat {
        min-height: 88px;
    }

    .certlab-filter-card .card-body {
        padding: 17px;
    }

    .certlab-filter-card__badge {
        display: none;
    }

    .certlab-filter-card__actions {
        flex-direction: column-reverse;
    }

    .certlab-filter-card__actions .btn {
        width: 100%;
    }

    .certlab-auth-form-panel {
        align-items: flex-start;
        padding: 100px 15px 65px;
    }

    .certlab-auth-card {
        padding: 25px 20px;
        border-radius: 17px;
    }

    .certlab-auth-card__header h2 {
        font-size: 23px;
    }

    .certlab-auth-legal {
        right: 15px;
        left: 15px;
        text-align: center;
    }

    .certlab-topbar-product {
        display: none !important;
    }

    .certlab-mobile-card__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .certlab-mobile-card__footer {
        align-items: stretch;
        flex-direction: column;
    }

    .certlab-mobile-card__footer .btn {
        width: 100%;
    }

    .certlab-mobile-card__details {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .certlab-metric-card,
    .certlab-quick-action,
    .certlab-dashboard-shortcut,
    .certlab-login-submit i {
        transition: none;
    }
}

/* Resultado de certificación: expediente, versionador y certificado. */
.certlab-cert-stats {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.certlab-module-stat--cyan {
    border-right-color: #0891b2;
}

.certlab-module-stat--cyan .certlab-module-stat__icon {
    background: #e0f7fb;
    color: #087a96;
}

.certlab-cert-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px 16px;
}

.certlab-cert-table {
    min-width: 1500px;
}

.certlab-cert-table th {
    white-space: nowrap;
}

.certlab-cert-status,
.certlab-document-badge,
.certlab-required {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1;
    padding: 8px 11px;
    white-space: nowrap;
}

.certlab-cert-status--certificado {
    background: #dcfce7;
    color: #137a3a;
}

.certlab-cert-status--no-conforme,
.certlab-cert-status--no-aprobado {
    background: #fee2e2;
    color: #b4232c;
}

.certlab-cert-status--sin-estado {
    background: #eef2f7;
    color: #52647a;
}

.certlab-cert-actions .dropdown-menu {
    border: 1px solid #dbe5ee;
    border-radius: 13px;
    box-shadow: 0 14px 36px rgba(15, 44, 68, .15);
    min-width: 220px;
    padding: 7px;
}

.certlab-cert-actions .dropdown-item {
    align-items: center;
    border-radius: 9px;
    color: #16344f;
    display: flex;
    font-size: .82rem;
    font-weight: 600;
    gap: 10px;
    padding: 10px 11px;
}

.certlab-cert-actions .dropdown-item i {
    color: #078b43;
    font-size: 1.15rem;
}

.certlab-cert-dialog,
.certlab-certificate-dialog {
    max-width: min(1500px, calc(100vw - 36px));
}

.certlab-cert-dialog .modal-body,
.certlab-certificate-dialog .modal-body {
    max-height: calc(100vh - 170px);
    overflow-y: auto;
}

.certlab-cert-context {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.certlab-cert-context > div {
    background: #f7fafc;
    border: 1px solid #dce7ef;
    border-radius: 12px;
    min-height: 102px;
    padding: 14px 14px 13px 46px;
    position: relative;
}

.certlab-cert-context i {
    color: #078b43;
    font-size: 1.35rem;
    left: 14px;
    position: absolute;
    top: 16px;
}

.certlab-cert-context span,
.certlab-cert-context strong,
.certlab-cert-context small {
    display: block;
}

.certlab-cert-context span {
    color: #6b7d90;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.certlab-cert-context strong {
    color: #102f49;
    font-size: .87rem;
    margin-top: 5px;
}

.certlab-cert-context small {
    color: #60758a;
    margin-top: 4px;
}

.certlab-cert-doc-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 14px;
}

.certlab-cert-doc-summary span {
    align-items: center;
    background: #edf7f1;
    border: 1px solid #d1eadb;
    border-radius: 999px;
    color: #456376;
    display: inline-flex;
    font-size: .76rem;
    gap: 6px;
    padding: 7px 11px;
}

.certlab-cert-doc-summary i,
.certlab-cert-doc-summary strong {
    color: #078b43;
}

.certlab-cert-doc-table {
    min-width: 1120px;
}

.certlab-cert-doc-table th {
    background: #0e4f72;
    color: #fff;
    font-size: .72rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.certlab-document-badge--uploaded {
    background: #d1fae5;
    color: #08764c;
}

.certlab-document-badge--pending {
    background: #fef3c7;
    color: #a65c00;
}

.certlab-document-badge--neutral {
    background: #eef2f7;
    color: #52647a;
}

.certlab-required--yes {
    background: #fee2e2;
    color: #be2933;
}

.certlab-required--no {
    background: #fef3c7;
    color: #ad6500;
}

.certlab-document-actions {
    white-space: nowrap;
}

.certlab-document-actions .btn {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    margin-right: 5px;
    padding: 0;
    width: 36px;
}

.certlab-document-actions .btn i {
    font-size: 1.1rem;
}

.certlab-certifiers {
    align-items: flex-start;
    background: #eff8ff;
    border: 1px solid #cee8f7;
    border-radius: 11px;
    color: #48657b;
    display: flex;
    gap: 10px;
    margin-top: 15px;
    padding: 12px 14px;
}

.certlab-certifiers > i {
    color: #087fa3;
    font-size: 1.3rem;
}

.certlab-certifiers strong,
.certlab-certifiers span {
    display: block;
}

.certlab-version-toolbar {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}

.certlab-version-toolbar .form-select {
    max-width: 220px;
}

.certlab-version-list {
    display: grid;
    gap: 10px;
}

.certlab-version-card {
    align-items: center;
    background: #f8fafc;
    border: 1px solid #dce7ef;
    border-radius: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: auto 1fr auto;
    padding: 13px;
}

.certlab-version-number {
    align-items: center;
    background: #e4f5eb;
    border-radius: 10px;
    color: #078b43;
    display: inline-flex;
    font-size: .82rem;
    font-weight: 800;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.certlab-version-card strong,
.certlab-version-card span,
.certlab-version-card small {
    display: block;
}

.certlab-version-card small,
.certlab-version-card span {
    color: #6b7e91;
    margin-top: 3px;
}

.certlab-legal-blocks {
    display: grid;
    gap: 11px;
    margin-bottom: 18px;
}

.certlab-legal-blocks article {
    align-items: flex-start;
    background: #fff;
    border: 1px solid #dde7ee;
    border-left: 4px solid #0e567c;
    border-radius: 12px;
    box-shadow: 0 7px 18px rgba(20, 55, 81, .06);
    display: flex;
    gap: 13px;
    padding: 15px 17px;
}

.certlab-legal-blocks article > i {
    color: #078b43;
    font-size: 1.35rem;
    margin-top: 1px;
}

.certlab-legal-blocks strong {
    color: #0d4d70;
}

.certlab-legal-blocks p {
    color: #5e7083;
    font-size: .82rem;
    line-height: 1.55;
    margin: 5px 0 0;
}

.certlab-cert-field {
    background: #f8fafc;
    border: 1px solid #e2eaf0;
    border-radius: 10px;
    padding: 11px 12px;
}

.certlab-cert-field span,
.certlab-cert-field strong {
    display: block;
}

.certlab-cert-field span {
    color: #718297;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.certlab-cert-field strong {
    color: #15354f;
    font-size: .84rem;
    margin-top: 5px;
    word-break: break-word;
}

.certlab-cert-summary-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.certlab-cert-summary-grid > div {
    background: #f8fafc;
    border: 1px solid #e2eaf0;
    border-radius: 10px;
    padding: 11px 12px;
}

.certlab-cert-summary-grid span,
.certlab-cert-summary-grid strong {
    display: block;
}

.certlab-cert-summary-grid span {
    color: #718297;
    font-size: .73rem;
    font-weight: 700;
}

.certlab-cert-summary-grid strong {
    color: #15354f;
    margin-top: 5px;
}

.certlab-certificate-workers {
    border-top: 1px solid #dce6ed;
    margin-top: 20px;
    padding-top: 18px;
}

@media (max-width: 1199.98px) {
    .certlab-cert-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .certlab-cert-filter-grid,
    .certlab-cert-context {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .certlab-cert-stats,
    .certlab-cert-filter-grid,
    .certlab-cert-context,
    .certlab-cert-summary-grid {
        grid-template-columns: 1fr;
    }

    .certlab-cert-dialog,
    .certlab-certificate-dialog {
        margin: 8px;
        max-width: calc(100vw - 16px);
    }

    .certlab-cert-dialog .modal-body,
    .certlab-certificate-dialog .modal-body {
        max-height: calc(100vh - 145px);
        padding: 12px;
    }

    .certlab-version-card {
        grid-template-columns: auto 1fr;
    }

    .certlab-version-card .btn {
        grid-column: 1 / -1;
    }
}

/* Expediente de Observaciones de contratista */
.certlab-observation-dialog {
    max-width: min(1320px, calc(100vw - 32px));
}

.certlab-observation-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 220px;
    color: var(--certlab-navy-700);
    font-weight: 600;
}

.certlab-observation-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.certlab-observation-summary > div {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #dfe6ec;
    border-radius: 10px;
    background: #f8fafb;
}

.certlab-observation-summary span,
.certlab-observation-summary small,
.certlab-observation-summary strong {
    display: block;
}

.certlab-observation-summary span {
    margin-bottom: 4px;
    color: #65778a;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.certlab-observation-summary strong {
    color: var(--certlab-navy-800);
    overflow-wrap: anywhere;
}

.certlab-observation-summary small {
    margin-top: 3px;
    color: #6f7f8e;
}

.certlab-observation-tabs .nav-tabs {
    gap: 4px;
}

.certlab-observation-tabs .nav-link {
    color: var(--certlab-navy-700);
    font-weight: 600;
}

.certlab-observation-tabs .nav-link.active {
    color: var(--certlab-green-700);
}

.certlab-observation-table {
    min-width: 860px;
    margin-bottom: 0;
}

.certlab-observation-table th {
    color: #4c6073;
    font-size: 11px;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: nowrap;
}

.certlab-observation-table td {
    max-width: 280px;
    color: #2d4052;
    overflow-wrap: anywhere;
}

.certlab-observation-empty {
    padding: 24px;
    border: 1px dashed #cfd9e2;
    border-radius: 9px;
    color: #687b8d;
    text-align: center;
}

@media (max-width: 767.98px) {
    .certlab-observation-dialog {
        max-width: none;
        margin: 8px;
    }

    .certlab-observation-summary {
        grid-template-columns: 1fr;
    }

    .certlab-observation-tabs .nav-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
    }

    .certlab-observation-tabs .nav-link {
        white-space: nowrap;
    }
}

/* Ver trabajador: consulta mensual y expediente laboral/documental. */
.certlab-worker-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}

.certlab-worker-table {
    min-width: 1580px;
}

.certlab-worker-table th {
    white-space: nowrap;
}

.certlab-worker-status,
.certlab-worker-cert,
.certlab-worker-check,
.certlab-worker-document-state {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 9px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
}

.certlab-worker-cert--certificado {
    color: #fff;
    background: rgb(78, 164, 55);
}

.certlab-worker-cert {
    font-size: 14px;
}

.certlab-worker-cert--no-conforme {
    color: #fff;
    background: #020202;
}

.certlab-worker-cert--sin-estado,
.certlab-worker-status--neutral {
    color: #fff;
    background: #7b809a;
}

.certlab-worker-status--vigente {
    color: #16652e;
    background: #e8f7eb;
}

.certlab-worker-status--desvinculado {
    color: #fff;
    background: #7b809a;
}

.certlab-worker-view {
    min-width: 70px;
    border-radius: 8px;
    background: #1a73e8;
    font-size: 11px;
    font-weight: 700;
}

.certlab-worker-load-error {
    display: flex;
    min-height: 110px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    color: #a6383f;
    text-align: center;
}

.certlab-worker-load-error i {
    font-size: 28px;
}

.certlab-worker-load-error span {
    color: #687b8d;
    font-size: 11px;
}

.certlab-worker-dialog {
    max-width: min(1450px, calc(100vw - 28px));
}

.certlab-worker-dialog .modal-body {
    max-height: calc(100vh - 190px);
    overflow-y: auto;
}

.certlab-worker-loading {
    display: flex;
    min-height: 260px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--certlab-navy-700);
    font-weight: 600;
}

.certlab-worker-modal-badges {
    display: flex;
    flex-wrap: wrap;
    margin-top: 7px;
    gap: 7px;
}

.certlab-worker-accordion {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 10px;
}

.certlab-worker-accordion .accordion-item {
    overflow: hidden;
    border: 1px solid #dce5eb;
    border-radius: 10px;
}

.certlab-worker-accordion .accordion-button {
    min-height: 48px;
    gap: 8px;
    color: var(--certlab-navy-800);
    background: #f7fafb;
    font-size: 12px;
    font-weight: 700;
}

.certlab-worker-accordion .accordion-button:not(.collapsed) {
    color: var(--certlab-green-700);
    background: #eef8f1;
    box-shadow: inset 0 -1px 0 #dce8e0;
}

.certlab-worker-accordion .accordion-button i {
    color: var(--certlab-green-600);
    font-size: 19px;
}

.certlab-worker-accordion .accordion-button .badge {
    margin-left: auto;
    margin-right: 8px;
}

.certlab-worker-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.certlab-worker-field {
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid #e2e8ed;
    border-radius: 8px;
    background: #fff;
}

.certlab-worker-field span,
.certlab-worker-field strong {
    display: block;
}

.certlab-worker-field span {
    margin-bottom: 4px;
    color: #718190;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.certlab-worker-field strong {
    color: #263c50;
    font-size: 12px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.certlab-worker-inner-table {
    min-width: 880px;
    margin-bottom: 0;
}

.certlab-worker-inner-table th {
    color: #4c6073;
    font-size: 10px;
    letter-spacing: .025em;
    text-transform: uppercase;
    white-space: nowrap;
}

.certlab-worker-inner-table td {
    max-width: 290px;
    color: #2d4052;
    font-size: 11px;
    overflow-wrap: anywhere;
}

.certlab-worker-check--cumple {
    color: #16652e;
    background: #e8f7eb;
}

.certlab-worker-check--no-cumple {
    color: #a6383f;
    background: #fdebed;
}

.certlab-worker-check--no-aplica,
.certlab-worker-check--pendiente,
.certlab-worker-document-state {
    color: #586c7b;
    background: #edf2f5;
}

.certlab-worker-scope-note {
    display: flex;
    align-items: flex-start;
    margin: 0 0 12px;
    gap: 7px;
    color: #5c7182;
    font-size: 11px;
}

.certlab-worker-scope-note i {
    margin-top: 1px;
    color: #2083a5;
    font-size: 16px;
}

@media (max-width: 1199.98px) {
    .certlab-worker-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .certlab-worker-accordion {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .certlab-worker-filter-grid,
    .certlab-worker-fields {
        grid-template-columns: 1fr;
    }

    .certlab-worker-dialog {
        max-width: none;
        margin: 8px;
    }

    .certlab-worker-dialog .modal-body {
        max-height: calc(100vh - 165px);
        padding: 10px;
    }

    .certlab-worker-modal-badges {
        margin-right: 30px;
    }
}

/* Descarga masiva de certificados. */
.certlab-mass-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.certlab-mass-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.certlab-mass-period-filter,
.certlab-mass-date-filter {
    grid-column: span 1;
}

.certlab-mass-range {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.certlab-mass-module .select2-container .select2-selection--multiple {
    min-height: 43px;
    padding: 3px 7px;
    border: 1px solid #cfdde6;
    border-radius: 10px;
}

.certlab-mass-module .select2-container--default.select2-container--focus .select2-selection--multiple {
    border-color: var(--certlab-green-600);
    box-shadow: 0 0 0 3px rgba(20, 122, 55, .11);
}

.certlab-mass-module .select2-container--default .select2-selection--multiple .select2-selection__choice {
    border: 0;
    border-radius: 7px;
    color: #285168;
    background: #eaf4f8;
    font-size: 10px;
}

.certlab-mass-results__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 18px;
}

.certlab-mass-results__heading h2 {
    margin: 2px 0 0;
    color: var(--certlab-navy-900);
    font-size: 18px;
    font-weight: 700;
}

.certlab-mass-results__heading > span {
    color: var(--certlab-muted);
    font-size: 11px;
    text-align: right;
}

.certlab-mass-job-list {
    display: grid;
    gap: 10px;
}

.certlab-mass-job {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid #dce6ec;
    border-radius: 13px;
    background: #fff;
}

.certlab-mass-job__icon {
    display: inline-flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #1b6783;
    background: #eaf5f8;
    font-size: 22px;
}

.certlab-mass-job.is-ready .certlab-mass-job__icon {
    color: #197238;
    background: #eaf7ed;
}

.certlab-mass-job.is-pending .certlab-mass-job__icon {
    color: #9b6500;
    background: #fff4dc;
}

.certlab-mass-job.is-failed .certlab-mass-job__icon {
    color: #b13944;
    background: #fdebed;
}

.certlab-mass-job__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.certlab-mass-job__name {
    color: #173c55;
    font-size: 12px;
    overflow-wrap: anywhere;
}

.certlab-mass-job__details,
.certlab-mass-job__meta small {
    color: #6c7e8d;
    font-size: 10px;
}

.certlab-mass-job__error {
    color: #b13944;
    font-size: 10px;
}

.certlab-mass-progress {
    width: min(360px, 100%);
    height: 5px;
    margin-top: 5px;
    background: #edf2f5;
}

.certlab-mass-progress .progress-bar {
    background: var(--certlab-green-600);
}

.certlab-mass-job__meta {
    display: flex;
    min-width: 116px;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
}

.certlab-status-pill {
    display: inline-flex;
    min-height: 23px;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    color: #536879;
    background: #edf2f5;
    font-size: 9px;
    font-weight: 800;
}

.certlab-status-pill.is-ready {
    color: #176c35;
    background: #e6f6ea;
}

.certlab-status-pill.is-pending {
    color: #946000;
    background: #fff1d3;
}

.certlab-status-pill.is-failed {
    color: #a82e3a;
    background: #fdebed;
}

.certlab-mass-job__actions {
    display: flex;
    gap: 7px;
}

.certlab-mass-job__actions .btn {
    min-width: 92px;
    border-radius: 9px;
    font-size: 10px;
    font-weight: 700;
}

.certlab-mass-module .certlab-observation-empty i {
    display: block;
    margin-bottom: 6px;
    font-size: 25px;
}

@media (max-width: 1199.98px) {
    .certlab-mass-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .certlab-mass-filter-grid,
    .certlab-mass-range {
        grid-template-columns: 1fr;
    }

    .certlab-mass-job {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .certlab-mass-job__meta,
    .certlab-mass-job__actions {
        grid-column: 1 / -1;
        align-items: flex-start;
    }

    .certlab-mass-job__actions {
        width: 100%;
    }

    .certlab-mass-job__actions .btn {
        flex: 1;
    }

    .certlab-mass-results__heading {
        flex-direction: column;
    }

    .certlab-mass-results__heading > span {
        text-align: left;
    }
}

@media (max-width: 575.98px) {
    .certlab-mass-stats {
        grid-template-columns: 1fr;
    }
}

/* Documentos del trabajador. */
.certlab-document-filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.certlab-document-validation {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 13px;
    color: #ad303c;
    font-size: 11px;
    font-weight: 600;
}

.certlab-document-validation[hidden] {
    display: none;
}

.certlab-document-filter-status {
    display: block;
    min-height: 15px;
    margin-top: 5px;
    color: #708392;
    font-size: 9px;
}

.certlab-document-table-wrap {
    min-height: 240px;
}

.certlab-document-table {
    min-width: 1450px;
}

.certlab-document-table th:nth-child(1) { min-width: 115px; }
.certlab-document-table th:nth-child(2) { min-width: 190px; }
.certlab-document-table th:nth-child(3),
.certlab-document-table th:nth-child(4),
.certlab-document-table th:nth-child(5) { min-width: 220px; }
.certlab-document-table th:nth-child(6) { min-width: 165px; }
.certlab-document-table th:nth-child(7) { min-width: 115px; }
.certlab-document-table th:nth-child(8) { min-width: 235px; }
.certlab-document-table th:nth-child(9) { min-width: 120px; text-align: center; }
.certlab-document-table td:nth-child(9) { text-align: center; }

.certlab-document-complete {
    display: inline-flex;
    min-width: 98px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 0;
    border-radius: 9px;
    background: #3db550;
    box-shadow: 0 4px 9px rgba(41, 143, 57, .2);
    font-size: 9px;
    font-weight: 800;
}

.certlab-document-complete:hover,
.certlab-document-complete:focus {
    background: #2e9c42;
}

.certlab-document-unavailable {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #758592;
    font-size: 9px;
    font-weight: 700;
}

@media (max-width: 1199.98px) {
    .certlab-document-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .certlab-document-filter-grid {
        grid-template-columns: 1fr;
    }
}

/* Gestión de Riesgos SSO */
.certlab-sso-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.certlab-sso-table {
    min-width: 1460px;
}

.certlab-sso-table th {
    white-space: nowrap;
    color: #4d6780;
    font-size: 11px;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.certlab-sso-table th:nth-child(1) { min-width: 115px; }
.certlab-sso-table th:nth-child(2) { min-width: 180px; }
.certlab-sso-table th:nth-child(3),
.certlab-sso-table th:nth-child(5) { min-width: 125px; }
.certlab-sso-table th:nth-child(4),
.certlab-sso-table th:nth-child(6),
.certlab-sso-table th:nth-child(7) { min-width: 240px; }
.certlab-sso-table th:nth-child(8) { min-width: 115px; }
.certlab-sso-table th:nth-child(9) { min-width: 105px; text-align: center; }
.certlab-sso-table td:nth-child(9) { text-align: center; }

.certlab-sso-dialog {
    max-width: min(1500px, calc(100vw - 32px));
}

.certlab-sso-dialog .modal-body,
.certlab-sso-worker-dialog .modal-body {
    max-height: calc(100vh - 160px);
    overflow-y: auto;
}

.certlab-sso-header-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 7px;
}

.certlab-sso-expiring {
    padding: 12px;
    margin-bottom: 18px;
    border-radius: 12px;
    color: #fff;
    background: #d66164;
}

.certlab-sso-expiring__toggle {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8px;
    border: 0;
    color: inherit;
    background: transparent;
    font-size: 12px;
}

.certlab-sso-expiring__toggle span {
    display: inline-grid;
    min-width: 23px;
    height: 23px;
    place-items: center;
    border-radius: 999px;
    color: #bd3239;
    background: #fff;
    font-weight: 800;
}

.certlab-sso-expiring__body {
    padding: 10px;
    background: #fff;
}

.certlab-sso-expiring__body table { margin-bottom: 0; }
.certlab-sso-expiring__body th { color: #566279; font-size: 10px; }
.certlab-sso-expiring__body td { color: #66738b; font-size: 10px; vertical-align: middle; }

.certlab-sso-expiring__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    margin-top: 8px;
    border-left: 3px solid #d66164;
    color: #485c70;
    background: #f7f9fa;
    font-size: 10px;
}

.certlab-sso-folio-state,
.certlab-sso-worker-count {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.certlab-sso-folio-state { color: #0b7140; background: #e2f7eb; }
.certlab-sso-folio-state--inactivo,
.certlab-sso-folio-state--vencido,
.certlab-sso-folio-state--cerrado { color: #667283; background: #edf1f4; }
.certlab-sso-worker-count { color: #174767; background: #e8f3f8; }

.certlab-sso-cycle {
    display: grid;
    grid-template-columns: 1.4fr 1.4fr 1fr .55fr .65fr;
    gap: 12px;
    padding: 16px;
    margin-bottom: 18px;
    border: 1px solid #d7e2e8;
    border-radius: 16px;
    background: #f9fbfc;
}

.certlab-sso-cycle > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    padding: 9px 11px;
    border-radius: 10px;
    background: #fff;
}

.certlab-sso-cycle span,
.certlab-sso-field span,
.certlab-sso-worker-summary span {
    color: #6a7d90;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.certlab-sso-cycle strong,
.certlab-sso-field strong,
.certlab-sso-worker-summary strong {
    color: #102f49;
    font-size: 12px;
    word-break: break-word;
}

.certlab-sso-cycle-state {
    width: fit-content;
    padding: 3px 8px;
    border-radius: 999px;
    color: #6b7480;
    background: #edf0f2;
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.certlab-sso-cycle-state--activo { color: #05713d; background: #dff6e9; }
.certlab-sso-cycle-state--pendiente { color: #9a6512; background: #fff3d6; }

.certlab-sso-no-cycle {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 15px;
    margin-bottom: 18px;
    border: 1px solid #efdcae;
    border-radius: 12px;
    color: #7e601a;
    background: #fff9e9;
    font-size: 12px;
    font-weight: 700;
}

.certlab-sso-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.certlab-sso-field {
    display: flex;
    min-height: 68px;
    flex-direction: column;
    gap: 7px;
    padding: 11px 13px;
    border: 1px solid #dee7ec;
    border-radius: 10px;
    background: #fff;
}

.certlab-sso-field:nth-last-child(-n + 5) {
    grid-column: span 2;
}

.certlab-sso-actions,
.certlab-sso-worker-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0;
}

.certlab-sso-actions .btn,
.certlab-sso-worker-actions .btn,
.certlab-sso-progress-card .btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.certlab-sso-actions .btn:disabled,
.certlab-sso-worker-actions .btn:disabled {
    cursor: not-allowed;
    opacity: .6;
}

.certlab-sso-workspace {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 18px;
    padding: 16px;
    border: 1px solid #d9e3e8;
    border-radius: 17px;
}

.certlab-sso-progress-card {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px;
    border-radius: 13px;
    background: #f7fafb;
}

.certlab-sso-progress-card > span {
    color: #183c58;
    font-size: 12px;
    font-weight: 700;
}

.certlab-sso-donut {
    --sso-progress: 0deg;
    display: grid;
    width: 96px;
    height: 96px;
    place-items: center;
    align-self: center;
    margin: 10px 0;
    border-radius: 50%;
    background: conic-gradient(#34a853 var(--sso-progress), #e4e9ec 0);
    position: relative;
}

.certlab-sso-donut::after {
    content: "";
    position: absolute;
    inset: 8px;
    border-radius: 50%;
    background: #fff;
}

.certlab-sso-donut strong {
    z-index: 1;
    color: #173f60;
    font-size: 26px;
}

.certlab-sso-progress-card label {
    display: flex;
    justify-content: space-between;
    color: #64788b;
    font-size: 10px;
}

.certlab-sso-progress-card .progress {
    height: 9px;
    background: #dfe5e8;
}

.certlab-sso-progress-card .progress-bar { background: #168b43; }
.certlab-sso-tabs { min-width: 0; }
.certlab-sso-tabs .tab-content { padding-top: 14px; }

.certlab-sso-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    padding: 11px 13px;
    margin-bottom: 12px;
    border: 1px solid #e0e6ea;
    border-radius: 12px;
    color: #566777;
    font-size: 10px;
}

.sso-dot {
    display: inline-block;
    width: 11px;
    height: 11px;
    margin-left: 7px;
    border-radius: 2px;
}

.sso-dot:first-child { margin-left: 0; }
.sso-dot--pending { background: #d94c53; }
.sso-dot--uploaded { background: #31b9d1; }
.sso-dot--approved { background: #65ad72; }
.sso-dot--observed { background: #20d887; }
.sso-dot--rejected { background: #c77dbd; }
.sso-dot--expired { background: #d18a22; }

.certlab-sso-document-table,
.certlab-sso-worker-table {
    min-width: 780px;
}

.certlab-sso-document-table th,
.certlab-sso-worker-table th {
    padding: 10px;
    color: #325570;
    background: #e7f2f7;
    font-size: 10px;
    text-transform: uppercase;
}

.certlab-sso-document-table td,
.certlab-sso-worker-table td {
    padding: 10px;
    color: #53697c;
    vertical-align: middle;
}

.certlab-sso-document-table td:first-child strong,
.certlab-sso-document-table td:first-child small {
    display: block;
}

.certlab-sso-document-table td:first-child small {
    margin-top: 3px;
    color: #8a98a5;
    font-size: 9px;
}

.certlab-sso-category th {
    color: #344c65;
    background: #eef1f3;
    text-transform: none;
}

.certlab-sso-status {
    display: inline-flex;
    min-width: 96px;
    justify-content: center;
    padding: 5px 9px;
    border-radius: 8px;
    color: #fff;
    background: #d94c53;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.certlab-sso-status--subido { color: #064e5c; background: #bfeef5; }
.certlab-sso-status--aprobado { background: #52ad62; }
.certlab-sso-status--aprobado-con-observacion { background: #21b875; }
.certlab-sso-status--rechazado { background: #b86eae; }
.certlab-sso-status--expirado { background: #d18a22; }

.certlab-sso-worker-percent {
    color: #d9363e;
    font-weight: 800;
}

.certlab-sso-document-meta {
    position: relative;
    padding: 14px;
    margin-top: 12px;
    border: 1px solid #cddde6;
    border-radius: 12px;
    background: #f7fbfd;
}

.certlab-sso-document-meta > span {
    display: block;
    margin-bottom: 10px;
    color: #153f5c;
    font-size: 12px;
    font-weight: 800;
}

.certlab-sso-document-meta > div {
    display: grid;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 6px 12px;
    font-size: 10px;
}

.certlab-sso-document-meta strong { color: #466078; }
.certlab-sso-document-meta em { color: #657688; font-style: normal; }
.certlab-sso-document-meta .btn-close { position: absolute; top: 10px; right: 10px; }

.certlab-sso-payment {
    padding: 16px;
    margin-bottom: 16px;
    border-radius: 10px;
    color: #c61620;
    background: #91a2b1;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
}

.certlab-sso-worker-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.certlab-sso-worker-summary > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 11px;
    border: 1px solid #dce4e8;
    border-radius: 9px;
}

#ssoWorkerModal { z-index: 1070; }
#ssoWorkerModal + .modal-backdrop { z-index: 1065; }

@media (max-width: 1199.98px) {
    .certlab-sso-filter-grid,
    .certlab-sso-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .certlab-sso-cycle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .certlab-sso-cycle > div:last-child { grid-column: span 2; }
}

@media (max-width: 767.98px) {
    .certlab-sso-filter-grid,
    .certlab-sso-detail-grid,
    .certlab-sso-cycle,
    .certlab-sso-workspace,
    .certlab-sso-worker-summary { grid-template-columns: 1fr; }
    .certlab-sso-field:nth-last-child(-n + 5),
    .certlab-sso-cycle > div:last-child { grid-column: auto; }
    .certlab-sso-dialog,
    .certlab-sso-worker-dialog { max-width: calc(100vw - 16px); margin: 8px; }
    .certlab-sso-dialog .modal-body,
    .certlab-sso-worker-dialog .modal-body { max-height: calc(100vh - 132px); }
    .certlab-sso-actions .btn,
    .certlab-sso-worker-actions .btn { width: 100%; justify-content: center; }
}
