﻿/* Shared public layout. Wide data belongs in a named table scroll region. */
*, *::before, *::after { box-sizing: border-box; }
body.public-body { overflow-x: visible; }
main, section, .container, .container-fluid, .row, [class*="col-"],
.public-page-content, .public-page-body, .civil-content, .civil-results-card,
.about-content, .about-grid > *, .contact-content, .contact-card > *,
.login-form-panel, .login-slider-panel, .card-body { min-width: 0; }
img, svg, video, canvas, iframe { max-width: 100%; }
img { height: auto; }
input, select, textarea, button { max-width: 100%; }
.public-body main { overflow-wrap: anywhere; }
.public-body .btn { white-space: normal; }
.public-body :is(a, button, input, select, textarea, [tabindex]):focus-visible,
.public-table-card:focus-visible, .table-responsive:focus-visible {
    outline: 3px solid #0e3c9d;
    outline-offset: 3px;
}

/* Reclaim space with More and flexible spacing, keeping official labels readable. */
.head-sticky .main-navbar .container-fluid { gap: 12px; }
.head-sticky .main-navbar .navbar-nav { gap: 0; }
.head-sticky .main-navbar .navbar-nav .nav-link {
    font-size: .95rem;
    gap: 6px;
    padding-inline: clamp(6px, .6vw, 14px) !important;
    white-space: normal;
    text-transform: none;
}
.head-sticky .main-navbar .navbar-nav .login-pill .nav-link {
    min-width: 88px;
    margin-left: 0;
    padding-inline: 12px !important;
}
.public-navbar-brand { min-width: 0; }
.public-navbar-brand small { font-size: 12px; }
.public-navbar-brand img { width: 42px; height: 42px; }
.public-more > button { background: transparent; border: 0; font-family: inherit; }
.public-more[hidden] { display: none !important; }
.public-nav-measuring .navbar-nav > .nav-item { flex-shrink: 0 !important; }
.public-nav-measuring .navbar-nav .nav-link { white-space: nowrap !important; }
.public-more .dropdown-menu { width: 17rem; max-width: calc(100vw - 32px); z-index: 1000; }
.public-more .dropdown-item { display: flex; align-items: center; gap: 10px; white-space: normal; }
.public-more .dropdown-item.active { color: #fff; background: var(--public-green); }
.navbar .dropdown-menu .dropdown-item:hover { transform: none; }
.public-mobile-nav-actions { display: none; }
.public-legacy-header .accessibility-toolbar { flex-wrap: wrap; align-items: center; }
.public-legacy-header .accessibility-toolbar button { width: auto; height: auto; min-height: 44px; padding: .5rem; }
.public-legacy-header .header-section { flex-wrap: wrap; gap: 1rem; }
.public-legacy-header .header-left, .public-legacy-header .header-text { min-width: 0; }
.public-legacy-header .header-text { overflow-wrap: anywhere; }
.public-legacy-header .header-logo-ashoka { flex-shrink: 0; }

/* Desktop labels stay on one line; spacing yields before text does. */
@media (min-width: 1200px) {
    .head-sticky .main-navbar {
        padding-inline: clamp(12px, calc(2vw - 12px), 25px) !important;
        padding-block: clamp(8px, calc(1vw - 4px), 15px) !important;
    }
    .head-sticky .main-navbar .container-fluid { gap: 8px; }
    .public-navbar-brand { gap: 8px; }
    .head-sticky .main-navbar .navbar-nav .nav-link {
        white-space: nowrap;
        gap: 4px;
        padding-inline: clamp(2px, calc(2.5vw - 28px), 14px) !important;
    }
    .head-sticky .main-navbar .navbar-nav > .nav-item { flex-shrink: 0; }
    .head-sticky .main-navbar .navbar-nav .lang-switch { padding-left: 0; }
    .head-sticky .main-navbar .navbar-nav .language-dropdown-toggle,
    .head-sticky .main-navbar .navbar-nav .accessibility-nav-button { padding-inline: 6px; }
    .head-sticky .main-navbar .navbar-nav .accessibility-nav-button { min-width: 36px; }
    .head-sticky .main-navbar .navbar-nav .login-pill .nav-link {
        min-width: 80px;
        padding-inline: 10px !important;
    }
    /* Explicit accessibility text enlargement may wrap labels naturally. */
    html:is(.font-step-1, .font-step-2, .font-step-3) .main-navbar .navbar-nav > .nav-item:not(.lang-switch):not(.accessibility-nav-item):not(.login-pill) {
        flex-shrink: 1;
        min-width: 0;
    }
    html:is(.font-step-1, .font-step-2, .font-step-3) .head-sticky .main-navbar .navbar-nav .nav-link {
        white-space: normal;
    }
}

@media (min-width: 1200px) and (max-width: 1599.98px) {
    .head-sticky .main-navbar .navbar-nav { gap: 2px; }
    .head-sticky .main-navbar .navbar-nav .nav-link {
        font-size: clamp(.875rem, calc(.4375rem + .5125vw), .95rem);
        padding-inline: clamp(4px, calc(2.5vw - 26px), 8px) !important;
    }
    .head-sticky .main-navbar .navbar-nav .nav-link i { font-size: .95rem; }
    .head-sticky .main-navbar .navbar-nav .language-dropdown-toggle { font-size: clamp(.875rem, calc(.4375rem + .5125vw), .95rem); }
}
@media (min-width: 1600px) {
    .head-sticky .main-navbar .navbar-nav .nav-link {
        padding-inline: clamp(8px, calc(1.875vw - 22px), 14px) !important;
    }
}

/* The existing xl breakpoint and hamburger serve tablets and phones. */
@media (max-width: 1199.98px) {
    .head-sticky .main-navbar { padding-block: 10px !important; }
    .head-sticky .main-navbar .container-fluid { flex-wrap: wrap; gap: 8px; }
    .head-sticky .main-navbar .navbar-toggler {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border: 1px solid var(--public-green);
        border-radius: 4px;
        color: var(--public-green);
        font-size: 1.35rem;
    }
    .public-mobile-nav-actions {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-left: auto;
        color: #111;
        font-size: .9rem;
    }
    .public-mobile-nav-actions :is(.mobile-language-toggle, .accessibility-nav-button, .mobile-login-button) {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        min-height: 44px;
        min-width: 44px;
        padding: 8px;
        color: inherit;
        background: transparent;
        border: 0;
        font: inherit;
        font-weight: 700;
        text-decoration: none;
    }
    .public-mobile-nav-actions .mobile-login-button { border-radius: 7px; background: var(--public-green); color: #fff; }
    .head-sticky .main-navbar .navbar-collapse { width: 100%; flex-basis: 100%; }
    .head-sticky .main-navbar .navbar-collapse:not(.show):not(.collapsing) { display: none !important; }
    .head-sticky .main-navbar .navbar-collapse.show {
        display: block !important;
        max-height: calc(100dvh - 130px);
        overflow-y: auto;
        padding: 4px;
    }
    .head-sticky .main-navbar .navbar-nav { flex-direction: column !important; align-items: stretch; }
    .head-sticky .main-navbar .navbar-nav .nav-link { width: 100%; min-height: 44px; padding: 10px 8px !important; }
    .head-sticky .main-navbar .navbar-nav :is(.lang-switch, .accessibility-nav-item, .login-pill) { display: none !important; }
    .public-more .dropdown-menu { position: static; width: 100%; max-width: 100%; box-shadow: none; }
}
@media (max-width: 575.98px) {
    .head-sticky .main-navbar { padding-inline: 14px !important; }
    .public-navbar-brand { flex-basis: calc(100% - 52px); }
    .public-navbar-brand strong { font-size: 20px; }
    .public-mobile-nav-actions { order: 2; width: 100%; justify-content: flex-end; }
    .head-sticky .main-navbar .navbar-collapse { order: 3; }
}

/* Keep searches in normal flow, clear of headings and tables. */
#searchdiv, .public-page-body .search-btn {
    position: static !important;
    width: min(100%, 32rem) !important;
    max-width: 100%;
    margin: 0 0 1rem auto !important;
    inset: auto !important;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
#searchdiv .form-control { flex: 1 1 12rem; width: 0; min-width: 0; margin-inline: 0 !important; padding-right: .75rem !important; }
#searchdiv > .fa-search { display: none; } /* Decorative duplicate of Search. */
.search-btn > .d-flex { width: 100%; gap: .5rem; flex-wrap: wrap; }
.search-btn .form-control { flex: 1 1 10rem; width: 0; min-width: 0; }
.public-body :is(.form-control, .form-select, .select2-container) { min-width: 0; max-width: 100%; }
.public-body .select2-selection__rendered { white-space: normal; overflow-wrap: anywhere; }
.public-page-breadcrumb, .about-breadcrumb, .contact-breadcrumb { flex-wrap: wrap; }
.public-page-copy p, .transfer-desc { padding-inline: clamp(0px, 2vw, 2rem); }

/* Preserve table semantics and all columns; only the table region scrolls. */
.public-table-card, .table-responsive, .dataTables_scroll, .dataTables_scrollBody {
    min-width: 0;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}
.public-table-card, .table-responsive { overflow: auto; }
.public-themed-table { min-width: 38rem; }
.public-themed-table :is(th, td) { white-space: normal; overflow-wrap: anywhere; }
.public-themed-table .btn { min-width: 44px; min-height: 44px; }
.public-themed-table .btn svg { width: 24px; height: 24px; flex: 0 0 auto; }
.public-body .modal :is(.modal-content, .modal-header, .modal-body) { min-width: 0; }
.public-body .modal-title { overflow-wrap: anywhere; }
.public-body .modal-header .btn-close { flex-shrink: 0; }
.public-body .modal iframe { width: 100%; height: min(600px, 65dvh); }
.public-body .modal-dialog-scrollable .modal-content { max-height: 100%; }
.public-body .modal-footer { flex-wrap: wrap; gap: .5rem; }
.public-body .dataTables_wrapper .row { margin-inline: 0; }
.public-body .dataTables_paginate .pagination { flex-wrap: wrap; }

/* Cards grow with English, Marathi and mixed-language text. */
.public-body :is(.card-description, .tile-title, .card-heading) { overflow-wrap: anywhere; }
.public-body .card-description { display: block; -webkit-line-clamp: unset; overflow: visible; }
.public-body .tile-card { height: auto; min-height: 100%; }
.public-footer :is(.footer-bottom-inner, .footer-bottom-primary, .footer-meta-item) { min-width: 0; overflow-wrap: anywhere; }
.public-footer .footer-meta-item { flex-wrap: wrap; justify-content: center; }
.public-footer .footer-disclaimer { grid-template-columns: 170px minmax(0, 1fr); }
@media (max-width: 991.98px) {
    .public-footer .footer-disclaimer { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
    .public-page-shell, .about-shell, .contact-shell { padding-inline: 14px; }
    .public-page-copy p, .transfer-desc { font-size: 1rem !important; padding-inline: 0; }
    .public-footer .footer-disclaimer, .public-footer .footer-bottom { padding: 18px 16px; }
    .public-table-card.public-table-scroll { max-height: none; }
    .public-body .dataTables_wrapper :is(.dataTables_filter, .dataTables_length, .dataTables_info, .dataTables_paginate) { float: none; text-align: left; margin-block: .5rem; }
    .public-body .dataTables_wrapper label { white-space: normal; }
    .public-body .dataTables_filter input { width: min(100%, 260px); margin-left: 0; }
    .public-body .civil-export-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
}
@media print {
    .public-table-card, .table-responsive { overflow: visible; max-height: none !important; }
    .public-themed-table { min-width: 0; }
}
