/* =====================================================
   PUBLIC RESOURCES PAGE CSS
   File path: static/css/resources.css

   This file contains only the public Resources page design.
   Keep admin Resources CSS separate in static/css/admin/admin-resources.css
===================================================== */

/* =========================
   RESOURCES PAGE
========================= */

.resources-hero {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    position: relative;
    padding: 28px 0;
    color: var(--white);
    background:
        radial-gradient(circle at 86% 28%, rgba(255,255,255,.14), transparent 24%),
        linear-gradient(135deg, #0b3b74, var(--primary-dark));
}

.resources-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 42px 42px;
    opacity: .16;
    animation: heroDots 18s linear infinite;
}

.resources-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}

.resources-hero-left {
    display: flex;
    align-items: center;
    gap: 22px;
}

.resources-hero-icon {
    width: 58px;
    height: 58px;
    border: 2px solid rgba(255,255,255,.65);
    border-radius: 12px;
    background: rgba(255,255,255,.06);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    flex-shrink: 0;
}

.resources-hero h1 {
    font-size: 26px;
    font-weight: 900;
    margin-bottom: 6px;
}

.resources-hero p {
    margin-bottom: 0;
    color: rgba(255,255,255,.78);
    font-size: 15px;
}

/* Right hero decoration */

.resources-hero-right {
    position: absolute;
    right: 55px;
    top: 50%;
    transform: translateY(-50%);
    width: 160px;
    height: 110px;
    opacity: .16;
    pointer-events: none;
}

.resources-hero-right::before,
.resources-hero-right::after,
.resources-hero-right .doc3 {
    content: "";
    position: absolute;
    width: 54px;
    height: 76px;
    border: 2px solid rgba(255,255,255,.75);
    border-radius: 10px;
    background:
        linear-gradient(rgba(255,255,255,.75), rgba(255,255,255,.75)) 12px 16px / 26px 2px no-repeat,
        linear-gradient(rgba(255,255,255,.75), rgba(255,255,255,.75)) 12px 28px / 20px 2px no-repeat,
        linear-gradient(rgba(255,255,255,.75), rgba(255,255,255,.75)) 12px 40px / 28px 2px no-repeat;
}

.resources-hero-right::before {
    left: 18px;
    top: 20px;
    transform: rotate(-8deg);
}

.resources-hero-right::after {
    left: 56px;
    top: 10px;
    animation: docFloat 5s ease-in-out infinite;
}

.resources-hero-right .doc3 {
    right: 10px;
    top: 20px;
    transform: rotate(8deg);
}

.resources-hero-right span {
    position: absolute;
    width: 6px;
    height: 6px;
    background: rgba(255,255,255,.45);
    border-radius: 50%;
    animation: dotFloat 4s ease-in-out infinite;
}

.resources-hero-right span:nth-child(2) {
    left: -10px;
    top: 45px;
}

.resources-hero-right span:nth-child(3) {
    right: 8px;
    top: 8px;
}

.resources-hero-right span:nth-child(4) {
    right: 35px;
    bottom: 5px;
}

/* Main layout */

.resources-page {
    background: var(--body-bg);
}

.resources-grid {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr) 220px;
    gap: 14px;
    align-items: start;
}

/* Panels */

.resource-left-panel,
.resource-center-panel,
.resource-right-panel .info-box {
    background: var(--white);
    border-radius: 22px;
    box-shadow: 0 10px 28px var(--shadow);
}

.resource-left-panel {
    padding: 14px;
    position: sticky;
    top: 110px;
}

.resource-center-panel {
    padding: 18px;
    min-width: 0;
}

.resource-right-panel {
    display: grid;
    gap: 12px;
    position: sticky;
    top: 110px;
}

/* Left menu */

.resource-menu {
    display: block;
    text-decoration: none;
    color: var(--dark);
    font-weight: 800;
    padding: 11px 13px;
    border-radius: 12px;
    margin-bottom: 7px;
    transition: 0.25s ease;
    font-size: 14px;
}

.resource-menu:hover,
.resource-menu.active {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: var(--white);
}

.subscribe-card {
    margin-top: 16px;
    background: var(--soft);
    border-radius: 18px;
    padding: 18px;
}

.subscribe-card h6 {
    font-weight: 900;
}

.subscribe-card p {
    color: var(--muted);
    font-size: 13px;
}

/* Header */

.resource-header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 16px;
}

.resource-header h2 {
    font-weight: 900;
    margin-bottom: 4px;
    font-size: 22px;
}

.resource-header p {
    color: var(--muted);
    margin-bottom: 0;
    font-size: 14px;
}

.resource-tools {
    display: flex;
    gap: 10px;
}

.resource-tools select,
.resource-tools input {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 7px 12px;
    height: 38px;
    outline: none;
    color: var(--dark);
    background: var(--white);
    font-size: 13px;
}

.resource-tools input {
    min-width: 220px;
}

/* Table */

.resource-table-wrap {
    width: 100%;
    overflow-x: hidden;
    border-radius: 14px;
    border: 1px solid var(--border);
}

.resource-table {
    width: 100%;
    min-width: 0 !important;
    table-layout: fixed;
    border-collapse: collapse;
    background: var(--white);
}

.resource-table thead {
    background: var(--soft);
}

.resource-table th,
.resource-table td {
    padding: 10px 8px !important;
    vertical-align: middle;
}

.resource-table th {
    font-size: 12px;
    color: var(--dark);
    font-weight: 900;
}

.resource-table td {
    border-top: 1px solid rgba(15,23,42,.06);
    color: var(--muted);
    font-size: 13px;
}

.doc-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.doc-title strong {
    display: block;
    color: var(--dark);
    font-weight: 900;
    margin-bottom: 3px;
    font-size: 13px;
    line-height: 1.25;
    word-break: break-word;
}

.doc-title small {
    color: var(--muted);
    font-size: 12px;
}

.doc-file {
    min-width: 32px;
    width: 32px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 900;
    flex-shrink: 0;
}

.doc-file.pdf {
    background: #fff1f2;
    color: #e11d48;
}

.doc-file.form {
    background: var(--soft);
    color: var(--primary);
}

.doc-badge {
    display: inline-block;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
}

.doc-badge.green,
.doc-badge.teal {
    background: var(--soft);
    color: var(--primary);
}

.doc-badge.blue {
    background: #eef6ff;
    color: #2563eb;
}

.doc-badge.gold {
    background: #fff8e1;
    color: #b77900;
}

.doc-actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: nowrap;
}

.view-btn,
.download-btn {
    text-decoration: none;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
    transition: 0.25s ease;
}

.view-btn {
    color: var(--primary);
    border: 1px solid var(--primary);
}

.download-btn {
    background: var(--primary);
    color: var(--white);
}

/* Pagination */

.resource-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 14px;
    color: var(--muted);
    font-weight: 700;
    font-size: 13px;
}

.resource-pagination button {
    border: none;
    background: var(--soft);
    color: var(--primary);
    width: 30px;
    height: 30px;
    border-radius: 8px;
    font-weight: 900;
    margin-left: 5px;
    font-size: 13px;
}

.resource-pagination button.active {
    background: var(--primary);
    color: var(--white);
}

/* Right boxes */

.info-box {
    padding: 20px;
}

.info-box h5 {
    font-weight: 900;
    margin-bottom: 12px;
    font-size: 16px;
}

.info-box a {
    display: block;
    color: var(--dark);
    text-decoration: none;
    font-weight: 700;
    padding: 8px 0;
    border-bottom: 1px solid rgba(15,23,42,.06);
    font-size: 13px;
}

.info-box p,
.info-box span {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
}

.info-box span {
    display: block;
    margin-top: 8px;
    font-weight: 700;
}

.green-box {
    background: var(--soft) !important;
}

.gold-box {
    background: #fff8e1 !important;
}

.help-box {
    background: #f0f7ff !important;
}
/* animations */

@keyframes heroDots {
    from { background-position: 0 0; }
    to { background-position: 120px 120px; }
}

@keyframes docFloat {
    0%,100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

@keyframes dotFloat {
    0%,100% {
        transform: translateY(0);
        opacity: .3;
    }
    50% {
        transform: translateY(-8px);
        opacity: 1;
    }
}

/* responsive */

@media (max-width: 1200px) {
    .resources-page .container {
        max-width: 100%;
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .resources-grid {
        grid-template-columns: 210px minmax(0, 1fr);
        gap: 16px;
    }

    .resource-right-panel {
        grid-column: 1 / -1;
        position: static;
        grid-template-columns: repeat(3, 1fr);
    }

    .resource-table {
        min-width: 680px;
    }
}

@media (max-width: 991px) {
    .resources-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .resource-left-panel {
        position: static;
        display: flex;
        gap: 10px;
        overflow-x: auto;
        overflow-y: hidden;
        white-space: nowrap;
        scrollbar-width: none;
        padding: 12px;
        margin-bottom: 0;
    }

    .resource-left-panel::-webkit-scrollbar {
        display: none;
    }

    .resource-menu {
        flex: 0 0 auto;
        margin-bottom: 0;
        border-radius: 999px;
        padding: 10px 14px;
        font-size: 13px;
    }

    .subscribe-card {
        display: none;
    }

    .resource-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .resource-tools {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .resource-tools select,
    .resource-tools input {
        width: 100%;
        min-width: 0;
    }

    .resource-right-panel {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {

    .resources-hero{
        overflow:hidden;
        padding:40px 18px;
    }

    .resources-hero-content{
        width:100%;
        overflow:hidden;
    }


    .resources-hero h1{
        font: size 24px;
        word-break:break-word;
        overflow-wrap:break-word;
    }

    .resources-hero p{
        font-size:14px;
    }



    .resources-hero::before{
        width:100%;
    }


    .resources-hero-right{
        display:block !important;
        position:absolute;
        right: 18px;
        top:50%;
        transform:translateY(-50%) scale(.72);
        transform-origin: right center;
        width:130px;
        height:120px;
        opacity:.12;
        pointer-events:none;
        z-index:1;
    }

    .resources-hero-left{
        max-width:78%;
        position:relative;
        z-index:2;
    }

    /* NORMAL COMPACT MOBILE LIST */

  .resource-table-wrap {
    border: 1px solid var(--border);
    border-radius: 18px;
    overflow-x: auto;
    overflow-y: hidden;
    background: var(--white);
    -webkit-overflow-scrolling: touch;
}

.resource-table {
    display: table !important;
    width: 100%;
    min-width: 760px !important;
    border-collapse: collapse;
    background: var(--white);
}

.resource-table thead {
    display: table-header-group !important;
}

.resource-table tbody {
    display: table-row-group !important;
}

.resource-table tr {
    display: table-row !important;
    padding: 0 !important;
    border: none;
    box-shadow: none;
    border-radius: 0;
    background: var(--white);
    height:auto !important;
}

.resource-table th{
    padding:10px 12px !important;
    font-size:12px;
    font-weight:800;
}

.resource-table td {
    display: table-cell !important;
    width: auto;
    padding:8px 10px !important;
    border-top:1px solid rgba(15,23,42,.08);
    vertical-align:middle;
    font-size:12px;
}

.resource-table td::before {
    display:none !important;
}

/* compact document area */

.doc-title{
    display:flex;
    align-items:center;
    gap:10px;
}

.doc-file{
    min-width:32px !important;
    width:32px !important;
    height:36px !important;
    border-radius:8px;
    font-size:10px !important;
}

.doc-title strong{
    font-size:13px !important;
    line-height:1.2;
    margin-bottom:2px;
}

.doc-title small{
    font-size:11px !important;
}

.doc-badge{
    padding:5px 10px !important;
    font-size:10px !important;
}

.doc-actions{
    display:flex;
    gap:6px;
}

.view-btn,
.download-btn{
    padding:6px 10px !important;
    font-size:10px !important;
    border-radius:8px;
}

/* tablet */

@media (max-width:991px){

    .resource-table{
        min-width:680px !important;
    }

    .resource-table td{
        padding:7px 8px !important;
    }

    .doc-title strong{
        font-size:12px !important;
    }

    .doc-file{
        width:28px !important;
        min-width:28px !important;
        height:32px !important;
    }
}

/* mobile */

@media (max-width:768px){

    .resource-table{
        min-width:620px !important;
    }

    .resource-table td{
        padding:6px !important;
    }

    .doc-file{
        width:26px !important;
        min-width:26px !important;
        height:30px !important;
        font-size:9px !important;
    }

    .doc-title strong{
        font-size:11px !important;
    }

    .doc-title small{
        font-size:10px !important;
    }

    .doc-badge{
        font-size:9px !important;
        padding:4px 8px !important;
    }

    .view-btn,
    .download-btn{
        padding:5px 8px !important;
        font-size:9px !important;
    }
}

    .doc-title {
        align-items: flex-start;
        gap: 10px;
    }

    .doc-file {
        min-width: 40px !important;
        width: 40px !important;
        height: 40px !important;
        border-radius: 12px;
    }

    .doc-title strong {
        font-size: 14px !important;
        line-height: 1.3;
    }

    .doc-title small {
        font-size: 12px !important;
    }

    .doc-badge {
        font-size: 11px !important;
        padding: 5px 10px !important;
        white-space: nowrap;
        display: inline-block;
        width: fit-content;
    }

    .doc-actions {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        margin-top: 0;
        flex-wrap: nowrap;
    }

    .view-btn,
    .download-btn {
        padding: 7px 11px !important;
        font-size: 12px !important;
        border-radius: 8px;
        text-align: center;
        white-space: nowrap;
    }

    .resource-pagination {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .resource-right-panel {
        grid-template-columns: 1fr !important;
        margin-top: 0;
    }

    .resource-right-panel .info-box {
        width: 100%;
        min-height: auto;
        padding: 20px;
        border-radius: 22px;
    }
}

@media (max-width: 576px) {
    .resources-hero {
        padding: 46px 0 42px;
    }

    .resources-hero-left {
        gap: 14px;
        align-items: flex-start;
    }

    .resources-hero-icon {
        width: 54px;
        height: 54px;
        min-width: 54px;
        font-size: 24px;
    }

    .resources-hero h1 {
        font-size: 30px;
        line-height: 1.18;
    }

    .resources-hero p {
        font-size: 14px;
    }

    .resources-grid {
        gap: 40px !important;
    }

    .resource-center-panel {
        padding: 14px;
    }

    .resource-header h2 {
        font-size: 22px;
    }

    .resource-header p {
        font-size: 13px;
    }

    .resource-tools {
        grid-template-columns: 1fr;
    }

    .resource-tools select,
    .resource-tools input {
        height: 42px;
        font-size: 13px;
        border-radius: 12px;
    }

    .resource-table tr {
        padding: 13px !important;
    }

    .doc-title strong {
        font-size: 13px !important;
    }

    .resource-pagination {
        font-size: 12px;
    }
}

/* FOOTER MOTTO */

.footer-motto{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    margin:25px 0;
}

.footer-motto span{
    width:70px;
    height:1px;
    background:rgba(255,255,255,.25);
}

.footer-motto p{
    margin:0;
    padding:10px 22px;

    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.12);

    border-radius:999px;

    color:#fff;
    font-weight:700;
    letter-spacing:.5px;
    font-size:18px;

    backdrop-filter:blur(8px);
}
.footer-tamil{
    width:100%;
    text-align:center;
    display:flex;
    justify-content:center;
    align-items:center;
    margin:25px auto;
}

@media (max-width:991px){

    .footer-tamil{
        text-align:center !important;
        justify-content:center !important;
        width:100%;
        padding:0 15px;
        font-size:18px;
        line-height:1.6;
    }
}

@media (max-width:768px){

   
}
@media(max-width:576px){
    .footer-motto{
        gap:12px;
        padding:20px 0;
    }

    .footer-motto span{
        width:55px;
    }

    .footer-motto p{
        font-size:17px;
        letter-spacing:.6px;
    }
}
/* =========================
   ULTRA COMPACT MOBILE FOOTER
========================= */

@media (max-width:768px){

.footer-main{
    padding:20px 14px 12px;
}

.footer-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.footer-tamil{
    font-size:16px;
    margin:20px auto;
    padding:0 10px;
}

.footer-brand{
    grid-column:1/-1;
    text-align:center;
    margin-bottom:8px;
}

.footer-brand h3{
    font-size:20px;
    margin-bottom:6px;
}

.footer-brand p{
    font-size:12px;
    line-height:1.5;
    margin:0 auto;
    max-width:90%;
}

/* headings smaller */
.footer-links h4,
.footer-social h4,
.footer-contact h4{
    font-size:15px;
    margin-bottom:8px;
}

/* compact links */
.footer-links a{
    display:block;
    margin-bottom:6px;
    font-size:13px;
}

/* social icons much smaller */
.footer-social-icons{
    display:flex;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.footer-social-icons a{
    width:40px;
    height:40px;
    border-radius:10px;
    font-size:16px;
}

/* remove extra text under social */
.footer-social p{
    display:none;
}

.footer-contact p{
    font-size:12px;
    line-height:1.4;
    margin-bottom:8px;
}

.footer-contact p br{
    display:none;
}

/* copyright compact */
.footer-bottom{
    margin-top:14px;
    padding-top:10px;
    font-size:11px;
}

}

/* =========================
   FOOTER TABLET + MOBILE
   Keep desktop layout style
========================= */

@media (max-width:768px){

    .premium-footer{
        padding:50px 0 20px;
    }

    /* keep 2-column layout */
    .footer-grid{
        display:grid;
        grid-template-columns:repeat(2,1fr);
        gap:35px 28px;
        text-align:left;
    }

    .footer-brand h4{
        font-size:28px;
        line-height:1.25;
        margin-bottom:14px;
    }

    .footer-brand p{
        font-size:15px;
        line-height:1.8;
    }

    .premium-footer h5{
        font-size:20px;
        margin-bottom:18px;
    }

    .footer-links li,
    .footer-contact li{
        margin-bottom:10px;
    }

    .footer-links a,
    .footer-contact li{
        font-size:15px;
    }

    .social-links{
        justify-content:flex-start;
        gap:10px;
    }

    .social-links a{
        width:48px;
        height:48px;
        border-radius:14px;
        font-size:18px;
    }

    .footer-bottom{
        margin-top:30px;
        padding-top:20px;
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:10px;
    }

}
/* very small screens only */
@media (max-width:480px){

    .footer-grid{
        grid-template-columns:1fr;
        gap:28px;
    }

    .footer-brand h4{
        font-size:24px;
    }

    .footer-logo-box{
        width:56px;
        height:56px;
    }

    .social-links a{
        width:42px;
        height:42px;
    }

    .footer-bottom{
        font-size:13px;
    }

}

/* =========================
CONTACT PAGE
========================= */

.contact-directory-section,
.contact-office-section{
    background:var(--body-bg);
}

/* heading */

.section-heading h2{
    font-size:38px;
    font-weight:900;
    color:var(--dark);
    margin-bottom:10px;
}

.section-heading p{
    color:var(--muted);
    font-size:16px;
}


/* PRESIDENT CARD */

.president-contact-card{
    background:var(--white);
    border-radius:28px;
    padding:30px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;

    box-shadow:
    0 12px 35px var(--shadow);

    margin-bottom:35px;
}

.contact-role-icon{
    width:85px;
    height:85px;

    min-width:85px;

    border-radius:24px;

    background:
    linear-gradient(
    135deg,
    var(--primary),
    var(--secondary)
    );

    display:flex;
    align-items:center;
    justify-content:center;

    color:white;
    font-size:34px;
}

.contact-main-info{
    flex:1;
}

.contact-main-info span{
    display:inline-block;

    background:var(--soft);

    color:var(--primary);

    padding:6px 14px;

    border-radius:999px;

    font-size:12px;
    font-weight:800;

    margin-bottom:12px;
}

.contact-main-info h3{
    font-size:34px;
    font-weight:900;
    margin-bottom:10px;
}

.contact-main-info p{
    color:var(--muted);
    margin:0;
}


/* CONTACT LINKS */

.contact-details,
.member-links{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.contact-details a,
.member-links a,
.office-info p{

    display:flex;
    align-items:center;
    gap:12px;

    text-decoration:none;

    color:var(--dark);

    font-weight:700;
}


.contact-details i,
.member-links i,
.office-info i{

    width:38px;
    height:38px;

    min-width:38px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    color:white;

    background:
    linear-gradient(
    135deg,
    #14b8a6,
    #0f766e
    );

    box-shadow:
    0 8px 18px rgba(20,184,166,.28);

    transition:.3s;
}

.contact-details a:hover i,
.member-links a:hover i{
    transform:scale(1.1);
}


/* MEMBER CARD */

.contact-member-card{

    background:var(--white);

    width:100%;

    padding:28px;

    border-radius:24px;

    box-shadow:
    0 10px 30px var(--shadow);

    transition:.35s;
}

.contact-member-card:hover{

    transform:translateY(-8px);
}

.member-role{

    display:inline-block;

    padding:6px 14px;

    border-radius:999px;

    background:var(--soft);

    color:var(--primary);

    font-size:12px;
    font-weight:800;

    margin-bottom:14px;
}

.contact-member-card h4{
    font-size:22px;
    font-weight:900;
    margin-bottom:10px;
}

.contact-member-card p{
    color:var(--muted);
    min-height:70px;
}


/* OFFICE + FORM */

.office-card,
.contact-form-card{

    width:100%;

    background:var(--white);

    padding:34px;

    border-radius:28px;

    box-shadow:
    0 12px 35px var(--shadow);
}

.section-mini-title{

    display:block;

    font-size:13px;

    text-transform:uppercase;

    letter-spacing:1px;

    color:var(--primary);

    font-weight:900;

    margin-bottom:12px;
}

.office-card h3,
.contact-form-card h3{
    font-size:36px;
    font-weight:900;
    margin-bottom:24px;
}

.office-info{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.office-info p{
    margin:0;
}


/* FORM */

.contact-form-card input,
.contact-form-card select,
.contact-form-card textarea{

    width:100%;

    border:1px solid var(--border);

    border-radius:14px;

    padding:14px 16px;

    outline:none;

    transition:.3s;

    background:#fff;
}

.contact-form-card textarea{
    resize:none;
}

.contact-form-card input:focus,
.contact-form-card select:focus,
.contact-form-card textarea:focus{

    border-color:var(--primary);

    box-shadow:
    0 0 0 4px rgba(20,184,166,.12);
}


.contact-form-card button{

    background:
    linear-gradient(
    135deg,
    var(--primary),
    var(--secondary)
    );

    border:none;

    padding:13px 34px;

    font-weight:800;
}


/* TABLET */

@media(max-width:991px){

.president-contact-card{
    flex-direction:column;
    text-align:center;
}

.contact-details{
    width:100%;
}

.contact-details a{
    justify-content:center;
}

.contact-main-info h3{
    font-size:28px;
}

.office-card,
.contact-form-card{
    padding:26px;
}

}


/* MOBILE */

@media(max-width:768px){

.section-heading h2{
    font-size:28px;
}

.contact-member-card{
    padding:22px;
}

.contact-member-card h4{
    font-size:20px;
}

.office-card h3,
.contact-form-card h3{
    font-size:28px;
}

.contact-details a,
.member-links a,
.office-info p{

    font-size:14px;

    word-break:break-word;
}

.contact-role-icon{
    width:70px;
    height:70px;
    min-width:70px;
    font-size:28px;
}

.contact-details i,
.member-links i,
.office-info i{

    width:34px;
    height:34px;
    min-width:34px;
}

}


/* =========================
   LOGIN MODAL
========================= */

.login-modal {
    border: none;
    border-radius: 28px;
    overflow: hidden;
    max-width: 560px;
    margin: auto;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .18);
}

.login-modal .modal-body {
    padding: 32px;
    position: relative;
    background:
        radial-gradient(circle at top right, rgba(20, 184, 166, .08), transparent 35%),
        #fff;
}

/* CLOSE */

.login-close {
    position: absolute;
    top: 22px;
    right: 22px;
    z-index: 5;
    box-shadow: none !important;
}

/* HEADER */

.login-modal-header {
    text-align: center;
    margin-bottom: 24px;
}

.login-icon {
    width: 76px;
    height: 76px;
    margin: 0 auto 18px;
    border-radius: 24px;
    background: linear-gradient(135deg, #14b8a6, #0f766e);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    box-shadow: 0 15px 30px rgba(20, 184, 166, .25);
}

.login-modal-header h3 {
    font-size: 32px;
    font-weight: 900;
    margin-bottom: 10px;
}

.login-modal-header p {
    color: #64748b;
    line-height: 1.7;
    font-size: 15px;
    max-width: 460px;
    margin: 0 auto;
}

/* TABS */

.login-tabs {
    display: flex;
    background: #f1f5f9;
    padding: 6px;
    border-radius: 999px;
    margin-bottom: 24px;
}

.login-tab {
    flex: 1;
    border: none;
    padding: 12px;
    border-radius: 999px;
    background: transparent;
    color: #64748b;
    font-size: 14px;
    font-weight: 900;
    transition: .3s ease;
}

.login-tab.active {
    background: linear-gradient(135deg, #14b8a6, #0f766e);
    color: #fff;
    box-shadow: 0 10px 24px rgba(20, 184, 166, .20);
}

.login-form {
    display: none;
}

.login-form.active {
    display: block;
}

/* PORTAL LABEL */

.portal-label {
    text-align: center;
    margin-bottom: 18px;
}

.portal-label span {
    display: inline-block;
    padding: 7px 18px;
    border-radius: 999px;
    background: #ecfdf5;
    color: #0f766e;
    font-size: 12px;
    font-weight: 900;
}

.portal-label.admin span {
    background: #fff7ed;
    color: #c2410c;
}

/* FIELDS */

.login-field {
    margin-bottom: 18px;
}

.login-field label {
    display: block;
    margin-bottom: 8px;
    color: #111827;
    font-weight: 900;
}

.login-input {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1px solid #d8e2e8;
    border-radius: 16px;
    padding: 0;
    overflow: hidden;
    background: #fff;
    transition: .3s ease;
}

.login-input i:first-child {
    width: 60px;
    min-width: 60px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f7fafc;
    color: #14b8a6;
    font-size: 18px;
}

.login-input input {
    width: 100%;
    border: none !important;
    outline: none !important;
    background: #fff !important;
    padding: 16px !important;
    color: #0f172a;
}

.login-input input::placeholder {
    color: #94a3b8;
}

.login-input:focus-within {
    border-color: #14b8a6;
    background: white;
    box-shadow: 0 0 0 4px rgba(20, 184, 166, .08);
}

.toggle-password {
    cursor: pointer;
    color: #14b8a6;
    padding-right: 18px;
    font-size: 18px;
}

/* OPTIONS */

.login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 16px 0 24px;
    gap: 14px;
}

.login-options label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
}

.login-options input {
    width: 18px;
    height: 18px;
}

.login-options a {
    color: #0f766e;
    font-weight: 900;
    text-decoration: none;
}

/* ADMIN SECURITY */

.admin-security-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff7ed;
    color: #9a3412;
    padding: 13px 15px;
    border-radius: 16px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
    margin: 0 0 18px;
}

.admin-security-note i {
    margin-top: 3px;
    color: #ea580c;
}

/* OTP */

.otp-row {
    display: grid;
    grid-template-columns: 1fr 130px;
    gap: 12px;
    align-items: end;
}

.otp-field {
    margin-bottom: 0;
}

.send-otp-btn {
    height: 58px;
    border: none;
    border-radius: 16px;
    background: linear-gradient(135deg, #f97316, #ea580c);
    color: white;
    font-size: 13px;
    font-weight: 900;
    transition: .3s ease;
    white-space: nowrap;
}

.send-otp-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(249, 115, 22, .22);
}

.send-otp-btn:disabled {
    opacity: .75;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.otp-timer,
.otp-status {
    display: none;
    margin-top: 10px;
    margin-bottom: 18px;
    color: #0f766e;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.6;
}

.otp-timer.show,
.otp-status.show {
    display: block;
}

.otp-status.error {
    color: #dc2626;
}

.admin-options {
    justify-content: flex-end;
    margin-top: 18px;
}

.admin-login-btn {
    background: linear-gradient(135deg, #0f766e, #0b3b3a) !important;
}

/* BUTTON */

.login-submit-btn {
    width: 100%;
    border: none;
    padding: 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, #14b8a6, #0f766e);
    color: white;
    font-size: 16px;
    font-weight: 900;
    transition: .3s ease;
}

.login-submit-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(20, 184, 166, .25);
}

.login-register-link {
    text-align: center;
    margin-top: 22px;
}

.login-register-link p {
    color: #64748b;
    margin-bottom: 0;
    font-weight: 700;
}

.login-register-link a {
    color: #0f766e;
    font-weight: 900;
    text-decoration: none;
}
/* LOGIN ALERTS */
.login-message-box {
    margin: 18px 0;
}

.login-alert {
    padding: 13px 16px;
    border-radius: 16px;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
}

.login-alert-error {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

.login-alert-success {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #bbf7d0;
}

/* MOBILE */

@media (max-width: 576px) {
    .login-modal {
        width: 95%;
        margin: auto;
        border-radius: 24px;
    }

    .login-modal .modal-body {
        padding: 24px;
    }

    .login-icon {
        width: 66px;
        height: 66px;
        font-size: 26px;
    }

    .login-modal-header h3 {
        font-size: 26px;
    }

    .login-modal-header p {
        font-size: 14px;
    }

    .login-tabs {
        margin-bottom: 20px;
    }

    .login-tab {
        padding: 10px;
        font-size: 13px;
    }

    .login-options {
        flex-direction: column;
        align-items: flex-start;
    }

    .login-input i:first-child {
        width: 52px;
        min-width: 52px;
    }

    .otp-row {
        grid-template-columns: 1fr;
    }

    .send-otp-btn {
        width: 100%;
        height: 52px;
    }
}

/* =========================
   FORGOT PASSWORD MODAL
========================= */

.forgot-modal {
    border: none;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 30px 70px rgba(15,23,42,.18);
}

.forgot-modal .modal-body {
    padding: 34px;
    position: relative;
    background:
        radial-gradient(circle at top right, rgba(20,184,166,.10), transparent 35%),
        #fff;
}

.forgot-close {
    position: absolute;
    top: 20px;
    right: 20px;
    box-shadow: none !important;
}

.forgot-header {
    text-align: center;
    margin-bottom: 28px;
}

.forgot-icon {
    width: 74px;
    height: 74px;
    margin: 0 auto 18px;
    border-radius: 24px;
    background: linear-gradient(135deg,#14b8a6,#0f766e);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 15px 30px rgba(20,184,166,.22);
}

.forgot-header h3 {
    font-size: 30px;
    font-weight: 900;
    margin-bottom: 10px;
}

.forgot-header p {
    color: #64748b;
    line-height: 1.7;
    margin-bottom: 0;
}

.forgot-step {
    display: none;
}

.forgot-step.active {
    display: block;
}

.forgot-submit-btn {
    width: 100%;
    border: none;
    padding: 14px;
    border-radius: 999px;
    background: linear-gradient(135deg,#14b8a6,#0f766e);
    color: white;
    font-size: 16px;
    font-weight: 900;
    transition: .3s;
}

.forgot-submit-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(20,184,166,.25);
}

.forgot-submit-btn i {
    margin-left: 8px;
}

.otp-message {
    display: flex;
    gap: 10px;
    background: #ecfdf5;
    color: #0f766e;
    padding: 14px 16px;
    border-radius: 16px;
    font-weight: 800;
    margin-bottom: 18px;
}

.forgot-timer {
    color: #0f766e;
    font-size: 13px;
    font-weight: 800;
    margin: 0 0 20px;
}

.forgot-timer a {
    color: #0f766e;
    font-weight: 900;
    text-decoration: none;
}

.back-login-link {
    text-align: center;
    margin-top: 22px;
}

.back-login-link a {
    color: #0f766e;
    font-weight: 900;
    text-decoration: none;
}

@media(max-width:576px) {
    .forgot-modal .modal-body {
        padding: 26px;
    }

    .forgot-header h3 {
        font-size: 26px;
    }
}
/* =========================
   ADMIN FORGOT PASSWORD
========================= */

.admin-forgot-modal {
    border: none;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 30px 70px rgba(15,23,42,.20);
}

.admin-forgot-modal .modal-body {
    padding: 34px;
    position: relative;
    background:
        radial-gradient(circle at top right, rgba(249,115,22,.12), transparent 35%),
        #fff;
}

.admin-forgot-close {
    position: absolute;
    top: 20px;
    right: 20px;
    box-shadow: none !important;
}

.admin-forgot-header {
    text-align: center;
    margin-bottom: 28px;
}

.admin-forgot-icon {
    width: 74px;
    height: 74px;
    margin: 0 auto 18px;
    border-radius: 24px;
    background: linear-gradient(135deg,#f97316,#c2410c);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 15px 30px rgba(249,115,22,.24);
}

.admin-forgot-header h3 {
    font-size: 30px;
    font-weight: 900;
    margin-bottom: 10px;
}

.admin-forgot-header p {
    color: #64748b;
    line-height: 1.7;
    margin-bottom: 0;
}

.admin-forgot-step {
    display: none;
}

.admin-forgot-step.active {
    display: block;
}

.admin-reset-warning,
.admin-otp-message {
    display: flex;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 16px;
    font-weight: 800;
    margin-bottom: 18px;
    line-height: 1.6;
}

.admin-reset-warning {
    background: #fff7ed;
    color: #9a3412;
}

.admin-otp-message {
    background: #ecfdf5;
    color: #0f766e;
}

.admin-forgot-btn {
    width: 100%;
    border: none;
    padding: 14px;
    border-radius: 999px;
    background: linear-gradient(135deg,#f97316,#c2410c);
    color: white;
    font-size: 16px;
    font-weight: 900;
    transition: .3s;
}

.admin-forgot-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(249,115,22,.25);
}

.admin-forgot-btn i {
    margin-left: 8px;
}

.admin-forgot-timer {
    color: #c2410c;
    font-size: 13px;
    font-weight: 800;
    margin: 0 0 20px;
}

.admin-forgot-timer a {
    color: #c2410c;
    font-weight: 900;
    text-decoration: none;
}

.admin-back-login {
    text-align: center;
    margin-top: 22px;
}

.admin-back-login a {
    color: #c2410c;
    font-weight: 900;
    text-decoration: none;
}

@media(max-width:576px) {
    .admin-forgot-modal .modal-body {
        padding: 26px;
    }

    .admin-forgot-header h3 {
        font-size: 26px;
    }
}
/* =========================
   FINAL MOBILE RESPONSIVE FIX
========================= */

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

* {
    box-sizing: border-box;
}

img,
video {
    max-width: 100%;
    height: auto;
}


/* =========================
   NAVBAR MOBILE FIX
========================= */

@media (max-width: 991.98px) {

    .navbar {
        padding: 14px 0 !important;
    }

    .navbar .container {
        max-width: 100% !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .navbar-brand {
        max-width: calc(100% - 76px);
        align-items: center !important;
    }

    .navbar-brand .logo-circle {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        font-size: 22px !important;
    }

    .brand-title {
        font-size: 20px !important;
        line-height: 1.15 !important;
        max-width: 260px !important;
        white-space: normal !important;
        word-break: normal !important;
    }

    .navbar-toggler {
        width: 56px !important;
        height: 56px !important;
        border-radius: 18px !important;
        border: 1px solid #e2e8f0 !important;
        box-shadow: none !important;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .navbar-collapse {
        margin-top: 18px !important;
        padding: 18px 0 6px !important;
        border-top: 1px solid #e5e7eb !important;
        background: #ffffff !important;
    }

    .navbar-nav {
        width: 100% !important;
        gap: 0 !important;
        align-items: stretch !important;
    }

    .navbar-nav .nav-item {
        width: 100% !important;
    }

    .navbar-nav .nav-link {
        width: 100% !important;
        padding: 14px 16px !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        color: #0f172a !important;
        border-radius: 14px !important;
    }

    .navbar-nav .nav-link:hover {
        background: #ecfdf5 !important;
        color: #0f766e !important;
    }

    .mobile-nav-buttons {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
        padding-top: 16px !important;
        margin-top: 10px !important;
        border-top: 1px solid #e5e7eb !important;
    }

    .mobile-nav-buttons .btn {
        width: 100% !important;
        min-height: 52px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 17px !important;
        font-weight: 800 !important;
        padding: 12px 18px !important;
    }
}


/* =========================
   HOME PAGE MOBILE FIX
========================= */

@media (max-width: 768px) {

    .container {
        max-width: 100% !important;
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    section {
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .hero-section,
    .home-hero,
    .main-hero {
        padding: 55px 0 !important;
        overflow: hidden !important;
    }

    .hero-content,
    .home-hero-content,
    .hero-text {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .hero-content h1,
    .home-hero-content h1,
    .hero-text h1,
    .hero-section h1 {
        font-size: 40px !important;
        line-height: 1.12 !important;
        letter-spacing: -1px !important;
        word-break: normal !important;
    }

    .hero-content p,
    .home-hero-content p,
    .hero-text p,
    .hero-section p {
        font-size: 19px !important;
        line-height: 1.75 !important;
    }

    .hero-actions,
    .home-hero-actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
        width: 100% !important;
    }

    .hero-actions a,
    .hero-actions button,
    .home-hero-actions a,
    .home-hero-actions button {
        width: 100% !important;
        justify-content: center !important;
    }
}


/* =========================
   OFFICIALS / REPRESENTATIVES MOBILE FIX
========================= */

@media (max-width: 768px) {

    .officials-section,
    .representatives-section,
    .district-representatives-section {
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow: hidden !important;
    }

    .officials-grid,
    .representatives-grid,
    .district-grid,
    .contact-officials-preview-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 22px !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .official-card,
    .representative-card,
    .district-card,
    .contact-official-preview-card {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding: 28px 20px !important;
        border-radius: 24px !important;
    }

    .section-title,
    .section-heading {
        text-align: center !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .section-title h2,
    .section-heading h2,
    .district-representatives-section h2 {
        font-size: 32px !important;
        line-height: 1.2 !important;
    }

    .section-title p,
    .section-heading p,
    .district-representatives-section p {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }
}


/* =========================
   SMALL PHONE FIX
========================= */

@media (max-width: 430px) {

    .brand-title {
        font-size: 18px !important;
        max-width: 220px !important;
    }

    .hero-content h1,
    .home-hero-content h1,
    .hero-text h1,
    .hero-section h1 {
        font-size: 34px !important;
    }

    .hero-content p,
    .home-hero-content p,
    .hero-text p,
    .hero-section p {
        font-size: 17px !important;
    }

    .mobile-nav-buttons {
        grid-template-columns: 1fr !important;
    }
}

/* =====================================================
   PUBLIC RESOURCES FINAL OVERRIDES
   Use only in static/css/resources.css
===================================================== */

/* All Documents text top, filters/search below */
.resources-page .resource-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 18px !important;
}

.resources-page .resource-title-row {
    width: 100% !important;
}

.resources-page .resource-title-row h2 {
    margin-bottom: 6px !important;
}

.resources-page .resource-title-row p {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
}

/* Keep filter/search row clean */
.resources-page .resource-tools {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(220px, 260px) minmax(260px, 1fr) auto auto !important;
    gap: 12px !important;
    align-items: center !important;
}

.resources-page .resource-tools select,
.resources-page .resource-tools input {
    width: 100% !important;
    height: 52px !important;
    border-radius: 14px !important;
    border: 1px solid #dbe8e6 !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 0 18px !important;
    outline: none !important;
}

.resources-page .resource-tools select:focus,
.resources-page .resource-tools input:focus {
    border-color: #14b8a6 !important;
    box-shadow: 0 0 0 4px rgba(20, 184, 166, 0.12) !important;
}

/* Public search/clear buttons */
.resources-page .resources-search-btn,
.resources-page .resources-clear-btn {
    height: 52px !important;
    min-width: 110px !important;
    border-radius: 14px !important;
    border: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    white-space: nowrap !important;
}

.resources-page .resources-search-btn {
    padding: 0 28px !important;
    background: linear-gradient(135deg, #14b8a6, #0f766e) !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(20, 184, 166, 0.22) !important;
}

.resources-page .resources-search-btn:hover {
    background: linear-gradient(135deg, #0f766e, #115e59) !important;
    transform: translateY(-1px) !important;
}

.resources-page .resources-clear-btn {
    padding: 0 24px !important;
    background: #f4fbfa !important;
    color: #0f172a !important;
    border: 1px solid #dbe8e6 !important;
}

/* Empty state */
.resources-empty-public {
    text-align: center !important;
    padding: 50px 20px !important;
}

.resources-empty-public h4 {
    margin-bottom: 8px !important;
    color: #0f172a !important;
    font-weight: 900 !important;
}

.resources-empty-public p {
    color: #64748b !important;
    margin: 0 !important;
}

@media (max-width: 992px) {
    .resources-page .resource-tools {
        max-width: 100% !important;
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 576px) {
    .resources-page .resource-tools {
        grid-template-columns: 1fr !important;
    }

    .resources-page .resources-search-btn,
    .resources-page .resources-clear-btn {
        width: 100% !important;
    }
}
/* =====================================================
   PUBLIC RESOURCES FINAL DESKTOP FIX
   Keep original design. Fix clipping + heading layout only.
===================================================== */

/* Prevent page content from cutting on left/right */
.resources-page {
    overflow-x: hidden !important;
}

.resources-page .container {
    max-width: 1180px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
}

/* Restore desktop 3-column layout */
.resources-page .resources-grid {
    display: grid !important;
    grid-template-columns: 210px minmax(0, 1fr) 220px !important;
    gap: 14px !important;
    align-items: start !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

/* Left panel should not become horizontal on desktop */
.resources-page .resource-left-panel {
    display: block !important;
    position: sticky !important;
    top: 110px !important;
    overflow: visible !important;
    white-space: normal !important;
}

/* Menu normal vertical layout */
.resources-page .resource-menu {
    display: block !important;
    width: 100% !important;
    white-space: normal !important;
    margin-bottom: 7px !important;
}

/* Center card must stay inside screen */
.resources-page .resource-center-panel {
    min-width: 0 !important;
    width: 100% !important;
    overflow: hidden !important;
}

/* Heading text top, filters below */
.resources-page .resource-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 16px !important;
    margin-bottom: 16px !important;
}

.resources-page .resource-title-row {
    width: 100% !important;
}

.resources-page .resource-title-row h2 {
    margin-bottom: 6px !important;
}

.resources-page .resource-title-row p {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 0 !important;
}

/* Filter row */
.resources-page .resource-tools {
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(220px, 260px) minmax(260px, 1fr) 120px auto !important;
    gap: 12px !important;
    align-items: center !important;
}

/* Table should not cut left side */
.resources-page .resource-table-wrap {
    width: 100% !important;
    overflow-x: auto !important;
}

/* Restore right panel desktop position */
.resources-page .resource-right-panel {
    display: grid !important;
    gap: 12px !important;
    position: sticky !important;
    top: 110px !important;
}

/* Tablet */
@media (max-width: 1200px) {
    .resources-page .resources-grid {
        grid-template-columns: 210px minmax(0, 1fr) !important;
    }

    .resources-page .resource-right-panel {
        grid-column: 1 / -1 !important;
        position: static !important;
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* Mobile */
@media (max-width: 991px) {
    .resources-page .resources-grid {
        grid-template-columns: 1fr !important;
    }

    .resources-page .resource-left-panel {
        position: static !important;
        display: flex !important;
        gap: 10px !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
    }

    .resources-page .resource-menu {
        flex: 0 0 auto !important;
        width: auto !important;
        white-space: nowrap !important;
    }

    .resources-page .resource-tools {
        grid-template-columns: 1fr 1fr !important;
    }

    .resources-page .resource-right-panel {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 576px) {
    .resources-page .resource-tools {
        grid-template-columns: 1fr !important;
    }

    .resources-page .resource-right-panel {
        grid-template-columns: 1fr !important;
    }
}