:root {
    --nav-ink: #141516;
    --nav-muted: #4f5662;
    --nav-line: rgba(20, 21, 22, 0.1);
    --nav-surface: rgba(255, 255, 255, 0.9);
    --nav-accent: #0d6efd;
    --nav-accent-soft: rgba(13, 110, 253, 0.12);
    --nav-profile-accent: #b54708;
    --nav-profile-accent-hover: #93370d;
    --nav-shadow: 0 10px 26px rgba(15, 23, 42, 0.08);
    --app-bg: #f4f7fb;
    --app-surface: #ffffff;
    --app-surface-soft: #f8faff;
    --app-text: #162235;
    --app-muted: #5f6f84;
    --app-border: rgba(22, 34, 53, 0.12);
    --app-link: #0d6efd;
    --app-link-hover: #0a58ca;
    --app-primary: #0d6efd;
    --app-primary-hover: #0b5ed7;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #ffffff 0%, #f4f7fb 48%, #ecf2fa 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 255, 0.9));
    --app-footer-bg: rgba(255, 255, 255, 0.84);
    --app-table-head-bg: #e9f2ff;
    --app-table-head-text: #1a2b45;
    --app-input-bg: #ffffff;
    --app-input-border: rgba(22, 34, 53, 0.2);
    --app-input-focus: rgba(13, 110, 253, 0.22);
    --app-soft-accent: rgba(13, 110, 253, 0.08);
    --app-shadow-soft: 0 10px 24px rgba(15, 23, 42, 0.08);
}

body[data-theme="ocean"] {
    --nav-ink: #0f3840;
    --nav-muted: #43656a;
    --nav-line: rgba(15, 56, 64, 0.16);
    --nav-surface: rgba(230, 247, 246, 0.9);
    --app-bg: #eaf6f5;
    --app-surface: #f6fffe;
    --app-surface-soft: #e8f8f7;
    --app-text: #12343a;
    --app-muted: #4e7276;
    --app-border: rgba(18, 52, 58, 0.16);
    --app-link: #0f8b8d;
    --app-link-hover: #0b6f71;
    --app-primary: #0f8b8d;
    --app-primary-hover: #0b6f71;
    --nav-accent: #0f8b8d;
    --nav-accent-soft: rgba(15, 139, 141, 0.14);
    --nav-profile-accent: #c2410c;
    --nav-profile-accent-hover: #9a3412;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #f8fffe 0%, #eaf6f5 46%, #d8ecea 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(250, 255, 255, 0.96), rgba(235, 248, 247, 0.92));
    --app-footer-bg: rgba(240, 252, 250, 0.9);
    --app-table-head-bg: #d9efee;
    --app-table-head-text: #143f45;
    --app-input-bg: #fcffff;
    --app-input-border: rgba(15, 95, 100, 0.26);
    --app-input-focus: rgba(15, 139, 141, 0.22);
    --app-soft-accent: rgba(15, 139, 141, 0.1);
    --app-shadow-soft: 0 10px 24px rgba(10, 95, 100, 0.12);
}

body[data-theme="forest"] {
    --nav-ink: #1c3c2a;
    --nav-muted: #4d6f5b;
    --nav-line: rgba(28, 60, 42, 0.16);
    --nav-surface: rgba(236, 248, 238, 0.9);
    --app-bg: #eef7ef;
    --app-surface: #f8fff8;
    --app-surface-soft: #eaf6ec;
    --app-text: #1b3a26;
    --app-muted: #5b7a66;
    --app-border: rgba(27, 58, 38, 0.16);
    --app-link: #2f855a;
    --app-link-hover: #276749;
    --app-primary: #2f855a;
    --app-primary-hover: #276749;
    --nav-accent: #2f855a;
    --nav-accent-soft: rgba(47, 133, 90, 0.14);
    --nav-profile-accent: #b45309;
    --nav-profile-accent-hover: #92400e;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #f8fdf8 0%, #eef7ef 46%, #dcecdc 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(250, 255, 250, 0.96), rgba(238, 247, 239, 0.92));
    --app-footer-bg: rgba(243, 252, 243, 0.9);
    --app-table-head-bg: #dff0e5;
    --app-table-head-text: #214d34;
    --app-input-bg: #fcfffc;
    --app-input-border: rgba(39, 103, 73, 0.28);
    --app-input-focus: rgba(47, 133, 90, 0.22);
    --app-soft-accent: rgba(47, 133, 90, 0.1);
    --app-shadow-soft: 0 10px 24px rgba(39, 103, 73, 0.12);
}

body[data-theme="slate"] {
    --nav-ink: #1f2b3a;
    --nav-muted: #556275;
    --nav-line: rgba(31, 43, 58, 0.16);
    --nav-surface: rgba(237, 242, 248, 0.9);
    --app-bg: #eef1f5;
    --app-surface: #f7f9fc;
    --app-surface-soft: #e9eef5;
    --app-text: #1f2937;
    --app-muted: #5f6b7b;
    --app-border: rgba(31, 41, 55, 0.16);
    --app-link: #475569;
    --app-link-hover: #334155;
    --app-primary: #475569;
    --app-primary-hover: #334155;
    --nav-accent: #475569;
    --nav-accent-soft: rgba(71, 85, 105, 0.16);
    --nav-profile-accent: #c2410c;
    --nav-profile-accent-hover: #9a3412;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #fafbfc 0%, #eef1f5 46%, #dde3ea 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(251, 252, 253, 0.96), rgba(238, 241, 245, 0.92));
    --app-footer-bg: rgba(246, 248, 251, 0.9);
    --app-table-head-bg: #dde4ec;
    --app-table-head-text: #2a3543;
    --app-input-bg: #fcfdff;
    --app-input-border: rgba(51, 65, 85, 0.3);
    --app-input-focus: rgba(71, 85, 105, 0.24);
    --app-soft-accent: rgba(71, 85, 105, 0.1);
    --app-shadow-soft: 0 10px 24px rgba(30, 41, 59, 0.14);
}

body[data-theme="sunset"] {
    --nav-ink: #5a2c1c;
    --nav-muted: #805642;
    --nav-line: rgba(90, 44, 28, 0.16);
    --nav-surface: rgba(255, 244, 234, 0.92);
    --app-bg: #fff4ea;
    --app-surface: #fffaf5;
    --app-surface-soft: #ffefe2;
    --app-text: #4a2b1f;
    --app-muted: #855f4e;
    --app-border: rgba(74, 43, 31, 0.14);
    --app-link: #dd6b20;
    --app-link-hover: #c05621;
    --app-primary: #dd6b20;
    --app-primary-hover: #c05621;
    --nav-accent: #dd6b20;
    --nav-accent-soft: rgba(221, 107, 32, 0.14);
    --nav-profile-accent: #0f766e;
    --nav-profile-accent-hover: #115e59;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #fffdf8 0%, #fff4ea 46%, #ffe5d4 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(255, 252, 248, 0.96), rgba(255, 244, 234, 0.92));
    --app-footer-bg: rgba(255, 248, 242, 0.9);
    --app-table-head-bg: #ffe5d1;
    --app-table-head-text: #6a3a24;
    --app-input-bg: #fffdfb;
    --app-input-border: rgba(192, 86, 33, 0.32);
    --app-input-focus: rgba(221, 107, 32, 0.24);
    --app-soft-accent: rgba(221, 107, 32, 0.1);
    --app-shadow-soft: 0 10px 24px rgba(192, 86, 33, 0.14);
}

body[data-theme="sand"] {
    --nav-ink: #4d3b28;
    --nav-muted: #74614b;
    --nav-line: rgba(77, 59, 40, 0.18);
    --nav-surface: rgba(248, 238, 224, 0.92);
    --app-bg: #f6efe3;
    --app-surface: #fffaf1;
    --app-surface-soft: #f4eadc;
    --app-text: #3c2d1f;
    --app-muted: #6c5945;
    --app-border: rgba(77, 59, 40, 0.16);
    --app-link: #9a6a2f;
    --app-link-hover: #7f5522;
    --app-primary: #9a6a2f;
    --app-primary-hover: #7f5522;
    --nav-accent: #9a6a2f;
    --nav-accent-soft: rgba(154, 106, 47, 0.16);
    --nav-profile-accent: #0f766e;
    --nav-profile-accent-hover: #115e59;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #fffdf8 0%, #f6efe3 46%, #eadbc6 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(255, 251, 244, 0.96), rgba(246, 239, 227, 0.92));
    --app-footer-bg: rgba(255, 248, 238, 0.92);
    --app-table-head-bg: #efdfc8;
    --app-table-head-text: #52361e;
    --app-input-bg: #fffdf9;
    --app-input-border: rgba(127, 85, 34, 0.34);
    --app-input-focus: rgba(154, 106, 47, 0.24);
    --app-soft-accent: rgba(154, 106, 47, 0.1);
    --app-shadow-soft: 0 10px 24px rgba(95, 68, 35, 0.14);
}

body[data-theme="midnight"] {
    --nav-ink: #e8f0ff;
    --nav-muted: #a3b3cc;
    --nav-line: rgba(173, 192, 224, 0.22);
    --nav-surface: rgba(15, 25, 43, 0.9);
    --app-bg: #0f1729;
    --app-surface: #17233b;
    --app-surface-soft: #1c2b47;
    --app-text: #e6eefc;
    --app-muted: #9db0ce;
    --app-border: rgba(173, 192, 224, 0.2);
    --app-link: #7fb2ff;
    --app-link-hover: #a7cbff;
    --app-primary: #4f8df7;
    --app-primary-hover: #3b76da;
    --nav-accent: #7fb2ff;
    --nav-accent-soft: rgba(127, 178, 255, 0.18);
    --nav-profile-accent: #fbbf24;
    --nav-profile-accent-hover: #f59e0b;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #1a2a49 0%, #0f1729 45%, #0b1120 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(21, 33, 56, 0.96), rgba(15, 25, 43, 0.94));
    --app-footer-bg: rgba(15, 25, 43, 0.94);
    --app-table-head-bg: #223454;
    --app-table-head-text: #e8f1ff;
    --app-input-bg: #101b30;
    --app-input-border: rgba(127, 178, 255, 0.34);
    --app-input-focus: rgba(79, 141, 247, 0.3);
    --app-soft-accent: rgba(127, 178, 255, 0.14);
    --app-shadow-soft: 0 12px 28px rgba(0, 0, 0, 0.36);
}

body[data-theme="high_contrast"] {
    --nav-ink: #000000;
    --nav-muted: #1a1a1a;
    --nav-line: rgba(0, 0, 0, 0.5);
    --nav-surface: rgba(255, 255, 255, 0.96);
    --app-bg: #ffffff;
    --app-surface: #ffffff;
    --app-surface-soft: #f2f2f2;
    --app-text: #000000;
    --app-muted: #1f1f1f;
    --app-border: rgba(0, 0, 0, 0.55);
    --app-link: #0037ff;
    --app-link-hover: #001da3;
    --app-primary: #000000;
    --app-primary-hover: #1f1f1f;
    --nav-accent: #000000;
    --nav-accent-soft: rgba(0, 0, 0, 0.12);
    --nav-profile-accent: #9a3412;
    --nav-profile-accent-hover: #7c2d12;
    --app-page-gradient: radial-gradient(circle at 0% 0%, #ffffff 0%, #f7f7f7 46%, #ececec 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 246, 246, 0.95));
    --app-footer-bg: rgba(255, 255, 255, 0.96);
    --app-table-head-bg: #dedede;
    --app-table-head-text: #000000;
    --app-input-bg: #ffffff;
    --app-input-border: rgba(0, 0, 0, 0.68);
    --app-input-focus: rgba(0, 55, 255, 0.28);
    --app-soft-accent: rgba(0, 0, 0, 0.08);
    --app-shadow-soft: 0 8px 20px rgba(0, 0, 0, 0.2);
}

body {
    margin: 0;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow: auto;
    background: var(--app-page-gradient);
    color: var(--app-text);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1200;
    background: var(--app-header-gradient);
    border-bottom: 0.0625rem solid var(--nav-line);
    backdrop-filter: blur(0.625rem);
    box-shadow: 0 3px 12px rgba(15, 23, 42, 0.04);
}

a {
    color: var(--app-link);
}

a:hover {
    color: var(--app-link-hover);
}

.card,
.table,
.offcanvas,
.modal-content,
.dropdown-menu {
    border-color: var(--app-border);
}

.card,
.offcanvas,
.modal-content,
.dropdown-menu {
    background: var(--app-surface);
    box-shadow: var(--app-shadow-soft);
}

.table {
    --bs-table-bg: var(--app-surface);
    --bs-table-striped-bg: var(--app-surface-soft);
    --bs-table-hover-bg: var(--app-surface-soft);
    --bs-table-border-color: var(--app-border);
}

.table thead th {
    background: var(--app-table-head-bg);
    color: var(--app-table-head-text);
    border-bottom-color: var(--app-border);
}

.text-muted,
.form-text {
    color: var(--app-muted) !important;
}

.form-control,
.form-select {
    background: var(--app-input-bg);
    color: var(--app-text);
    border-color: var(--app-input-border);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--app-primary);
    box-shadow: 0 0 0 0.2rem var(--app-input-focus);
}

.modal-header,
.offcanvas-header {
    background: var(--app-table-head-bg);
    border-bottom-color: var(--app-border);
}

.modal-footer,
.offcanvas-footer {
    border-top-color: var(--app-border);
}

.alert {
    border-color: var(--app-border);
}

.alert-info,
.alert-primary,
.alert-secondary {
    background: var(--app-soft-accent);
    color: var(--app-text);
}

.btn-primary {
    --bs-btn-bg: var(--app-primary);
    --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-bg: var(--app-primary-hover);
    --bs-btn-hover-border-color: var(--app-primary-hover);
    --bs-btn-active-bg: var(--app-primary-hover);
    --bs-btn-active-border-color: var(--app-primary-hover);
}

.btn-outline-primary {
    --bs-btn-color: var(--app-primary);
    --bs-btn-border-color: var(--app-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--app-primary);
    --bs-btn-hover-border-color: var(--app-primary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--app-primary-hover);
    --bs-btn-active-border-color: var(--app-primary-hover);
    --bs-btn-disabled-color: var(--app-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--app-primary);
}

.btn-outline-secondary {
    --bs-btn-color: var(--app-muted);
    --bs-btn-border-color: var(--app-border);
    --bs-btn-hover-color: var(--app-text);
    --bs-btn-hover-bg: var(--app-surface-soft);
    --bs-btn-hover-border-color: var(--app-input-border);
    --bs-btn-focus-shadow-rgb: 95, 111, 132;
    --bs-btn-active-color: var(--app-text);
    --bs-btn-active-bg: var(--app-surface-soft);
    --bs-btn-active-border-color: var(--app-input-border);
    --bs-btn-disabled-color: var(--app-muted);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--app-border);
}

.site-nav {
    width: 100%;
    padding: 0.56rem 2.5vw;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.15rem;
    font-family: "Trebuchet MS", "Gill Sans", "Verdana", sans-serif;
}

.site-nav a {
    color: var(--nav-ink);
    text-decoration: none;
    font-size: 0.93rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    border-radius: 999px;
    transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.site-nav > .nav-links > a,
.site-nav > .nav-links > .dropdown > .dropdown-toggle {
    padding: 0.35rem 0.62rem;
}

.site-nav a:hover {
    color: var(--nav-accent);
    background: var(--nav-accent-soft);
}

.site-nav a:focus-visible {
    outline: 2px solid var(--app-primary);
    outline-offset: 1px;
}

.site-nav .dropdown-toggle::after {
    margin-left: 0.38rem;
    vertical-align: 0.13rem;
}

.site-nav .nav-profile-name {
    color: var(--nav-profile-accent);
    font-weight: 700;
}

.site-nav .dropdown-toggle:hover .nav-profile-name,
.site-nav .dropdown-toggle:focus-visible .nav-profile-name {
    color: var(--nav-profile-accent-hover);
}

.brand {
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    line-height: 0;
    padding: 0;
}

.nav-logo {
    display: block;
    width: clamp(22px, 1.7vw, 30px);
    height: auto;
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.08));
}

@media (max-width: 47.5rem) {
    .nav-logo {
        width: clamp(22px, 6vw, 30px);
    }
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 0.58rem;
    flex-wrap: wrap;
}

.nav-toggle {
    display: none;
    border: none;
    background: transparent;
    padding: 0.35rem;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    flex-direction: column;
}

.nav-toggle-bar {
    display: block;
    width: 1.5rem;
    height: 0.12rem;
    background: var(--nav-ink);
    border-radius: 999px;
}

.nav-backdrop {
    display: none;
}

.nav-close {
    display: none;
    align-self: flex-end;
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--nav-ink);
}

.nav-links .dropdown {
    position: relative;
}

.site-nav .dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 13rem;
    padding: 0.42rem;
    margin-top: 0.38rem;
    background: var(--app-surface);
    border: 0.0625rem solid var(--nav-line);
    border-radius: 0.75rem;
    box-shadow: var(--nav-shadow);
    z-index: 1400;
}

.site-nav .dropdown-menu.show {
    display: block;
    animation: nav-pop 0.15s ease-out;
}

.site-nav .dropdown-item {
    border-radius: 0.52rem;
    padding: 0.5rem 0.62rem;
    font-weight: 600;
    color: var(--nav-ink);
}

.site-nav .dropdown-item:hover,
.site-nav .dropdown-item:focus-visible {
    color: var(--nav-accent);
    background: var(--nav-accent-soft);
}

@keyframes nav-pop {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

main {
    flex: 1;
    min-height: 0;
    overflow: auto;
    background: transparent;
}

.site-footer {
    border-top: 0.0625rem solid var(--nav-line);
    padding: 1.5rem;
    text-align: center;
    font-size: 0.9rem;
    color: var(--nav-muted);
    font-family: "Trebuchet MS", "Gill Sans", "Verdana", sans-serif;
    background: var(--app-footer-bg);
}

/* Spacing belongs above the table container, not inside DataTables internals. */
.licenses-section .table-responsive {
    margin-top: 5px;
}

body[data-theme="midnight"] .site-header {
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.35);
}

body[data-theme="midnight"] .site-nav a {
    color: var(--nav-ink);
}

body[data-theme="midnight"] .site-nav a:hover {
    color: var(--nav-ink);
    background: var(--nav-accent-soft);
}

body[data-theme="midnight"] .site-nav .dropdown-item {
    color: var(--app-text);
}

body[data-theme="high_contrast"] .site-nav a {
    font-weight: 700;
}

.table-bordered > :not(caption) > * > * {
    border-color: var(--app-border);
}

.bg-white,
.bg-light {
    background-color: var(--app-surface) !important;
}

.text-dark,
.table,
.card-body,
.modal-body,
.offcanvas-body {
    color: var(--app-text);
}

.user-access-scroll {
    max-height: 55vh;
    overflow-y: auto;
    overflow-x: hidden;
}

.user-access-scroll .dt-scroll-body,
.user-access-scroll .dataTables_scrollBody {
    max-height: 55vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

.user-access-scroll table {
    margin-bottom: 0;
}

.table-scroll-body {
    width: 100%;
}

.table-scroll-body thead,
.table-scroll-body .scroll-tbody tr {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.table-scroll-body .scroll-tbody {
    display: block;
    max-height: 55vh;
    overflow-y: auto;
    overflow-x: hidden;
}

@media (max-width: 47.5rem) {
    body {
        overflow: auto;
    }

    main {
        overflow: auto;
    }

    .site-nav {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }

    .nav-toggle {
        display: inline-flex !important;
    }

    .nav-links {
        position: fixed;
        top: 0;
        right: 0;
        height: 100dvh;
        width: min(80vw, 20rem);
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        padding: 3rem 1.25rem 1.5rem;
        background: #fff;
        box-shadow: -0.6rem 0 1.8rem rgba(15, 23, 42, 0.22);
        transform: translateX(110%);
        transition: transform 0.25s ease;
        z-index: 1400;
        overflow-y: auto;
    }

    .nav-links > a,
    .nav-links > .dropdown > .dropdown-toggle {
        width: 100%;
        border-radius: 0.65rem;
        padding: 0.5rem 0.62rem;
    }

    .nav-links.is-open {
        transform: translateX(0);
    }

    .nav-close {
        display: inline-flex;
        position: absolute;
        top: 0.75rem;
        right: 0.75rem;
        padding: 0.25rem;
    }

    .nav-backdrop {
        display: block !important;
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.45);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.25s ease;
        z-index: 1300;
    }

    .nav-backdrop.is-open {
        opacity: 1;
        pointer-events: auto;
    }

    .nav-links .dropdown-menu {
        position: static;
        box-shadow: none;
        padding-left: 0.4rem;
        border: none;
        margin-top: 0;
        min-width: 0;
    }

    .site-nav .dropdown-item {
        padding-left: 0.5rem;
    }
}

/* blackcoralaquatics public-style overrides */
:root {
    --nav-ink: #0f2740;
    --nav-muted: #5a7281;
    --nav-line: rgba(15, 39, 64, 0.1);
    --nav-surface: rgba(248, 250, 249, 0.86);
    --nav-accent: #0b7a75;
    --nav-accent-soft: rgba(11, 122, 117, 0.12);
    --nav-shadow: 0 18px 44px rgba(13, 42, 61, 0.12);
    --app-bg: #f3f6f6;
    --app-surface: rgba(255, 255, 255, 0.92);
    --app-surface-soft: #f8fbfa;
    --app-text: #183548;
    --app-muted: #5a7281;
    --app-border: rgba(15, 39, 64, 0.12);
    --app-link: #0b7a75;
    --app-link-hover: #085d59;
    --app-primary: #0b7a75;
    --app-primary-hover: #085d59;
    --app-page-gradient: radial-gradient(circle at top left, rgba(7, 122, 117, 0.16), transparent 28%), linear-gradient(180deg, #f3f6f6 0%, #fbfaf7 100%);
    --app-header-gradient: linear-gradient(180deg, rgba(248, 250, 249, 0.9), rgba(248, 250, 249, 0.72));
    --app-footer-bg: rgba(255, 255, 255, 0.72);
    --app-table-head-bg: #dce7ea;
    --app-table-head-text: #183548;
    --app-input-border: rgba(24, 53, 72, 0.2);
    --app-input-focus: rgba(11, 122, 117, 0.2);
    --app-soft-accent: rgba(11, 122, 117, 0.08);
    --app-shadow-soft: 0 24px 80px rgba(13, 42, 61, 0.12);
}

body {
    font-family: Georgia, "Times New Roman", serif;
}

.site-header {
    backdrop-filter: blur(1rem);
    box-shadow: 0 8px 24px rgba(13, 42, 61, 0.05);
}

.site-nav {
    padding: 0.9rem min(2.5vw, 2rem);
    font-family: "Trebuchet MS", "Segoe UI", sans-serif;
}

.brand {
    gap: 0.9rem;
    line-height: 1;
}

.brand-mark {
    width: 3.25rem;
    height: 3.25rem;
    padding: 0.45rem;
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(11, 122, 117, 0.14), rgba(18, 52, 77, 0.12));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.brand-copy strong {
    color: var(--nav-ink);
    font-size: 1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.brand-copy span {
    color: var(--nav-muted);
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nav-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: none;
}

main {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
}

body.authenticated-layout main {
    width: calc(100% - 10px);
    max-width: none;
}

body.authenticated-layout .licenses-section {
    padding-left: 5px;
    padding-right: 5px;
}

body.authenticated-layout .licenses-table {
    padding: 3px;
    box-sizing: border-box;
}

body.authenticated-layout .licenses-table > .dataTables_wrapper,
body.authenticated-layout .licenses-table > .dt-container,
body.authenticated-layout .licenses-table > .table-responsive,
body.authenticated-layout .licenses-table > .project-dashboard-details__grid,
body.authenticated-layout .licenses-table > .project-dashboard-map__canvas {
    padding: 3px;
    box-sizing: border-box;
}

body.authenticated-layout .licenses-table > .licenses-title,
body.authenticated-layout .licenses-table > p,
body.authenticated-layout .licenses-table .dt-layout-row,
body.authenticated-layout .licenses-table .dataTables_wrapper .dataTables_length,
body.authenticated-layout .licenses-table .dataTables_wrapper .dataTables_filter,
body.authenticated-layout .licenses-table .dataTables_wrapper .dataTables_info,
body.authenticated-layout .licenses-table .dataTables_wrapper .dataTables_paginate,
body.authenticated-layout .licenses-table .dt-container .dt-layout-row,
body.authenticated-layout .licenses-table .dt-container .dt-info,
body.authenticated-layout .licenses-table .dt-container .dt-length,
body.authenticated-layout .licenses-table .dt-container .dt-search,
body.authenticated-layout .licenses-table .dt-container .dt-paging,
body.authenticated-layout .licenses-table .dt-container .dt-buttons {
    padding-left: 3px;
    padding-right: 3px;
    box-sizing: border-box;
}

body.authenticated-layout .licenses-table .dataTables_filter,
body.authenticated-layout .licenses-table .dt-search {
    margin-top: 8px;
    margin-right: 9px;
}

.report-card-inner {
    padding: 3px;
    box-sizing: border-box;
}

.project-address-link {
    color: var(--app-link);
    text-decoration: underline;
    text-underline-offset: 0.12em;
    text-decoration-thickness: 0.08em;
}

.project-address-link:hover,
.project-address-link:focus-visible {
    color: var(--app-link-hover);
}

.brand > .nav-logo {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
}
