/* Page-level styles (components used only on some inner pages).
   Loaded by the pages that need it, not by the masters, so the home page does not load it:
   <link href="/css/pages.css?v=..." rel="stylesheet" /> in the page's "head" placeholder.
   Used on: en|hindi/tenders/tenders.aspx, about_us/jnarddc.aspx, projects/ongoing.aspx + recent.aspx, services/testing.aspx */


/* ===================================================================== */
/* Citizen journey (UX4G: simple, progressive journeys, e.g. Apply -> Status -> Outcome).
   <section class="container citizen-journey"> <h2> <ol class="journey-steps"> with 3 <li class="journey-step">:
   <span class="journey-num">, <div class="journey-body"> h3 + p + .journey-links (buttons). */
.journey-steps {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    counter-reset: none;
}

.journey-step {
    display: flex;
    gap: 14px;
    padding: 18px;
    border: 1px solid #c6c6c6;
    border-top: 4px solid #214aab;
    border-radius: 12px;
    background: var(--card-white-box, #fff);
}

.journey-num {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #214aab;
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.journey-body h3 {
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--text-color);
}

.journey-body p {
    font-size: 16px;
    line-height: 1.55;
    margin-bottom: 12px;
    color: var(--text-color);
}

.journey-body .btn,
.journey-links .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.journey-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}


.journey-steps .journey-links-col {
    flex-direction: column;
    align-items: flex-start;
}

@media (max-width: 991.98px) {
    .journey-steps {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .journey-step {
        padding: 14px;
    }
}


/* ===================================================================== */
/* Tender list (en/hindi tenders/tenders.aspx) - used with js/tenders.js.
   Desktop: table with sortable headers. Below 1200px: every tender is a card with labelled rows. */

/* anchors land below the pinned menu */
#tenderList,
#vendorRegistration,
#approvedVendors {
    scroll-margin-top: calc(var(--stuck-menu-h, 0px) + 90px);
}


/* ----- notice ----- */
.tender-note p {
    margin: 0;
    font-size: 16px;
}

/* ----- filter panel ----- */
.tender-filter {
    background: var(--card-white-box, #fff);
    border: 1px solid #c6c6c6;
    border-radius: 12px;
    padding: 18px 18px 6px;
    margin: 0 0 24px;
}

    .tender-filter .tender-filter-title {
        font-size: 1.15rem;
        font-weight: 700;
        margin: 0 0 12px;
        color: var(--text-color);
    }

    .tender-filter .form-label {
        font-weight: 600;
        font-size: 16px;
        margin-bottom: 4px;
        color: var(--text-color);
    }

    .tender-filter .form-control,
    .tender-filter .form-select {
        min-height: 44px;
        font-size: 16px;
    }

.tender-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 14px 0 12px;
}

    .tender-filter-actions .btn {
        min-height: 44px;
        padding: 8px 20px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }

.tender-count {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-color);
}

    .tender-count.is-empty {
        color: #dc3545;
    }

/* ----- table (desktop) ----- */
.tender-table {
    font-size: 16px;
    line-height: 1.5;
}

    .tender-table > thead > tr > th {
        vertical-align: middle;
        font-weight: 700;
        padding: 10px 8px;
    }

    .tender-table > tbody > tr > td {
        vertical-align: top;
        padding: 10px 8px;
    }

        /* readable description column; tender numbers left-aligned (main.js right-aligns short numbers) */
        .tender-table > tbody > tr > td.tender-desc-cell {
            min-width: 200px;
        }

        .tender-table > tbody > tr > td.tender-no-cell {
            text-align: left;
            min-width: 140px;
            overflow-wrap: normal;
        }


.tender-sort {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 44px;
    padding: 4px 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
}

    .tender-sort i {
        flex: 0 0 auto;
        opacity: .75;
    }

    .tender-sort:hover {
        text-decoration: underline;
    }

.tender-table th[aria-sort] .tender-sort i {
    opacity: 1;
}

.tender-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
}

    .tender-status {
        justify-self: start;
    }

    .tender-status.is-open {
        background: #198754;
        color: #fff;
    }

    .tender-status.is-closed {
        background: #ebeaea;
        color: #150202;
    }

.tender-desc.is-clamped {
    display: -webkit-box;
    -webkit-line-clamp: 4;
    line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tender-more {
    min-height: 44px;
    padding: 6px 0;
    border: 0;
    background: none;
    color: #214aab;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

.tender-docs {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tender-doc {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    min-width: 44px;
    padding: 6px 12px;
    border: 1px solid #214aab;
    border-radius: 8px;
    color: #214aab;
    background: var(--card-white-box, #fff);
    text-decoration: none !important;
    line-height: 1.25;
}

    .tender-doc i {
        font-size: 20px;
        color: #162f6a;
    }

    .tender-doc span,
    .tender-doc small {
        text-decoration: none;
    }

    .tender-doc .tender-doc-text {
        font-weight: 600;
    }

    .tender-doc small {
        font-weight: 400;
        display: block;
        font-size: 14px;
        color: var(--text-color);
        white-space: nowrap;
    }

    .tender-doc:hover {
        background: #d2dfff;
        color: #162f6a;
    }

.tender-filter :focus-visible,
.tender-table :focus-visible {
    outline: 3px solid #214aab;
    outline-offset: 2px;
}

/* ----- cards: phones and tablets ----- */
@media (max-width: 1199.98px) {
    .tender-table-wrap.table-responsive {
        overflow: visible;
    }

    .tender-table,
    .tender-table > tbody,
    .tender-table > tbody > tr,
    .tender-table > tbody > tr > td {
        display: block;
        width: 100%;
    }

        /* header row only for screen readers (each cell shows its own label) */
        .tender-table > thead {
            position: absolute;
            width: 1px;
            height: 1px;
            overflow: hidden;
            clip: rect(0 0 0 0);
            white-space: nowrap;
        }

        .tender-table,
        .tender-table > :not(caption) > * > * {
            border: 0;
            box-shadow: none;
        }

            .tender-table > tbody > tr {
                border: 1px solid #c6c6c6;
                border-radius: 12px;
                padding: 6px 16px;
                margin-bottom: 16px;
                background: var(--card-white-box, #fff);
                box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
            }

                .tender-table > tbody > tr > td {
                    display: grid;
                    grid-template-columns: minmax(120px, 42%) 1fr;
                    gap: 4px 14px;
                    padding: 10px 0;
                    border-bottom: 1px solid #ebeaea;
                    text-align: left !important;
                    font-size: 16px;
                    line-height: 1.55;
                    overflow-wrap: anywhere;
                }

                    .tender-table > tbody > tr > td:last-child {
                        border-bottom: 0;
                    }

                    .tender-table > tbody > tr > td::before {
                        content: attr(data-label);
                        font-weight: 600;
                        font-size: 16px;
                        color: var(--text-color);
                    }

                    /* description and documents: label above, full width */
                    .tender-table > tbody > tr > td.tender-desc-cell,
                    .tender-table > tbody > tr > td.tender-docs-cell,
                    .tender-table > tbody > tr > td.tender-no-cell {
                        grid-template-columns: 1fr;
                    }

                    .tender-table > tbody > tr > td.tender-no-cell {
                        font-weight: 700;
                        font-size: 17px;
                    }

    .tender-docs {
        gap: 10px;
    }

    .tender-doc {
        display: flex;
        width: 100%;
        min-height: 48px;
        padding: 8px 14px;
    }
}

@media print {
    .tender-filter,
    .tender-more {
        display: none !important;
    }

    .tender-desc.is-clamped {
        display: block;
        -webkit-line-clamp: unset;
        line-clamp: unset;
        overflow: visible;
    }
}


/* ===================================================================== */
/* Generic filter / sort toolbar above a long list (built by page scripts, e.g. js/projects.js) */
.list-toolbar {
    background: var(--card-white-box, #fff);
    border: 1px solid #c6c6c6;
    border-radius: 12px;
    padding: 18px 18px 6px;
    margin: 24px 0;
}

    .list-toolbar .list-toolbar-title {
        font-size: 1.15rem;
        font-weight: 700;
        margin: 0 0 12px;
        color: var(--text-color);
    }

    .list-toolbar .form-label {
        font-weight: 600;
        font-size: 16px;
        margin-bottom: 4px;
        color: var(--text-color);
    }

    .list-toolbar .form-control,
    .list-toolbar .form-select {
        min-height: 44px;
        font-size: 16px;
    }

.list-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin: 14px 0 12px;
}

    .list-toolbar-actions .btn {
        min-height: 44px;
        padding: 8px 20px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }

.list-toolbar-count {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-color);
}

    .list-toolbar-count.is-empty {
        color: #dc3545;
    }

.list-toolbar :focus-visible {
    outline: 3px solid #214aab;
    outline-offset: 2px;
}


/* ===================================================================== */
/* Project cards (en|hindi/projects/ongoing.aspx + recent.aspx) - built by js/projects.js */
.project-grid {
    row-gap: 20px;
    margin-bottom: 32px;
}

.project-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 18px 20px;
    border: 1px solid #c6c6c6;
    border-top: 4px solid #214aab;
    border-radius: 12px;
    background: var(--card-white-box, #fff);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
    color: var(--text-color);
}

.project-no {
    font-size: 1.15rem;
    font-weight: 700;
    color: #162f6a;
    margin: 0 0 10px;
}

.project-no-label {
    font-weight: 600;
    color: var(--text-color);
}

.project-fields {
    margin: 0 0 12px;
    font-size: 16px;
    line-height: 1.6;
}

    .project-fields dt {
        font-size: 16px;
        font-weight: 700;
        margin-top: 8px;
        color: var(--text-color);
    }

    .project-fields dd {
        margin: 2px 0 0;
        text-align: left;
    }

        .project-fields dd p {
            margin: 0;
            font-size: 16px;
            line-height: 1.6;
            text-align: left;
        }

.project-tags {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: auto 0 0;
    padding: 0;
}

    .project-tags li {
        padding: 3px 10px;
        border-radius: 999px;
        background: #d2dfff;
        color: #162f6a;
        font-size: 15px;
        font-weight: 600;
    }

        .project-tags li.is-st {
            background: #ebeaea;
            color: #150202;
        }

@media print {
    .list-toolbar {
        display: none !important;
    }
}


/* ===================================================================== */
/* Testing Services (en|hindi/services/testing.aspx) - used with js/testing.js.
   Steps as text on phones, contact + PDF card, jump links, filter bar, one card per division with a 2-column list. */

/* the 5 testing steps as text on phones (the picture's words are too small there) */
.test-steps-text {
    list-style: none;
    counter-reset: tstep;
    margin: 0 0 24px;
    padding: 0;
    display: grid;
    gap: 10px;
}

    .test-steps-text li {
        counter-increment: tstep;
        position: relative;
        padding: 12px 14px 12px 60px;
        border: 1px solid #c6c6c6;
        border-radius: 10px;
        background: var(--card-white-box, #fff);
        font-size: 17px;
        line-height: 1.6;
        color: var(--text-color);
    }

        .test-steps-text li::before {
            content: counter(tstep);
            position: absolute;
            left: 14px;
            top: 12px;
            width: 34px;
            height: 34px;
            border-radius: 50%;
            background: #214aab;
            color: #fff;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .test-steps-text li strong {
            display: block;
            font-size: 18px;
        }

/* contact box (admin text uses <tt><big>) and the PDF card */
.test-contact tt {
    font-family: inherit;
}

.test-contact h3 {
    font-size: 1.15rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.test-contact p {
    font-size: 17px;
    line-height: 1.65;
    margin-bottom: 0;
}

.test-download {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-top: 16px;
    padding: 14px 18px;
    border: 1px solid #c6c6c6;
    border-radius: 12px;
    background: var(--card-white-box, #fff);
}

    .test-download img {
        flex: 0 0 auto;
        width: 48px;
        height: 48px;
    }

.test-download-text {
    flex: 1 1 220px;
}

    .test-download-text .h5 {
        margin: 0 0 4px;
    }

    .test-download-text p {
        margin: 0;
        font-size: 16px;
        color: var(--text-color);
    }

.test-download .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    font-size: 16px;
}

/* tests by division */
.test-catalogue {
    margin-top: 40px;
    margin-bottom: 32px;
}

    .test-catalogue > h2 {
        margin-bottom: 6px;
    }

.test-intro {
    font-size: 17px;
    line-height: 1.6;
    margin-bottom: 0;
}

#skpMain .test-jump h3 {
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 8px;
}

.test-jump ul {
    align-items: center;
}

.test-jump a {
    min-height: 44px;
}

.test-jump a[data-count]::after {
    content: attr(data-count);
    margin-left: 8px;
    min-width: 26px;
    padding: 0 7px;
    border-radius: 12px;
    background: #d2dfff;
    color: #162f6a;
    font-size: 16px;
    line-height: 24px;
    text-align: center;
}

.test-jump a[data-count]:hover::after,
.test-jump a[data-count]:focus-visible::after {
    background: #fff;
}

.test-jump a[data-count="0"] {
    opacity: .65;
}

.test-filter {
    margin-top: 16px;
}

.test-division {
    border: 1px solid #c6c6c6;
    border-radius: 12px;
    padding: 16px 18px 6px;
    margin-bottom: 20px;
    background: var(--card-white-box, #fff);
    scroll-margin-top: calc(var(--stuck-menu-h, 0px) + 20px);
}

    #skpMain .test-division h3 {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 6px 12px;
        font-size: 1.3rem;
        font-weight: 700;
        margin: 0 0 10px;
        padding-bottom: 10px;
        border-bottom: 2px solid #214aab;
        color: var(--text-color);
    }

.test-count {
    font-size: 16px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 12px;
    background: #d2dfff;
    color: #162f6a;
    white-space: nowrap;
}

    .test-count:empty {
        display: none;
    }

/* the list: readable size on every screen (Audit 360: "very small text on mobile") */
.test-items {
    list-style: none;
    margin: 0;
    padding: 0;
}

    .test-items li {
        position: relative;
        padding: 8px 0 8px 22px;
        border-bottom: 1px solid #ebeaea;
        font-size: 17px;
        line-height: 1.65;
        color: var(--text-color);
        break-inside: avoid;
        overflow-wrap: anywhere;
    }

        .test-items li::before {
            content: "";
            position: absolute;
            left: 2px;
            top: 18px;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #214aab;
        }

    .test-items mark {
        padding: 0 2px;
        background: #ffc107;
        color: #150202;
    }

@media (min-width: 768px) {
    .test-cols.is-merged .test-items {
        column-count: 2;
        column-gap: 40px;
    }

    .test-items li {
        font-size: 16px;
    }

        .test-items li::before {
            top: 17px;
        }
}

/* no JS: the server lists stay side by side */
@media (min-width: 768px) {
    .test-cols:not(.is-merged) {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0 40px;
    }
}

.test-cols:not(.is-merged) ul {
    font-size: 17px;
    line-height: 1.65;
    padding-left: 24px;
}

@media print {
    .test-division {
        break-inside: auto;
        border: 0;
        padding: 0;
    }
}

/* ==========================================================================
   Employees – "Our team" tables (16/10/2026), as on meity.gov.in/ministry/our-team (DBIM Annex A.5.1.2):
   one table per division with a blue title bar, columns Name and Designation / Contact; no photos for now.
   Phones: each row becomes a stacked card with the column name as a label.
   ========================================================================== */
.emp-address {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0 0 24px;
    padding: 12px 16px;
    border-left: 4px solid #162f6a;
    background: #ebeaea;
    color: #150202;
}

    .emp-address i {
        margin-top: 4px;
        color: #162f6a;
    }

.emp-page .list-filter {
    margin-bottom: 24px;
}

.emp-group {
    margin-bottom: 32px;
}

    .emp-group[hidden] {
        display: none;
    }

#skpMain .emp-group-title {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 0;
    padding: 12px 16px;
    border-radius: 6px;
    background: #214aab;
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
}

.emp-table {
    width: 100%;
    margin-top: 6px;
    border-collapse: separate;
    border-spacing: 0;
}

    .emp-table thead th {
        padding: 8px 16px;
        background: #d2dfff;
        color: #162f6a;
        font-size: 14px;
        font-weight: 600;
        text-align: left;
    }

        .emp-table thead th:first-child {
            border-radius: 6px 0 0 6px;
        }

        .emp-table thead th:last-child {
            border-radius: 0 6px 6px 0;
        }

    .emp-table tbody th,
    .emp-table tbody td {
        padding: 14px 16px;
        border-bottom: 1px solid #ebeaea;
        color: #150202;
        font-weight: 400;
        text-align: left;
        vertical-align: top;
    }

    .emp-table tbody th {
        width: 45%;
    }

    .emp-table tr[hidden] {
        display: none;
    }

.emp-name {
    display: block;
    font-weight: 700;
}

.emp-role {
    display: block;
}

.emp-contact {
    margin: 0;
    padding: 0;
    list-style: none;
}

    .emp-contact li {
        display: flex;
        gap: 10px;
        align-items: baseline;
        overflow-wrap: anywhere;
    }

        .emp-contact li + li {
            margin-top: 4px;
        }

    .emp-contact i {
        width: 18px;
        color: #162f6a;
        text-align: center;
    }

@media (max-width: 767.98px) {
    .emp-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .emp-table,
    .emp-table tbody,
    .emp-table tr,
    .emp-table tbody th,
    .emp-table tbody td {
        display: block;
        width: 100%;
    }

        .emp-table tbody tr {
            padding: 8px 0;
            border-bottom: 1px solid #ebeaea;
        }

        .emp-table tbody th,
        .emp-table tbody td {
            display: grid;
            grid-template-columns: 112px 1fr;
            gap: 12px;
            padding: 6px 8px;
            border-bottom: 0;
        }

            .emp-table tbody th::before,
            .emp-table tbody td::before {
                content: attr(data-label);
                color: #606060;
                font-size: 14px;
                font-weight: 600;
            }

            .emp-table tbody th > .emp-name,
            .emp-table tbody th > .emp-role {
                grid-column: 2;
            }
}

/* The site-wide table rules (#skpMain table th: centred) do not apply to the team tables */
#skpMain .emp-table thead th,
#skpMain .emp-table tbody th,
#skpMain .emp-table tbody td {
    text-align: left;
    vertical-align: top;
}

@media (max-width: 767.98px) {
    #skpMain .emp-table tbody td.emp-empty {
        display: none;
    }
}

/* Employees page: Ministry hierarchy at the top, as on meity.gov.in/ministry/our-team (17 Oct 2026) - #D2DFFF panel,
   Union Minister card, a key-colour line down to the Minister of State card, round headshots on white (DBIM 6.1.4)
   overlapping the card top, role then name; document buttons (Seniority List, PDF size) under a divider. */
.team-tree {
    margin: 0 0 40px;
    padding: 40px 16px 16px;
    border-radius: 24px;
    background: #d2dfff;
}

.team-tree-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.team-tree-card {
    position: relative;
    width: 100%;
    max-width: 320px;
    margin: 0;
    padding: 84px 16px 24px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(22, 47, 106, 0.12);
    text-align: center;
}

    .team-tree-card:first-child {
        margin-top: 64px !important;
    }

    .team-tree-card + .team-tree-card {
        margin-top: 128px !important;
    }

    /* line from the card above */
    .team-tree-card + .team-tree-card::before {
        content: "";
        position: absolute;
        bottom: 100%;
        left: 50%;
        width: 2px;
        height: 128px;
        background: #162f6a;
        transform: translateX(-50%);
    }

    #skpMain .team-tree-card .team-tree-photo {
        position: absolute;
        top: -64px;
        left: 50%;
        width: 128px;
        height: 128px !important;
        border: 4px solid #fff;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 0 0 1px #c6c6c6;
        object-fit: cover;
        transform: translateX(-50%);
    }

    #skpMain .team-tree-card .team-tree-role {
        margin: 0 0 4px;
        color: #214aab;
        font-size: 14px;
        font-weight: 600;
        text-align: center;
    }

    #skpMain .team-tree-card .team-tree-name {
        margin: 0;
        color: #150202;
        font-size: 18px;
        font-weight: 700;
        text-align: center;
    }

.team-tree-docs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 40px;
    padding-top: 16px;
    border-top: 1px solid #8e8e8e;
}

#skpMain .team-tree-doc {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid #214aab;
    border-radius: 6px;
    background: #fff;
    color: #162f6a;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

    #skpMain .team-tree-doc:hover {
        background: #162f6a;
        color: #fff;
    }

    .team-tree-doc .team-tree-doc-sep {
        color: #606060;
        font-weight: 400;
    }

    #skpMain .team-tree-doc:hover .team-tree-doc-sep {
        color: #fff;
    }

/* dark theme: panel and cards dark, headshots stay on white, button outlined in light blue */
body.dark-mode main .team-tree {
    background: #2a2a2a !important;
}

body.dark-mode main .team-tree-card {
    background: #1e1e1e !important;
}

    body.dark-mode main .team-tree-card + .team-tree-card::before {
        background: #a3bbf3;
    }

    body.dark-mode main .team-tree-card .team-tree-photo {
        background: #fff !important;
    }

    body.dark-mode main .team-tree-card .team-tree-role {
        color: #a3bbf3 !important;
    }

body.dark-mode main .team-tree-docs {
    border-top-color: #606060;
}

body.dark-mode #skpMain .team-tree-doc {
    border-color: #a3bbf3;
    background: transparent;
    color: #a3bbf3 !important;
}

    body.dark-mode #skpMain .team-tree-doc * {
        color: inherit !important;
    }

    body.dark-mode #skpMain .team-tree-doc:hover {
        background: #a3bbf3;
        color: #121212 !important;
    }

@media print {
    .team-tree {
        padding: 0;
        background: none;
    }
}

/* Organization Chart (About Us), layout as on nic.gov.in/organization-chart (17 Oct 2026): left the chart as an indented
   text tree with connector lines and diamond markers (the content screen readers get), right the same levels drawn
   with key-colour icon circles (aria-hidden, wide screens only); then the R&D divisions and related documents. */
.org-lead {
    max-width: 820px;
    margin: 0 0 32px;
    font-size: 18px;
}

.org-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

/* --- text tree --- */
.org-tree,
.org-tree ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

    .org-tree ul {
        margin-left: 18px;
        padding-left: 30px;
    }

    /* vertical line: full height beside every child, down to the connector for the last one */
    .org-tree ul > li::after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: -31px;
        border-left: 1px solid #8e8e8e;
    }

    .org-tree ul > li:last-child::after {
        bottom: auto;
        height: 32px;
    }

    #skpMain .org-tree li {
        position: relative;
        margin: 0;
        padding: 10px 0 0;
    }

        #skpMain .org-tree li::before {
            content: none;
        }

    /* horizontal connector + diamond for every level below the top */
    .org-tree ul > li > .org-node::before {
        content: "";
        position: absolute;
        top: 22px;
        left: -31px;
        width: 22px;
        border-top: 1px solid #8e8e8e;
    }

    .org-tree ul > li > .org-node::after {
        content: "";
        position: absolute;
        top: 22px;
        left: -14px;
        width: 9px;
        height: 9px;
        border: 2px solid #162f6a;
        background: #fff;
        transform: translateY(-50%) rotate(45deg);
    }

#skpMain .org-tree .org-node {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    max-width: 100%;
    padding: 8px 14px;
    border: 1px solid #c6c6c6;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(22, 47, 106, 0.12);
    color: #162f6a;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
}

#skpMain .org-tree a.org-node:hover,
#skpMain .org-tree a.org-node:focus-visible {
    border-color: #214aab;
    background: #d2dfff;
    text-decoration: underline;
}

#skpMain .org-tree .org-node-top {
    color: #150202;
    font-weight: 700;
}

/* --- drawn chart --- */
.org-visual {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 24px 16px 32px;
    border-radius: 24px;
    background: #f6f8ff;
}

.org-v-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.org-v-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #162f6a;
    box-shadow: 0 0 0 8px #d2dfff;
    color: #fff;
    font-size: 26px;
}

.org-v-label {
    max-width: 200px;
    padding: 2px 12px;
    border: 1px solid #c6c6c6;
    border-radius: 14px;
    background: #fff;
    color: #150202;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
}

.org-v-line {
    width: 2px;
    height: 28px;
    margin: 6px 0;
    background: #214aab;
}

.org-v-split {
    position: relative;
    width: 50%;
    height: 28px;
    margin-top: 6px;
    border: 2px solid #214aab;
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
}

    .org-v-split::before {
        content: "";
        position: absolute;
        top: -8px;
        left: 50%;
        width: 2px;
        height: 8px;
        background: #214aab;
    }

.org-v-branches {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    margin-top: 6px;
}

.org-v-branch {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* --- divisions and documents --- */
.org-divisions,
.org-docs {
    margin-top: 48px;
}

.org-div-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

    #skpMain .org-div-list li {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
    }

        #skpMain .org-div-list li::before {
            content: none;
        }

    #skpMain .org-div-list a {
        display: flex;
        align-items: center;
        gap: 12px;
        height: 100%;
        width: 100%;
        min-height: 64px;
        padding: 12px 16px;
        border: 1px solid #c6c6c6;
        border-left: 4px solid #162f6a;
        border-radius: 8px;
        background: #fff;
        color: #162f6a;
        font-weight: 600;
        text-decoration: none;
    }

        #skpMain .org-div-list a:hover,
        #skpMain .org-div-list a:focus-visible {
            background: #d2dfff;
            text-decoration: underline;
        }

        #skpMain .org-div-list a i {
            flex: 0 0 auto;
            color: #214aab;
            font-size: 20px;
        }

.org-docs-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

@media (max-width: 991.98px) {
    .org-layout {
        grid-template-columns: 1fr;
    }

    .org-visual {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .org-tree ul {
        margin-left: 10px;
        padding-left: 22px;
    }

    .org-tree ul > li > .org-node::before {
        left: -23px;
        width: 14px;
    }

    .org-tree ul > li > .org-node::after {
        left: -12px;
    }

    .org-tree ul > li::after {
        left: -23px;
    }
}

/* dark theme */
body.dark-mode #skpMain .org-tree .org-node {
    border-color: #606060;
    background: #1e1e1e;
    color: #a3bbf3 !important;
}

body.dark-mode #skpMain .org-tree .org-node-top {
    color: #fff !important;
}

body.dark-mode #skpMain .org-tree a.org-node:hover {
    background: #2a2a2a;
}

body.dark-mode .org-tree ul > li > .org-node::after {
    border-color: #a3bbf3;
    background: #121212;
}

body.dark-mode .org-tree ul > li::after,
body.dark-mode .org-tree ul > li > .org-node::before {
    border-color: #8e8e8e;
}

body.dark-mode main .org-visual {
    background: #1e1e1e !important;
}

body.dark-mode main .org-v-icon {
    background: #214aab !important;
    box-shadow: 0 0 0 8px #2a2a2a;
}

body.dark-mode main .org-v-label {
    border-color: #606060 !important;
    background: #2a2a2a !important;
}

body.dark-mode main .org-v-line,
body.dark-mode main .org-v-split::before {
    background: #a3bbf3;
}

body.dark-mode main .org-v-split {
    border-color: #a3bbf3 !important;
}

body.dark-mode #skpMain .org-div-list a {
    border-color: #606060;
    border-left-color: #a3bbf3;
    background: #1e1e1e;
}
