:root {
    --p-navy: #173f4b;
    --p-navy-2: #205c68;
    --p-teal: #15958f;
    --p-teal-dark: #08746f;
    --p-teal-soft: #e8f7f5;
    --p-aqua: #d5f1ed;
    --p-gold: #d5a84e;
    --p-ink: #1b3137;
    --p-muted: #6b7d81;
    --p-line: #dceae8;
    --p-bg: #f5fbfa;
}

body.projects-shell {
    color: var(--p-ink);
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    background: #fff;
}

.projects-nav {
    border-bottom: 1px solid rgba(18, 126, 121, .12);
    background: rgba(248, 253, 252, .88);
    box-shadow: 0 8px 28px rgba(29, 82, 87, .06);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.projects-nav .container { min-height: 62px; }
.navbar-brand { display: flex; align-items: baseline; gap: .45rem; color: var(--p-navy) !important; font-weight: 800; letter-spacing: .03em; }
.navbar-brand small { color: var(--p-teal); font-size: .62rem; letter-spacing: .16em; }
.projects-nav .nav-link { color: #496267; font-size: .9rem; font-weight: 600; }
.projects-nav .nav-link:hover, .projects-nav .nav-link:focus { color: var(--p-teal-dark); }

.btn-projects-gold, .btn-projects-primary { border-color: var(--p-teal); background: var(--p-teal); color: #fff; font-weight: 700; }
.btn-projects-gold:hover, .btn-projects-primary:hover, .btn-projects-primary:focus { border-color: var(--p-teal-dark); background: var(--p-teal-dark); color: #fff; }
.btn-outline-projects { border: 1px solid rgba(8, 116, 111, .32); background: rgba(255, 255, 255, .58); color: var(--p-teal-dark); font-weight: 700; }
.btn-outline-projects:hover, .btn-outline-projects:focus { border-color: var(--p-teal); background: var(--p-teal-soft); color: var(--p-teal-dark); }

.projects-hero { padding: 2.35rem 0 1.6rem; background: linear-gradient(180deg, #f4fbfa 0%, #fff 100%); }
.hero-surface { position: relative; min-height: 370px; overflow: hidden; padding: clamp(2rem, 5vw, 4rem); border: 1px solid rgba(21, 149, 143, .16); border-radius: 2px; background: radial-gradient(circle at 86% 18%, rgba(255, 255, 255, .95) 0 7%, transparent 7.2%), radial-gradient(circle at 90% 30%, rgba(21, 149, 143, .12) 0 20%, transparent 20.3%), linear-gradient(125deg, #effaf8 0%, #d9f3ef 58%, #f7fcfb 100%); box-shadow: 0 22px 60px rgba(26, 104, 103, .1); }
.hero-surface::before { position: absolute; right: -90px; bottom: -155px; width: 410px; height: 410px; border: 1px solid rgba(21, 149, 143, .16); border-radius: 50%; content: ""; }
.hero-content { position: relative; z-index: 2; max-width: 920px; }
.hero-decoration { position: absolute; top: 50%; right: 7%; z-index: 1; color: rgba(8, 116, 111, .08); font-size: clamp(7rem, 15vw, 13rem); line-height: 1; transform: translateY(-50%); }
.eyebrow { color: var(--p-teal-dark); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.projects-hero h1 { max-width: 760px; margin: 0; color: var(--p-navy); font-size: clamp(2rem, 4.3vw, 3.55rem); font-weight: 760; line-height: 1.08; letter-spacing: -.035em; }
.projects-hero .lead { max-width: 680px; color: #587176; font-size: clamp(1rem, 1.5vw, 1.13rem); }
.search-panel { max-width: 900px; margin-top: 1.5rem; padding: .5rem; border: 1px solid rgba(21, 149, 143, .16); border-radius: 2px; background: rgba(255, 255, 255, .88); box-shadow: 0 12px 35px rgba(30, 102, 102, .09); backdrop-filter: blur(8px); }
.search-panel .form-control, .search-panel .form-select, .search-panel .btn { min-height: 42px; border-color: #e2ecea; border-radius: 2px; font-size: .88rem; }

.section-pad { padding: 3.75rem 0; }
.section-soft { background: var(--p-bg); }
.section-title { color: var(--p-navy); font-weight: 750; letter-spacing: -.025em; }
.section-heading-centered { max-width: 620px; margin: 0 auto 2rem; }

.project-card { height: 100%; overflow: hidden; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 8px 26px rgba(29, 79, 82, .055); transition: transform .16s, box-shadow .16s, border-color .16s; }
.project-card:hover { border-color: rgba(21, 149, 143, .26); box-shadow: 0 14px 34px rgba(29, 79, 82, .1); transform: translateY(-3px); }
.project-card-image { position: relative; height: 198px; background: #dfefed; }
.project-card-image img { width: 100%; height: 100%; object-fit: cover; }
.project-badges { position: absolute; top: 12px; left: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.institutional-badge { padding: .35rem .5rem; border-radius: .3rem; background: rgba(8, 116, 111, .92); color: #fff; font-size: .67rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.institutional-badge.gold { background: #f0ce86; color: #3d3424; }
.project-card-body { padding: 1.15rem; }
.project-card h3 { font-size: 1.05rem; line-height: 1.35; }
.project-location { color: var(--p-muted); font-size: .86rem; }
.project-metrics { display: grid; grid-template-columns: 1fr 1fr; margin: .9rem 0; border-top: 1px solid var(--p-line); border-bottom: 1px solid var(--p-line); }
.project-metrics > div { padding: .7rem 0; }
.project-metrics > div + div { padding-left: 1rem; border-left: 1px solid var(--p-line); }
.metric-label { display: block; color: var(--p-muted); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.metric-value { font-weight: 750; }

.category-card { display: block; height: 100%; padding: 1.5rem; border: 1px solid var(--p-line); background: #fff; color: var(--p-ink); }
.category-card i { color: var(--p-teal); font-size: 1.5rem; }

.journey-card { position: relative; height: 100%; padding: 1.5rem; border: 1px solid var(--p-line); border-radius: 2px; background: rgba(255, 255, 255, .88); }
.journey-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: .7rem; background: var(--p-teal-soft); color: var(--p-teal-dark); font-size: 1.15rem; }
.journey-number { position: absolute; top: 1.15rem; right: 1.3rem; color: #c4ddda; font-size: 1.3rem; font-weight: 800; }
.journey-card p { margin-bottom: 0; color: var(--p-muted); font-size: .92rem; line-height: 1.65; }

.homepage-cta { padding: 1.6rem 0 3.8rem; background: #fff; }
.homepage-cta-card { gap: 2rem; padding: clamp(1.6rem, 4vw, 2.6rem); border: 1px solid rgba(21, 149, 143, .16); border-radius: 2px; background: linear-gradient(120deg, #edf9f7, #dff4f1); }
.homepage-cta-card h2 { color: var(--p-navy); }
.homepage-cta-card p { max-width: 720px; color: var(--p-muted); }

.search-page-hero { padding: 1.65rem 0 0; background: linear-gradient(180deg, #f4fbfa, #fff); }
.search-page-hero-card { position: relative; display: flex; min-height: 178px; overflow: hidden; align-items: center; justify-content: space-between; padding: 2rem 2.25rem; border: 1px solid rgba(21, 149, 143, .15); border-radius: 2px; background: linear-gradient(120deg, #effaf8, #ddf4f1); }
.search-page-hero-card > div { position: relative; z-index: 2; }
.search-page-hero-card h1 { font-size: clamp(1.8rem, 3.2vw, 2.65rem); }
.search-page-hero-card p { max-width: 660px; color: #61777b; }
.search-page-hero-icon { position: absolute; right: 4%; display: grid; width: 112px; height: 112px; place-items: center; border: 1px solid rgba(21, 149, 143, .13); border-radius: 50%; background: rgba(255, 255, 255, .35); color: rgba(8, 116, 111, .18); font-size: 3.25rem; }
.search-results-section { padding: 2.25rem 0 4rem; }

.filter-panel, .detail-panel, .dashboard-panel { border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 5px 22px rgba(29, 79, 82, .05); }
.filter-panel { position: sticky; top: 78px; padding: 0 1.1rem 1.1rem; border-radius: 2px; }
.filter-panel-header { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin: 0 -1.1rem 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid var(--p-line); background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); }
.filter-panel-header > div { display: flex; align-items: center; gap: .55rem; }
.filter-panel-header a { color: var(--p-teal-dark); font-weight: 700; }
.filter-panel-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.filter-group { margin-bottom: .9rem; }
.filter-group .form-label { margin-bottom: .35rem; color: #3e585d; font-size: .74rem; font-weight: 750; letter-spacing: .025em; }
.filter-group .form-control, .filter-group .form-select { min-height: 40px; border-color: #dce9e7; border-radius: 2px; background-color: #fbfdfd; color: var(--p-ink); font-size: .84rem; }
.filter-group .form-control:focus, .filter-group .form-select:focus, .sort-form .form-select:focus { border-color: rgba(21, 149, 143, .55); background-color: #fff; box-shadow: 0 0 0 .2rem rgba(21, 149, 143, .1); }
.filter-input-icon { position: relative; }
.filter-input-icon > i { position: absolute; top: 50%; left: .75rem; z-index: 1; color: #8aa09f; font-size: .82rem; transform: translateY(-50%); }
.filter-input-icon .form-control { padding-left: 2.15rem; }
.filter-checks { display: grid; gap: .55rem; padding: .85rem; border-radius: 2px; background: var(--p-bg); }
.filter-checks .form-check { min-height: auto; margin: 0; }
.filter-checks .form-check-label { color: #536c70; font-size: .8rem; }
.filter-checks .form-check-input:checked { border-color: var(--p-teal); background-color: var(--p-teal); }
.filter-count { display: inline-grid; min-width: 22px; height: 22px; margin-left: .4rem; place-items: center; border-radius: 50%; background: var(--p-teal); color: #fff; font-size: .72rem; }

.results-toolbar { display: flex; min-height: 64px; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; padding: .65rem .8rem .65rem 1rem; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 5px 20px rgba(29, 79, 82, .04); }
.results-count { margin-right: .4rem; color: var(--p-navy); font-size: 1.25rem; font-weight: 800; }
.results-label { color: var(--p-muted); font-size: .86rem; }
.sort-form { display: flex; align-items: center; gap: .6rem; }
.sort-form label { flex: 0 0 auto; margin: 0; color: var(--p-muted); font-weight: 650; }
.sort-form .form-select { min-width: 190px; min-height: 40px; border-color: var(--p-line); border-radius: 2px; color: #465f63; font-size: .82rem; }
.search-empty { display: flex; min-height: 340px; flex-direction: column; align-items: center; justify-content: center; padding: 2rem; border: 1px dashed #bcd9d6; border-radius: 2px; background: var(--p-bg); text-align: center; }
.search-empty > span { display: grid; width: 52px; height: 52px; margin-bottom: 1rem; place-items: center; border-radius: 50%; background: var(--p-teal-soft); color: var(--p-teal-dark); font-size: 1.25rem; }
.search-empty h2 { color: var(--p-navy); }
.search-empty p { color: var(--p-muted); }
.search-pagination .page-link { min-width: 38px; margin: 0 .18rem; border: 1px solid var(--p-line); border-radius: 2px !important; color: var(--p-teal-dark); text-align: center; }
.search-results-section .project-card, .search-results-section .btn { border-radius: 2px; }
.search-pagination .page-item.active .page-link { border-color: var(--p-teal); background: var(--p-teal); color: #fff; }

.detail-hero { padding: 3.5rem 0; background: linear-gradient(125deg, var(--p-navy), var(--p-teal-dark)); color: #fff; }
.detail-cover { width: 100%; max-height: 520px; object-fit: cover; }
.detail-stat { padding: 1rem; border-left: 3px solid var(--p-teal); background: #f5fbfa; }
.detail-stat small { display: block; color: var(--p-muted); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
.detail-section { padding: 1.5rem; border-top: 1px solid var(--p-line); }
.detail-section:first-child { border-top: 0; }
.privacy-gate { padding: 2rem; border: 1px solid #b9dfda; background: #f4fbfa; }

.project-detail-hero { padding: 1.5rem 0 0; background: linear-gradient(180deg, #f4fbfa, #fff); }
.project-detail-hero-card { position: relative; display: flex; min-height: 255px; overflow: hidden; align-items: flex-end; justify-content: space-between; gap: 2rem; padding: 2rem 2.25rem; border: 1px solid rgba(21, 149, 143, .16); border-radius: 2px; background: linear-gradient(122deg, #eef9f7 0%, #dff4f1 62%, #f7fcfb 100%); }
.project-detail-heading { position: relative; z-index: 2; max-width: 820px; }
.project-detail-back { display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1.35rem; color: #61797d; font-size: .76rem; font-weight: 650; }
.project-detail-back:hover { color: var(--p-teal-dark); }
.project-detail-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: .8rem; }
.project-detail-hero h1 { max-width: 850px; margin: .4rem 0 .65rem; color: var(--p-navy); font-size: clamp(2rem, 4vw, 3rem); font-weight: 780; line-height: 1.08; letter-spacing: -.035em; }
.project-detail-location { margin: 0; color: #60787c; font-size: .9rem; }
.project-save-button { position: relative; z-index: 2; flex: 0 0 auto; border-radius: 2px; background: rgba(255, 255, 255, .58); }
.project-save-button.btn-projects-primary { border-color: var(--p-teal); background: var(--p-teal); color: #fff; }
.project-save-button.btn-projects-primary:hover, .project-save-button.btn-projects-primary:focus { border-color: var(--p-teal-dark); background: var(--p-teal-dark); color: #fff; }
.project-detail-hero-icon { position: absolute; right: 7%; bottom: -30%; color: rgba(8, 116, 111, .065); font-size: 12rem; line-height: 1; }
.project-detail-content { padding: 1.5rem 0 4rem; }
.detail-cover-frame { height: clamp(290px, 40vw, 430px); overflow: hidden; margin-bottom: 1rem; border: 1px solid var(--p-line); border-radius: 2px; background: #eaf3f2; }
.detail-cover-frame .detail-cover { width: 100%; height: 100%; max-height: none; object-fit: cover; }
.project-detail-main { border-radius: 2px; }
.project-detail-main .detail-section { padding: 1.25rem 1.4rem; }
.project-detail-main .detail-section h2 { margin-bottom: .7rem; color: var(--p-navy); font-size: 1.08rem; font-weight: 750; }
.project-detail-main .detail-section .text-secondary { color: #63777b !important; font-size: .92rem; line-height: 1.72; }
.project-detail-main .list-group-item { padding: .8rem 0; border-color: var(--p-line); color: #425a5f; font-size: .86rem; }
.project-detail-sidebar { position: sticky; top: 78px; }
.opportunity-profile-card, .sponsor-card { padding: 1rem; border-radius: 2px; }
.detail-card-heading { display: flex; align-items: center; gap: .65rem; margin-bottom: .8rem; padding-bottom: .75rem; border-bottom: 1px solid var(--p-line); }
.detail-card-heading > span { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.detail-card-heading > div { display: flex; flex-direction: column; }
.detail-card-heading small { color: var(--p-muted); font-size: .59rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.detail-card-heading h2 { margin: .1rem 0 0; color: var(--p-navy); font-size: .98rem; font-weight: 750; }
.opportunity-stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
.opportunity-profile-card .detail-stat { display: flex; min-height: 62px; align-items: flex-start; gap: .5rem; padding: .6rem; border: 1px solid #e1ecea; border-left: 1px solid #e1ecea; border-radius: 2px; background: #f8fcfb; }
.opportunity-profile-card .detail-stat > i { margin-top: .05rem; color: #69a9a4; font-size: .78rem; }
.opportunity-profile-card .detail-stat > div { min-width: 0; }
.opportunity-profile-card .detail-stat small { margin-bottom: .15rem; color: #819295; font-size: .56rem; line-height: 1.2; letter-spacing: .045em; }
.opportunity-profile-card .detail-stat strong { display: block; overflow-wrap: anywhere; color: #314b50; font-size: .76rem; line-height: 1.3; }
.opportunity-profile-card .detail-stat:nth-child(-n+2) { border-color: rgba(21, 149, 143, .18); background: var(--p-teal-soft); }
.opportunity-profile-card .detail-stat:nth-child(-n+2) strong { color: var(--p-teal-dark); }
.sponsor-card { margin-top: 1rem; }
.sponsor-identity { display: flex; align-items: center; gap: .65rem; }
.sponsor-identity > span { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(21, 149, 143, .2); border-radius: 2px; background: #f5fbfa; color: var(--p-teal-dark); font-weight: 800; }
.sponsor-identity > div { display: flex; min-width: 0; flex-direction: column; }
.sponsor-identity strong { overflow: hidden; color: var(--p-navy); font-size: .85rem; text-overflow: ellipsis; white-space: nowrap; }
.sponsor-identity small { margin-top: .15rem; color: #6f8589; font-size: .67rem; }
.sponsor-identity small i { color: var(--p-teal); }
.sponsor-card > p { margin: .75rem 0 0; color: var(--p-muted); font-size: .73rem; line-height: 1.5; }
.sponsor-card > .btn { margin-top: .8rem; border-radius: 2px; font-size: .8rem; }
.project-detail-content .privacy-gate { padding: 1.25rem; border-radius: 2px; }
.project-detail-content .btn, .project-detail-content .form-control, .project-detail-content .form-select, .project-detail-content .modal-content { border-radius: 2px; }

.projects-footer { background: #17454f; color: #fff; }
.projects-footer a { display: block; margin: .35rem 0; color: rgba(255, 255, 255, .7); }
.footer-brand { font-weight: 800; letter-spacing: .05em; }
.footer-brand span { color: #80d8d1; }

.admin-shell { min-height: 68vh; padding: 2rem 0 4rem; }
.admin-page-header { display: flex; min-height: 116px; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; padding: 1.35rem 1.5rem; border: 1px solid rgba(21, 149, 143, .15); border-radius: 2px; background: linear-gradient(120deg, #effaf8, #e2f5f2); }
.admin-page-title { display: flex; align-items: center; gap: 1rem; }
.admin-page-title > span { display: grid; flex: 0 0 48px; width: 48px; height: 48px; place-items: center; border-radius: 2px; background: rgba(255, 255, 255, .68); color: var(--p-teal-dark); font-size: 1.2rem; }
.admin-page-title h1 { font-size: 1.7rem; }
.admin-page-title p { margin-top: .3rem; color: var(--p-muted); font-size: .88rem; }
.admin-shell .btn, .admin-shell .badge { border-radius: 2px; }
.admin-filter-bar { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; padding: .75rem; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 5px 20px rgba(29, 79, 82, .04); }
.admin-filter-label { display: flex; flex: 0 0 auto; align-items: center; gap: .45rem; padding: 0 .35rem; color: #5a7175; font-size: .76rem; font-weight: 750; }
.admin-filter-label i { color: var(--p-teal); }
.admin-status-filters { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: .35rem; }
.admin-status-filters .btn { border: 1px solid transparent; background: #f5faf9; color: #597074; font-size: .75rem; font-weight: 650; }
.admin-status-filters .btn:hover { border-color: rgba(21, 149, 143, .25); color: var(--p-teal-dark); }
.admin-status-filters .btn.active { border-color: rgba(21, 149, 143, .25); background: var(--p-teal-soft); color: var(--p-teal-dark); }
.admin-result-count { flex: 0 0 auto; padding-left: .85rem; border-left: 1px solid var(--p-line); color: var(--p-muted); font-size: .78rem; }
.admin-result-count strong { color: var(--p-navy); }
.admin-table-panel { border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 5px 22px rgba(29, 79, 82, .05); }
.admin-table-panel .table { --bs-table-hover-bg: #f5fbfa; color: #3f565b; font-size: .84rem; }
.admin-table-panel .table thead th { padding: .85rem 1rem; border-bottom: 1px solid var(--p-line); background: #f1f9f8; color: #5c7377; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.admin-table-panel .table tbody td { padding: .9rem 1rem; border-color: #e7efee; vertical-align: middle; }
.admin-table-panel .table tbody tr:last-child td { border-bottom: 0; }
.admin-project-title { display: block; max-width: 280px; margin-bottom: .25rem; color: var(--p-navy); }
.admin-date { color: var(--p-muted); font-size: .78rem; white-space: nowrap; }
.admin-row-actions { display: flex; min-width: 270px; flex-wrap: wrap; gap: .3rem; }
.admin-row-actions .btn { padding: .28rem .48rem; font-size: .7rem; }
.admin-empty { display: flex; min-height: 300px; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.admin-empty > span { display: grid; width: 48px; height: 48px; margin-bottom: .85rem; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); font-size: 1.15rem; }
.admin-empty h2 { color: var(--p-navy); }
.admin-empty p { margin-bottom: 0; color: var(--p-muted); }

.dashboard-shell { min-height: 68vh; padding: 2rem 0 4rem; }
.dashboard-shell .row { align-items: flex-start; }
.dashboard-menu-toggle { margin-bottom: 1rem; border-radius: 2px; }
.dashboard-sidebar { position: sticky; top: 78px; min-height: 0; padding: .8rem; border: 1px solid var(--p-line); border-radius: 2px; background: rgba(255, 255, 255, .94); box-shadow: 0 8px 28px rgba(29, 79, 82, .055); }
.dashboard-sidebar-heading { display: flex; align-items: center; gap: .7rem; margin-bottom: .65rem; padding: .6rem .55rem .9rem; border-bottom: 1px solid var(--p-line); }
.dashboard-sidebar-heading > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.dashboard-sidebar-heading > div { display: flex; flex-direction: column; line-height: 1.15; }
.dashboard-sidebar-heading small { color: var(--p-muted); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.dashboard-sidebar-heading strong { color: var(--p-navy); font-size: .95rem; }
.dashboard-sidebar a { display: flex; align-items: center; gap: .65rem; margin: 2px 0; padding: .66rem .7rem; border-radius: 2px; color: #536b70; font-size: .86rem; font-weight: 650; }
.dashboard-sidebar a > i { width: 19px; color: #78908f; text-align: center; }
.dashboard-sidebar a:hover { background: var(--p-bg); color: var(--p-teal-dark); }
.dashboard-sidebar a.active { background: var(--p-teal-soft); color: var(--p-teal-dark); }
.dashboard-sidebar a.active > i { color: var(--p-teal); }
.dashboard-sidebar-divider { height: 1px; margin: .65rem .45rem; background: var(--p-line); }
.dashboard-page-header { display: flex; min-height: 90px; align-items: center; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.25rem; padding: 1.25rem 1.4rem; border: 1px solid rgba(21, 149, 143, .15); border-radius: 2px; background: linear-gradient(120deg, #effaf8, #e2f5f2); }
.dashboard-page-header h1 { font-size: 1.65rem; }
.dashboard-page-header .btn, .dashboard-shell .btn { border-radius: 2px; }
.dashboard-shell .btn-primary { border-color: var(--p-teal); background: var(--p-teal); }
.dashboard-shell .btn-primary:hover, .dashboard-shell .btn-primary:focus { border-color: var(--p-teal-dark); background: var(--p-teal-dark); }
.dashboard-shell .btn-outline-primary { border-color: rgba(8, 116, 111, .35); color: var(--p-teal-dark); }
.dashboard-shell .btn-outline-primary:hover { border-color: var(--p-teal); background: var(--p-teal); color: #fff; }
.dashboard-panel:not(.table-responsive) { overflow: hidden; }
.dashboard-shell .project-card { border-radius: 2px; }
.dashboard-metric { display: flex; align-items: center; gap: 1rem; padding: 1.2rem; }
.dashboard-metric-icon { display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); font-size: 1.1rem; }
.dashboard-metric-value { color: var(--p-navy); font-size: 1.65rem; font-weight: 800; line-height: 1.05; }
.dashboard-metric-label { margin-top: .25rem; color: var(--p-muted); font-size: .78rem; }
.dashboard-workspace-note { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; background: linear-gradient(120deg, #fff, #f1faf9); }
.dashboard-workspace-note > span { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.dashboard-workspace-note h2 { color: var(--p-navy); }
.dashboard-workspace-note p { color: var(--p-muted); font-size: .88rem; }
.dashboard-shell .table { --bs-table-hover-bg: #f5fbfa; color: #3f565b; font-size: .86rem; }
.dashboard-shell .table thead th { padding: .85rem 1rem; border-bottom: 1px solid var(--p-line); background: #f1f9f8; color: #5c7377; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.dashboard-shell .table tbody td { padding: .9rem 1rem; border-color: #e7efee; vertical-align: middle; }
.dashboard-shell .table tbody tr:last-child td { border-bottom: 0; }
.dashboard-shell .badge { border-radius: 2px; font-weight: 650; }
.dashboard-shell .list-group-item { border-color: var(--p-line); }
.dashboard-shell .form-control, .dashboard-shell .form-select { border-radius: 2px; }
.empty-state { padding: 3rem 1rem; color: var(--p-muted); text-align: center; }
.empty-state i { display: block; margin-bottom: .65rem; color: #9bbab8; font-size: 2rem; }
.table-responsive { border-radius: 2px; }

.project-document-manager { margin-top: .35rem; padding: 1rem; border: 1px solid var(--p-line); border-radius: 2px; background: #f8fcfb; }
.project-document-manager-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.project-document-manager-head > div { display: flex; align-items: baseline; gap: .65rem; }
.project-document-manager-head strong { color: var(--p-navy); }
.project-document-manager-head small { color: var(--p-muted); }
.project-document-row { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: .75rem; padding: .8rem 0; border-top: 1px solid var(--p-line); }
.project-document-row:first-of-type { border-top: 0; }
.project-document-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 2px; background: #e7f6f3; color: var(--p-teal-dark); }
.project-document-form { min-width: 0; }
.project-document-fields { display: grid; grid-template-columns: minmax(180px, 1fr) 170px 90px; gap: .5rem; }
.project-document-fields .form-control, .project-document-fields .form-select { border-radius: 2px; }
.project-document-meta { margin-top: .4rem; color: var(--p-muted); font-size: .73rem; }
.project-document-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .55rem; }
.project-document-actions .btn { display: inline-flex; align-items: center; gap: .35rem; border-radius: 2px; }
.project-gallery-manager { margin-top: .35rem; padding: 1rem; border: 1px solid var(--p-line); border-radius: 2px; background: #f8fcfb; }
.project-gallery-manager-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.project-gallery-manager-item { overflow: hidden; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; }
.project-gallery-manager-item > img { width: 100%; height: 130px; object-fit: cover; }
.project-gallery-manager-fields { display: grid; gap: .45rem; padding: .65rem; }
.project-gallery-manager-fields .form-control { border-radius: 2px; }
.project-cover-manager { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 1rem; align-items: center; padding: .85rem; border: 1px solid rgba(21,149,143,.28); border-radius: 2px; background: linear-gradient(120deg, #f1faf8, #fbfefd); }
.project-cover-manager.has-cover { border-left: 3px solid var(--p-teal); }
.project-cover-manager > img { width: 210px; height: 118px; border: 1px solid var(--p-line); border-radius: 2px; object-fit: cover; background: #eaf4f2; }
.project-cover-manager-copy { min-width: 0; }
.project-cover-manager-copy > strong { display: block; margin: .2rem 0 .25rem; color: var(--p-navy); font-size: 1rem; }
.project-cover-manager-copy p { margin: 0 0 .55rem; color: var(--p-muted); font-size: .82rem; }
.project-cover-status { display: inline-flex; align-items: center; gap: .35rem; color: var(--p-teal-dark); font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.project-cover-upload { padding: .85rem; border: 1px solid var(--p-line); border-radius: 2px; background: #fbfefd; }
.project-cover-upload .form-label { color: var(--p-navy); font-weight: 750; }
.sponsor-confidential { display: flex; align-items: center; gap: .75rem; margin-bottom: .8rem; padding: .75rem; border: 1px solid var(--p-line); border-radius: 2px; background: #f4faf9; }
.sponsor-confidential > span { display: grid; flex: 0 0 38px; width: 38px; height: 38px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.sponsor-confidential strong { color: var(--p-navy); }
.sponsor-confidential p { margin: .15rem 0 0; font-size: .78rem; }
.project-detail-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.project-detail-gallery figure { overflow: hidden; margin: 0; border: 1px solid var(--p-line); border-radius: 2px; background: #f5faf9; }
.project-detail-gallery img { width: 100%; height: 220px; object-fit: cover; transition: transform .25s ease; }
.project-detail-gallery a:hover img { transform: scale(1.02); }
.project-detail-gallery figcaption { padding: .55rem .7rem; color: var(--p-muted); font-size: .78rem; }
.admin-reference-nav { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1rem; }
.admin-reference-nav a { display: inline-flex; align-items: center; gap: .45rem; padding: .6rem .75rem; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; color: var(--p-teal-dark); font-size: .8rem; font-weight: 700; }
.admin-reference-nav a:hover { border-color: rgba(21,149,143,.35); background: var(--p-teal-soft); }
.admin-reference-sections { display: grid; gap: 1rem; }
.admin-reference-panel { scroll-margin-top: 80px; overflow: hidden; border: 1px solid var(--p-line); border-radius: 2px; background: #fff; box-shadow: 0 8px 26px rgba(29,79,82,.045); }
.admin-reference-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1rem; border-bottom: 1px solid var(--p-line); background: #f1f9f8; }
.admin-reference-heading > div { display: flex; align-items: center; gap: .55rem; }
.admin-reference-heading i { color: var(--p-teal); }
.admin-reference-heading h2 { margin: 0; color: var(--p-navy); font-size: 1rem; }
.admin-reference-heading > span { color: var(--p-muted); font-size: .74rem; }
.admin-reference-form { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; padding: .65rem 1rem; border-top: 1px solid #edf3f2; }
.admin-reference-form:first-child { border-top: 0; }
.admin-reference-form > .form-control:not(.admin-reference-order), .admin-reference-form > .form-select { flex: 1 1 150px; width: auto; min-width: 120px; border-radius: 2px; }
.admin-reference-create { border-top: 0; border-bottom: 1px solid var(--p-line); background: #fbfefd; }
.admin-reference-order { flex: 0 0 72px; width: 72px; border-radius: 2px; }
.admin-reference-active { display: flex; align-items: center; gap: .35rem; min-width: 64px; margin: 0; color: var(--p-muted); font-size: .76rem; }
.admin-reference-actions { display: flex; gap: .35rem; margin-left: auto; }
.admin-reference-actions .btn, .admin-reference-create .btn { border-radius: 2px; }
.notification-list { overflow: hidden; }
.notification-item { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .9rem 1rem; border-bottom: 1px solid var(--p-line); }
.notification-item:last-child { border-bottom: 0; }
.notification-item.is-unread { background: linear-gradient(90deg, #eef9f7, #fff); box-shadow: inset 3px 0 var(--p-teal); }
.notification-item.is-read { background: #fff; }
.notification-item-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 2px; background: var(--p-teal-soft); color: var(--p-teal-dark); }
.notification-item-copy { min-width: 0; }
.notification-item-copy strong { color: var(--p-navy); }
.notification-item-copy small { color: var(--p-muted); font-size: .7rem; }
.notification-item-copy p { margin: .2rem 0 0; color: var(--p-muted); font-size: .82rem; }
.notification-item-actions { display: flex; align-items: center; gap: .3rem; }
.notification-item-actions .btn { border-radius: 2px; white-space: nowrap; }
.deal-message-list { max-height: 500px; overflow: auto; border-radius: 2px; background: #fbfefd; }
.deal-message-body { color: #455d62; white-space: pre-wrap; overflow-wrap: anywhere; }
.deal-message-item.is-new { animation: projects-message-in .25s ease-out; }
@keyframes projects-message-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 991.98px) {
    .projects-nav .navbar-collapse { margin-top: .75rem; padding: .75rem; border: 1px solid var(--p-line); border-radius: 2px; background: rgba(255, 255, 255, .96); }
    .projects-hero { padding-top: 1.5rem; }
    .hero-surface { min-height: auto; }
    .filter-panel { position: static; margin-bottom: .25rem; }
    .filter-panel-header { position: static; }
    .dashboard-shell { padding-top: 1rem; }
    .admin-shell { padding-top: 1rem; }
    .admin-filter-bar { align-items: flex-start; flex-direction: column; }
    .admin-result-count { width: 100%; padding-top: .6rem; padding-left: 0; border-top: 1px solid var(--p-line); border-left: 0; }
    .dashboard-sidebar { position: static; min-height: auto; margin-bottom: .25rem; }
    .dashboard-page-header { min-height: 80px; }
    .project-detail-sidebar { position: static; }
    .project-card-image { height: 190px; }
}

@media (max-width: 575.98px) {
    .projects-nav .container { min-height: 54px; }
    .section-pad { padding: 2.8rem 0; }
    .projects-hero { padding: .9rem 0 1.2rem; }
    .hero-surface { padding: 1.55rem 1.2rem; border-radius: 2px; }
    .projects-hero h1 { font-size: 2rem; }
    .hero-decoration { display: none; }
    .search-panel { padding: .65rem; }
    .search-page-hero { padding-top: .9rem; }
    .search-page-hero-card { min-height: 150px; padding: 1.4rem 1.2rem; border-radius: 2px; }
    .search-page-hero-icon { right: -25px; width: 100px; height: 100px; opacity: .65; }
    .search-page-hero-card p { max-width: 82%; font-size: .9rem; }
    .search-results-section { padding: 1.3rem 0 3rem; }
    .results-toolbar { align-items: flex-start; flex-direction: column; padding: .85rem; }
    .sort-form { width: 100%; justify-content: space-between; }
    .sort-form .form-select { min-width: 0; flex: 1 1 auto; }
    .detail-hero { padding: 2.5rem 0; }
    .project-metrics { grid-template-columns: 1fr; }
    .project-metrics > div + div { padding-left: 0; border-top: 1px solid var(--p-line); border-left: 0; }
    .homepage-cta { padding-bottom: 2.8rem; }
    .dashboard-page-header { align-items: flex-start; flex-direction: column; padding: 1rem; }
    .dashboard-page-action, .dashboard-page-action .btn { width: 100%; }
    .dashboard-metric { padding: 1rem; }
    .admin-page-header { align-items: stretch; flex-direction: column; padding: 1rem; }
    .admin-page-header > .d-flex { width: 100%; }
    .admin-page-header > .d-flex .btn { flex: 1 1 145px; }
    .admin-page-title { align-items: flex-start; }
    .admin-page-title > span { flex-basis: 40px; width: 40px; height: 40px; }
    .admin-page-header > .btn { width: 100%; }
    .admin-status-filters { width: 100%; }
    .admin-status-filters .btn { flex: 1 1 calc(50% - .35rem); }
    .project-detail-hero { padding-top: .9rem; }
    .project-detail-hero-card { min-height: 225px; align-items: flex-start; flex-direction: column; gap: 1rem; padding: 1.25rem; }
    .project-detail-back { margin-bottom: 1rem; }
    .project-detail-hero h1 { font-size: 1.85rem; }
    .project-detail-hero-icon { display: none; }
    .project-save-button { width: 100%; }
    .project-detail-content { padding-top: 1rem; }
    .detail-cover-frame { height: 260px; }
    .project-detail-main .detail-section { padding: 1.05rem; }
    .project-document-row { grid-template-columns: 1fr; }
    .project-document-icon { display: none; }
    .project-document-fields { grid-template-columns: 1fr; }
    .project-document-actions .btn { flex: 1 1 auto; justify-content: center; }
    .project-gallery-manager-grid, .project-detail-gallery { grid-template-columns: 1fr; }
    .project-gallery-manager-item > img, .project-detail-gallery img { height: 210px; }
    .project-cover-manager { grid-template-columns: 1fr; }
    .project-cover-manager > img { width: 100%; height: 190px; }
    .admin-reference-form { align-items: stretch; flex-direction: column; }
    .admin-reference-form > .form-control:not(.admin-reference-order), .admin-reference-form > .form-select, .admin-reference-order { flex: 0 0 auto; width: 100%; }
    .admin-reference-actions { width: 100%; margin-left: 0; }
    .admin-reference-actions .btn { flex: 1 1 auto; }
    .notification-item { grid-template-columns: 34px minmax(0, 1fr); }
    .notification-item-actions { grid-column: 2; flex-wrap: wrap; }
}
