/* DNX Docs — Frontend Library Stylesheet
   Scoped under .dnx-library and .dnx-login-prompt
   Uses CSS custom properties set via wp_add_inline_style in Shortcodes class */

/* =========================================================
   Base
   ========================================================= */

.dnx-library,
.dnx-login-prompt {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.5;
    color: var(--dnx-text);
    box-sizing: border-box;
}

.dnx-library *,
.dnx-library *::before,
.dnx-library *::after,
.dnx-login-prompt *,
.dnx-login-prompt *::before,
.dnx-login-prompt *::after {
    box-sizing: inherit;
}

/* =========================================================
   Buttons
   ========================================================= */

.dnx-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 44px;
    padding: 0 16px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    border-radius: 6px;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
    white-space: nowrap;
}

.dnx-btn:focus-visible {
    outline: 2px solid var(--dnx-primary);
    outline-offset: 2px;
}

.dnx-btn--primary {
    background-color: var(--dnx-primary);
    border-color: var(--dnx-primary);
    color: #fff;
}

.dnx-btn--primary:hover {
    filter: brightness(1.1);
}

.dnx-btn--secondary {
    background-color: transparent;
    border-color: var(--dnx-border);
    color: var(--dnx-text);
}

.dnx-btn--secondary:hover {
    background-color: var(--dnx-bg-alt);
}

.dnx-btn--text {
    background: none;
    border-color: transparent;
    color: var(--dnx-primary);
    padding: 0 8px;
    min-height: 36px;
}

.dnx-btn--text:hover {
    text-decoration: underline;
}

.dnx-btn--icon {
    background: none;
    border-color: var(--dnx-border);
    color: var(--dnx-text-meta);
    padding: 0 10px;
    min-height: 36px;
    border-radius: 6px;
}

.dnx-btn--icon:hover {
    background-color: var(--dnx-bg-alt);
    color: var(--dnx-text);
}

.dnx-btn--download {
    background-color: var(--dnx-accent);
    border-color: var(--dnx-accent);
    color: #fff;
    font-size: 13px;
    min-height: 36px;
    padding: 0 12px;
}

.dnx-btn--download:hover {
    filter: brightness(1.1);
}

/* Secondary "View" button sits a touch smaller alongside Download */
.dnx-doc-actions .dnx-btn--secondary {
    font-size: 13px;
    min-height: 36px;
    padding: 0 12px;
}

/* Grouped View + Download actions */
.dnx-doc-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Locked state — log in / request access */
.dnx-btn--locked {
    background-color: transparent;
    border-color: var(--dnx-border);
    color: var(--dnx-text-meta);
    font-size: 13px;
    min-height: 36px;
    padding: 0 12px;
    gap: 5px;
}

.dnx-btn--locked:hover {
    background-color: var(--dnx-bg-alt);
    color: var(--dnx-text);
    border-color: var(--dnx-text-meta);
}

.dnx-lock-icon {
    flex-shrink: 0;
    opacity: 0.75;
}

/* =========================================================
   Controls bar
   ========================================================= */

.dnx-library__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.dnx-library__search-wrap {
    flex: 1 1 200px;
    min-width: 180px;
}

.dnx-library__search {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    font-family: inherit;
    font-size: 14px;
    color: var(--dnx-text);
    background-color: var(--dnx-bg);
    border: 1px solid var(--dnx-border);
    border-radius: 6px;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    appearance: none;
}

.dnx-library__search:focus {
    outline: none;
    border-color: var(--dnx-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dnx-primary) 15%, transparent);
}

.dnx-library__search::placeholder {
    color: var(--dnx-text-meta);
}

.dnx-library__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.dnx-library__filter {
    min-height: 44px;
    padding: 0 32px 0 12px;
    font-family: inherit;
    font-size: 14px;
    color: var(--dnx-text);
    background-color: var(--dnx-bg);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    border: 1px solid var(--dnx-border);
    border-radius: 6px;
    appearance: none;
    cursor: pointer;
    transition: border-color 150ms ease;
}

.dnx-library__filter:focus {
    outline: none;
    border-color: var(--dnx-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dnx-primary) 15%, transparent);
}

/* =========================================================
   Count & status
   ========================================================= */

.dnx-library__count {
    font-size: 13px;
    color: var(--dnx-text-meta);
    margin-bottom: 8px;
    min-height: 20px;
}

/* =========================================================
   Loading spinner
   ========================================================= */

.dnx-library__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
}

.dnx-spinner {
    width: 28px;
    height: 28px;
    border: 3px solid var(--dnx-border);
    border-top-color: var(--dnx-primary);
    border-radius: 50%;
    animation: dnx-spin 0.7s linear infinite;
}

@keyframes dnx-spin {
    to { transform: rotate(360deg); }
}

/* =========================================================
   Skeleton loading placeholders
   ========================================================= */

.dnx-skeleton {
    position: relative;
    overflow: hidden;
    background: var(--dnx-bg-alt, #F3F4F6);
    border: 1px solid var(--dnx-border, #E5E7EB);
    border-radius: 10px;
}

.dnx-skeleton::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.65), transparent);
    animation: dnx-shimmer 1.2s infinite;
}

@keyframes dnx-shimmer {
    100% { transform: translateX(100%); }
}

.dnx-skel-label {
    height: 14px;
    width: 120px;
    border: none;
    border-radius: 4px;
    margin: 18px 0 12px;
}

.dnx-skel-tile { height: 96px; border-radius: 12px; }
.dnx-skel-row  { height: 64px; margin-bottom: 10px; }
.dnx-skel-card { height: 200px; }

/* Grid skeletons reuse the grid layout */
#dnx-docs-grid .dnx-skel-card {
    width: 100%;
}

/* =========================================================
   No-results state
   ========================================================= */

.dnx-library__no-results {
    padding: 40px 16px;
    text-align: center;
    color: var(--dnx-text-meta);
    font-size: 15px;
    background-color: var(--dnx-bg-alt);
    border: 1px solid var(--dnx-border);
    border-radius: 8px;
}

/* =========================================================
   Table view
   ========================================================= */

.dnx-library__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}

.dnx-library__table thead th {
    padding: 12px 16px;
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    color: var(--dnx-text-meta);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 2px solid var(--dnx-border);
    background-color: var(--dnx-bg-alt);
    white-space: nowrap;
}

.dnx-library__table thead th:first-child {
    border-radius: 6px 0 0 0;
}

.dnx-library__table thead th:last-child {
    border-radius: 0 6px 0 0;
    text-align: right;
}

.dnx-library__table tbody tr {
    border-bottom: 1px solid var(--dnx-border);
    transition: background-color 150ms ease;
}

.dnx-library__table tbody tr:hover {
    background-color: var(--dnx-bg-alt);
}

.dnx-library__table tbody tr:last-child {
    border-bottom: none;
}

.dnx-library__table tbody td {
    padding: 14px 16px;
    vertical-align: middle;
}

.dnx-library__table tbody td:last-child {
    text-align: right;
}

/* Document title cell */
.dnx-doc-title-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}

.dnx-doc-icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}

.dnx-doc-icon img {
    display: block;
    width: 20px;
    height: 20px;
}

.dnx-doc-name {
    font-size: 15px;
    font-weight: 500;
    color: var(--dnx-text);
    line-height: 1.3;
}

.dnx-doc-description {
    font-size: 13px;
    color: var(--dnx-text-meta);
    margin-top: 2px;
    line-height: 1.4;
}

/* Category badges */
.dnx-doc-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.dnx-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--dnx-primary);
    background-color: color-mix(in srgb, var(--dnx-primary) 10%, transparent);
    border-radius: 20px;
    white-space: nowrap;
}

/* Type chip */
.dnx-type-chip {
    display: inline-block;
    padding: 2px 8px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dnx-text-meta);
    background-color: var(--dnx-bg-alt);
    border: 1px solid var(--dnx-border);
    border-radius: 4px;
}

/* Date */
.dnx-doc-date {
    font-size: 14px;
    color: var(--dnx-text-meta);
    white-space: nowrap;
}

/* =========================================================
   Table — responsive card layout (< 768px)
   ========================================================= */

@media (max-width: 767px) {
    .dnx-library__table thead {
        display: none;
    }

    .dnx-library__table tbody tr {
        display: block;
        border: 1px solid var(--dnx-border);
        border-radius: 8px;
        margin-bottom: 12px;
        padding: 12px;
    }

    .dnx-library__table tbody td {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        padding: 6px 0;
        border: none;
        font-size: 14px;
    }

    .dnx-library__table tbody td::before {
        content: attr(data-label);
        font-size: 11px;
        font-weight: 600;
        color: var(--dnx-text-meta);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        min-width: 64px;
        flex-shrink: 0;
        padding-top: 2px;
    }

    .dnx-library__table tbody td:last-child {
        text-align: left;
        justify-content: flex-start;
    }
}

/* =========================================================
   Grid view
   ========================================================= */

.dnx-library__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

@media (max-width: 900px) {
    .dnx-library__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 479px) {
    .dnx-library__grid {
        grid-template-columns: 1fr;
    }
}

/* Grid card */
.dnx-doc-card {
    display: flex;
    flex-direction: column;
    background-color: var(--dnx-bg);
    border: 1px solid var(--dnx-border);
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow 150ms ease, border-color 150ms ease;
}

.dnx-doc-card:hover {
    border-color: color-mix(in srgb, var(--dnx-primary) 40%, transparent);
    box-shadow: 0 4px 16px color-mix(in srgb, var(--dnx-primary) 8%, transparent);
}

.dnx-doc-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background-color: var(--dnx-bg-alt);
    border-bottom: 1px solid var(--dnx-border);
}

.dnx-doc-card__icon {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
}

.dnx-doc-card__icon img {
    display: block;
    width: 32px;
    height: 32px;
}

.dnx-doc-card__type {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dnx-text-meta);
}

.dnx-doc-card__body {
    flex: 1;
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dnx-doc-card__title {
    font-size: 15px;
    font-weight: 600;
    color: var(--dnx-text);
    line-height: 1.3;
    margin: 0;
}

.dnx-doc-card__description {
    font-size: 13px;
    color: var(--dnx-text-meta);
    line-height: 1.5;
    flex: 1;
    margin: 0;
}

.dnx-doc-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.dnx-doc-card__date {
    font-size: 12px;
    color: var(--dnx-text-meta);
}

.dnx-doc-card__footer {
    padding: 12px 16px;
    border-top: 1px solid var(--dnx-border);
    display: flex;
    justify-content: flex-end;
}

/* =========================================================
   Pagination
   ========================================================= */

.dnx-library__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.dnx-page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 0 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    color: var(--dnx-text);
    background-color: var(--dnx-bg);
    border: 1px solid var(--dnx-border);
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

.dnx-page-btn:hover:not(:disabled):not(.is-active) {
    background-color: var(--dnx-bg-alt);
    border-color: var(--dnx-text-meta);
}

.dnx-page-btn.is-active {
    background-color: var(--dnx-primary);
    border-color: var(--dnx-primary);
    color: #fff;
    cursor: default;
}

.dnx-page-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.dnx-page-btn:focus-visible {
    outline: 2px solid var(--dnx-primary);
    outline-offset: 2px;
}

/* =========================================================
   Login prompt
   ========================================================= */

.dnx-login-prompt {
    max-width: 400px;
    margin: 0 auto;
    padding: 32px;
    background-color: var(--dnx-bg);
    border: 1px solid var(--dnx-border);
    border-radius: 12px;
}

.dnx-login-prompt__message {
    font-size: 16px;
    font-weight: 500;
    color: var(--dnx-text);
    margin-bottom: 20px;
    text-align: center;
}

.dnx-login-prompt__form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.dnx-login-prompt__form input[type="text"],
.dnx-login-prompt__form input[type="password"] {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    font-family: inherit;
    font-size: 15px;
    color: var(--dnx-text);
    background-color: var(--dnx-bg);
    border: 1px solid var(--dnx-border);
    border-radius: 6px;
    transition: border-color 150ms ease, box-shadow 150ms ease;
    appearance: none;
}

.dnx-login-prompt__form input:focus {
    outline: none;
    border-color: var(--dnx-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--dnx-primary) 15%, transparent);
}

.dnx-login-prompt__form .dnx-btn--primary {
    width: 100%;
    min-height: 44px;
    font-size: 15px;
}

.dnx-login-prompt__error {
    font-size: 14px;
    color: #DC2626;
    padding: 8px 12px;
    background-color: #FEF2F2;
    border: 1px solid #FECACA;
    border-radius: 6px;
}

.dnx-login-prompt__success {
    font-size: 14px;
    color: #166534;
    padding: 8px 12px;
    background-color: #F0FDF4;
    border: 1px solid #BBF7D0;
    border-radius: 6px;
}

/* Remember me */
.dnx-login-prompt__remember {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--dnx-text-meta);
    cursor: pointer;
    user-select: none;
}

.dnx-login-prompt__remember input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--dnx-primary);
    cursor: pointer;
}

/* Inline text links (forgot password / back to login) */
.dnx-login-prompt__link {
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    font-size: 14px;
    color: var(--dnx-primary);
    cursor: pointer;
    text-align: center;
    text-decoration: none;
}

.dnx-login-prompt__link:hover {
    text-decoration: underline;
}

.dnx-login-prompt__reset-intro {
    font-size: 14px;
    color: var(--dnx-text-meta);
    line-height: 1.5;
    margin: 0;
}

/* =========================================================
   Modal — login / request access popups
   ========================================================= */

.dnx-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.dnx-modal[hidden] {
    display: none;
}

.dnx-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, 0.55);
}

.dnx-modal__dialog {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 410px;
    max-height: 90vh;
    overflow: auto;
    background: var(--dnx-bg, #fff);
    border-radius: 12px;
    padding: 28px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    animation: dnx-modal-in 160ms ease;
}

@keyframes dnx-modal-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.dnx-modal__close,
.dnx-modal .dnx-modal__close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 32px !important;
    height: 32px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 32px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    font-size: 22px !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    color: var(--dnx-text-meta, #6B7280) !important;
    cursor: pointer;
    padding: 0 !important;
    margin: 0 !important;
    text-shadow: none !important;
    appearance: none;
    -webkit-appearance: none;
}

.dnx-modal__close:hover,
.dnx-modal .dnx-modal__close:hover {
    background: var(--dnx-bg-alt, #F3F4F6) !important;
    color: var(--dnx-text, #111827) !important;
}

.dnx-modal__title {
    font-size: 20px;
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--dnx-text, #111827);
}

.dnx-modal__text {
    font-size: 14px;
    color: var(--dnx-text-meta, #6B7280);
    line-height: 1.5;
    margin: 0 0 14px;
}

.dnx-modal__doc {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: var(--dnx-text, #111827);
    background: var(--dnx-bg-alt, #F9FAFB);
    border: 1px solid var(--dnx-border, #E5E7EB);
    border-radius: 8px;
    padding: 10px 12px;
    margin: 0 0 14px;
    word-break: break-word;
}

.dnx-modal__content .dnx-login-prompt__form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

body.dnx-modal-open {
    overflow: hidden;
}

/* =========================================================
   Controls responsive
   ========================================================= */

@media (max-width: 767px) {
    .dnx-library__controls {
        flex-direction: column;
        align-items: stretch;
    }

    .dnx-library__search-wrap {
        flex: none;
        width: 100%;
    }

    .dnx-library__filters {
        width: 100%;
    }

    .dnx-library__filter {
        flex: 1 1 120px;
    }

    .dnx-library__toggle-view {
        align-self: flex-end;
    }
}

@media (max-width: 479px) {
    .dnx-library__filters {
        flex-direction: column;
    }

    .dnx-library__filter {
        width: 100%;
    }
}

/* =========================================================
   View buttons group
   ========================================================= */

.dnx-library__view-buttons {
    display: flex;
    gap: 4px;
}

/* =========================================================
   Accordion view
   ========================================================= */

.dnx-library__accordion {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dnx-accordion__section {
    border: 1px solid var(--dnx-border);
    border-radius: 8px;
    overflow: hidden;
}

.dnx-accordion__header {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    color: var(--dnx-text);
    background-color: var(--dnx-bg-alt);
    border: none;
    cursor: pointer;
    transition: background-color 150ms ease;
    text-align: left;
}

.dnx-accordion__header:hover {
    background-color: color-mix(in srgb, var(--dnx-primary) 5%, var(--dnx-bg-alt));
}

.dnx-accordion__header[aria-expanded="true"] {
    border-bottom: 1px solid var(--dnx-border);
}

.dnx-accordion__header:focus-visible {
    outline: 2px solid var(--dnx-primary);
    outline-offset: -2px;
}

.dnx-accordion__chevron {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 200ms ease;
    color: var(--dnx-text-meta);
}

.dnx-accordion__header[aria-expanded="true"] .dnx-accordion__chevron {
    transform: rotate(90deg);
}

.dnx-accordion__title {
    flex: 1;
}

.dnx-accordion__count {
    font-size: 13px;
    font-weight: 400;
    color: var(--dnx-text-meta);
}

.dnx-accordion__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--dnx-border);
    transition: background-color 150ms ease;
}

.dnx-accordion__item:last-child {
    border-bottom: none;
}

.dnx-accordion__item:hover {
    background-color: var(--dnx-bg-alt);
}

.dnx-accordion__item-info {
    flex: 1;
    min-width: 0;
}

.dnx-accordion__item-name {
    display: block;
    font-size: 15px;
    font-weight: 500;
    color: var(--dnx-text);
    line-height: 1.3;
}

.dnx-accordion__item-date {
    font-size: 13px;
    color: var(--dnx-text-meta);
}

/* Accordion responsive */
@media (max-width: 479px) {
    .dnx-accordion__item {
        flex-wrap: wrap;
    }
    .dnx-accordion__item .dnx-btn--download {
        width: 100%;
        justify-content: center;
        margin-top: 4px;
    }
}

/* =========================================================
   Featherwood refinement layer
   Design-only polish for the resident document library.
   ========================================================= */

.dnx-library,
.dnx-login-prompt {
    --dnx-primary: #121c83;
    --dnx-accent: #c8902e;
    --dnx-border: #d8dde8;
    --dnx-bg: #ffffff;
    --dnx-bg-alt: #f7f5f0;
    --dnx-row-alt: #fbfaf7;
    --dnx-text: #1e293b;
    --dnx-text-meta: #64748b;
    --dnx-radius: 8px;
    --dnx-radius-sm: 6px;
    --dnx-focus: rgba(18, 28, 131, 0.16);
    font-family: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--dnx-text);
}

.dnx-library {
    max-width: 1180px;
    margin: 0 auto;
    padding: 8px 24px 72px;
}

.dnx-library__controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.dnx-library__search-wrap {
    flex: 1 1 240px;
    min-width: 200px;
}

.dnx-library__search,
.dnx-library__filter {
    min-height: 46px;
    border-color: var(--dnx-border);
    border-radius: var(--dnx-radius-sm);
    background-color: #fff;
    color: var(--dnx-text);
    font-size: 15px;
    box-shadow: none;
}

.dnx-library__search {
    padding: 0 16px;
}

.dnx-library__filter {
    padding-left: 14px;
    padding-right: 36px;
}

.dnx-library__search:focus,
.dnx-library__filter:focus,
.dnx-page-btn:focus-visible,
.dnx-btn:focus-visible {
    border-color: var(--dnx-primary);
    box-shadow: 0 0 0 3px var(--dnx-focus);
    outline: none;
}

.dnx-library__filters {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    flex: 0 1 auto;
}

.dnx-library__filter {
    flex: 0 1 190px;
    min-width: 150px;
    width: auto;
}

.dnx-library__view-buttons {
    display: flex;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}

/* Labeled view toggles (Folders / List / Grid) */
.dnx-library__toggle-view {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
}

.dnx-view-label {
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}

@media (max-width: 600px) {
    .dnx-view-label { display: none; }
    .dnx-library__toggle-view { padding: 0 10px; }
}

.dnx-btn {
    min-height: 38px;
    padding: 9px 14px;
    border-radius: var(--dnx-radius-sm);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    box-shadow: none;
    text-decoration: none;
}

.dnx-btn--primary,
.dnx-btn--download {
    background-color: var(--dnx-primary);
    border-color: var(--dnx-primary);
    color: #fff;
}

.dnx-btn--primary:hover,
.dnx-btn--download:hover {
    background-color: #0f176d;
    border-color: #0f176d;
    filter: none;
}

.dnx-btn--download {
    min-height: 34px;
    padding: 7px 12px;
    font-size: 13px;
}

.dnx-btn--text {
    min-height: 36px;
    color: var(--dnx-primary);
    background: transparent;
    border-color: transparent;
}

.dnx-btn--text:hover {
    color: #0f176d;
    background: rgba(18, 28, 131, 0.06);
    text-decoration: none;
}

.dnx-btn--icon {
    width: 46px;
    min-width: 46px;
    min-height: 46px;
    padding: 0;
    color: var(--dnx-primary);
    background: #fff;
    border-color: var(--dnx-border);
}

.dnx-btn--icon:hover {
    color: #fff;
    background: var(--dnx-accent);
    border-color: var(--dnx-accent);
}

.dnx-library__count {
    min-height: 22px;
    margin: 0 0 10px;
    color: var(--dnx-text-meta);
    font-size: 13px;
}

.dnx-library__table {
    overflow: hidden;
    border: 1px solid var(--dnx-border);
    border-collapse: separate;
    border-radius: var(--dnx-radius);
    border-spacing: 0;
    background: #fff;
    font-size: 15px;
}

.dnx-library__table thead th {
    padding: 14px 16px;
    border: 0;
    border-bottom: 1px solid var(--dnx-border);
    color: var(--dnx-text);
    background: var(--dnx-bg-alt);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.dnx-library__table tbody tr {
    border: 0;
}

.dnx-library__table tbody tr:nth-child(odd) {
    background: var(--dnx-row-alt);
}

.dnx-library__table tbody tr:hover {
    background: #f1f4fb;
}

.dnx-library__table tbody td {
    padding: 15px 16px;
    border: 0;
    border-bottom: 1px solid var(--dnx-border);
    color: var(--dnx-text);
}

.dnx-library__table tbody tr:last-child td {
    border-bottom: 0;
}

.dnx-doc-title-cell {
    gap: 12px;
}

.dnx-doc-icon,
.dnx-doc-icon img {
    width: 22px;
    height: 22px;
}

.dnx-doc-name {
    color: var(--dnx-text);
    font-size: 15px;
    font-weight: 700;
}

.dnx-doc-description {
    color: var(--dnx-text-meta);
}

.dnx-badge,
.dnx-type-chip {
    border-radius: 999px;
    font-size: 12px;
}

.dnx-badge {
    color: var(--dnx-primary);
    background: rgba(18, 28, 131, 0.08);
}

.dnx-type-chip {
    color: var(--dnx-text);
    background: #fff;
    border-color: var(--dnx-border);
}

.dnx-doc-date {
    color: var(--dnx-text-meta);
}

.dnx-library__grid {
    gap: 18px;
}

.dnx-doc-card {
    border-color: var(--dnx-border);
    border-radius: var(--dnx-radius);
    box-shadow: none;
}

.dnx-doc-card:hover {
    border-color: rgba(18, 28, 131, 0.28);
    box-shadow: 0 8px 24px rgba(18, 28, 131, 0.08);
}

.dnx-doc-card__header,
.dnx-doc-card__footer {
    background: var(--dnx-bg-alt);
}

.dnx-doc-card__header {
    padding: 14px 16px;
}

.dnx-doc-card__body {
    padding: 16px;
}

.dnx-doc-card__title {
    color: var(--dnx-text);
    font-size: 16px;
    font-weight: 700;
}

.dnx-doc-card__description {
    color: var(--dnx-text-meta);
}

.dnx-accordion__section {
    border-color: var(--dnx-border);
    border-radius: var(--dnx-radius);
    background: #fff;
}

.dnx-accordion__header {
    padding: 15px 16px;
    color: var(--dnx-text);
    background: var(--dnx-bg-alt);
    font-weight: 700;
}

.dnx-accordion__header:hover,
.dnx-accordion__item:hover {
    background: #f1f4fb;
}

.dnx-accordion__item {
    padding: 14px 16px;
}

.dnx-library__no-results,
.dnx-login-prompt {
    border-color: var(--dnx-border);
    border-radius: var(--dnx-radius);
    background: var(--dnx-bg-alt);
}

.dnx-library__no-results {
    padding: 42px 18px;
    color: var(--dnx-text-meta);
}

.dnx-login-prompt {
    max-width: 430px;
    padding: 30px;
}

.dnx-login-prompt__message {
    color: var(--dnx-text);
}

@media (max-width: 767px) {
    .dnx-library {
        padding: 0 16px 56px;
    }

    .dnx-library__controls {
        display: grid;
        grid-template-columns: 1fr;
    }

    .dnx-library__filters {
        width: 100%;
        flex-wrap: wrap;
    }

    .dnx-library__view-buttons {
        width: 100%;
        margin-left: 0;
    }

    .dnx-library__filter {
        flex: 1 1 140px;
        min-width: 0;
    }

    .dnx-library__table {
        display: block;
        overflow: visible;
        border: 0;
        background: transparent;
    }

    .dnx-library__table tbody tr {
        border-color: var(--dnx-border);
        background: #fff;
        box-shadow: none;
    }

    .dnx-library__table tbody tr:nth-child(odd) {
        background: #fff;
    }

    .dnx-library__table tbody td {
        padding: 8px 0;
    }

    .dnx-library__table tbody td::before {
        min-width: 78px;
        color: var(--dnx-text-meta);
    }

    .dnx-library__table .dnx-btn--download {
        width: 100%;
        margin-top: 6px;
    }

    .dnx-library__table .dnx-doc-actions{
        display:flex !important;
        flex-wrap:wrap !important;
        width:100% !important;
        justify-content:stretch !important;
    }

    .dnx-library__table .dnx-doc-actions .dnx-btn{
        flex:1 1 100% !important;
        width:100% !important;
        min-width:0 !important;
    }
}

/* Site-theme override guard: keep document controls compact. */
.dnx-library .dnx-btn,
.dnx-login-prompt .dnx-btn {
    min-height: 38px !important;
    padding: 9px 14px !important;
    border-radius: 6px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

.dnx-library .dnx-library__toggle-view.dnx-btn--icon {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    color: var(--dnx-primary) !important;
    background: #fff !important;
    border: 1px solid var(--dnx-border) !important;
}

.dnx-library .dnx-library__toggle-view.dnx-btn--icon:hover {
    color: #fff !important;
    background: var(--dnx-accent) !important;
    border-color: var(--dnx-accent) !important;
}

.dnx-library .dnx-library__toggle-view.dnx-btn--icon svg {
    display: block !important;
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
}

.dnx-library .dnx-btn--download {
    min-height: 34px !important;
    padding: 8px 13px !important;
    border-radius: 6px !important;
    color: #fff !important;
    background: var(--dnx-primary) !important;
    border-color: var(--dnx-primary) !important;
    font-size: 13px !important;
    text-decoration: none !important;
}

.dnx-library .dnx-btn--download:hover {
    color: #fff !important;
    background: #0f176d !important;
    border-color: #0f176d !important;
}

.dnx-library__table .dnx-doc-actions{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    width:auto !important;
    white-space:nowrap !important;
}

.dnx-library__table .dnx-doc-actions .dnx-btn{
    flex:0 0 auto !important;
    min-height:34px !important;
    padding:8px 14px !important;
    margin:0 !important;
    line-height:1 !important;
    white-space:nowrap !important;
}

.dnx-library__table .dnx-doc-actions .dnx-btn--secondary{
    min-width:74px !important;
}

.dnx-library__table .dnx-doc-actions .dnx-btn--download{
    min-width:108px !important;
}

@media (max-width: 767px){
    .dnx-library__table .dnx-doc-actions{
        display:flex !important;
        flex-wrap:wrap !important;
        width:100% !important;
        justify-content:stretch !important;
        white-space:normal !important;
    }

    .dnx-library__table .dnx-doc-actions .dnx-btn{
        flex:1 1 100% !important;
        width:100% !important;
        min-width:0 !important;
    }
}

/* ===== Folder (Google-Drive style) view ===== */
.dnx-folder__controls{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.dnx-folder__breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:15px;}
.dnx-folder__crumb{color:#121c83;text-decoration:none;font-weight:500;cursor:pointer;}
.dnx-folder__crumb:hover{color:#C8902E;text-decoration:underline;}
.dnx-folder__crumb-sep{color:#9aa3b2;}
.dnx-folder__section-label{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-weight:600;margin:18px 0 12px;}
.dnx-folder__tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:8px;}
.dnx-folder-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:#fff;border:1px solid rgba(18,28,131,.12);border-radius:12px;padding:18px;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease;}
.dnx-folder-tile:hover{box-shadow:0 8px 22px rgba(18,28,131,.12);transform:translateY(-2px);border-color:rgba(200,144,46,.55);}
.dnx-folder-tile__icon{color:#C8902E;margin-bottom:4px;}
.dnx-folder-tile__name{font-weight:600;color:#1E293B;font-size:16px;line-height:1.3;width:100%;overflow-wrap:anywhere;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;}
.dnx-folder-tile__meta{font-size:13px;color:#6b7280;}
.dnx-folder__docs{display:flex;flex-direction:column;gap:10px;}
.dnx-doc-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid rgba(18,28,131,.1);border-radius:10px;padding:12px 16px;text-decoration:none;transition:box-shadow .15s ease,border-color .15s ease;}
.dnx-doc-card:hover{box-shadow:0 6px 16px rgba(18,28,131,.1);border-color:rgba(200,144,46,.55);}
.dnx-doc-card__icon{color:#C8902E;flex:0 0 auto;}
.dnx-doc-card__body{display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0;}
.dnx-doc-card__title{font-weight:600;color:#1E293B;font-size:15px;}
.dnx-doc-card__meta{display:flex;align-items:center;gap:10px;font-size:13px;color:#6b7280;}
.dnx-doc-card__type{background:#121c83;color:#fff;border-radius:4px;padding:1px 7px;font-size:11px;font-weight:600;}
.dnx-doc-card__actions{flex:0 0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.dnx-doc-card__act{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;line-height:1;}
.dnx-doc-card__dl{background:#C8902E;color:#fff;}
.dnx-doc-card__dl:hover{filter:brightness(1.06);}
.dnx-doc-card__view{background:#fff;color:#121c83;border-color:rgba(18,28,131,.25);}
.dnx-doc-card__view:hover{background:rgba(18,28,131,.06);}
.dnx-doc-card__locked{background:transparent;color:#6b7280;border-color:rgba(18,28,131,.18);}
.dnx-doc-card__locked:hover{background:rgba(18,28,131,.05);color:#1E293B;}
.dnx-doc-card.is-locked{border-style:dashed;}
.dnx-folder__empty,.dnx-folder__error{text-align:center;color:#6b7280;padding:32px;}
.dnx-library__toggle-view.is-active{background:#121c83;color:#fff;}
@media(max-width:600px){.dnx-doc-card__date{display:none;}.dnx-folder__tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}}

/* Override Elementor/theme button styling on folder tiles */
.dnx-folder-view .dnx-folder-tile{background:#ffffff !important;color:#1E293B !important;border:1px solid rgba(18,28,131,.12) !important;box-shadow:none !important;text-shadow:none !important;font-family:inherit !important;}
.dnx-folder-view .dnx-folder-tile:hover{background:#ffffff !important;box-shadow:0 8px 22px rgba(18,28,131,.12) !important;transform:translateY(-2px);}
.dnx-folder-view .dnx-folder-tile__icon{color:#C8902E !important;}
.dnx-folder-view .dnx-folder-tile__name{color:#1E293B !important;}
.dnx-folder-view .dnx-folder-tile__meta{color:#6b7280 !important;}
.dnx-folder-view .dnx-library__toggle-view{background:#fff;color:#121c83;border:1px solid rgba(18,28,131,.18);}
.dnx-folder-view .dnx-library__toggle-view.is-active{background:#121c83 !important;color:#fff !important;}

/* Compact document rows in folder view (override Elementor centering) */
.dnx-folder-view .dnx-doc-card{display:flex !important;flex-direction:row !important;align-items:center !important;text-align:left !important;gap:14px !important;padding:12px 16px !important;}
.dnx-folder-view .dnx-doc-card__icon{margin:0 !important;flex:0 0 auto;}
.dnx-folder-view .dnx-doc-card__body{align-items:flex-start !important;text-align:left !important;flex:1 1 auto;}
.dnx-folder-view .dnx-doc-card__actions{margin-left:auto;flex:0 0 auto;}
/* Force action-button colours so the theme's gold link colour can't bleed in (Download was rendering gold-on-gold). */
.dnx-folder-view .dnx-doc-card__act{font-family:inherit !important;text-shadow:none !important;text-decoration:none !important;}
.dnx-folder-view .dnx-doc-card__dl,
.dnx-folder-view a.dnx-doc-card__dl{background:#C8902E !important;color:#fff !important;border-color:#C8902E !important;}
.dnx-folder-view .dnx-doc-card__dl:hover{color:#fff !important;filter:brightness(1.06);}
.dnx-folder-view .dnx-doc-card__view,
.dnx-folder-view a.dnx-doc-card__view{background:#fff !important;color:#121c83 !important;border-color:rgba(18,28,131,.25) !important;}
.dnx-folder-view .dnx-doc-card__view:hover{color:#121c83 !important;background:rgba(18,28,131,.06) !important;}
.dnx-folder-view .dnx-doc-card__locked,
.dnx-folder-view a.dnx-doc-card__locked{background:transparent !important;color:#6b7280 !important;border-color:rgba(18,28,131,.18) !important;}
.dnx-folder-view .dnx-doc-card__locked:hover{color:#1E293B !important;}

/* ===== Who-to-Contact directory ===== */
.dnx-contacts{max-width:920px;margin:0 auto;}
.dnx-contacts__intro{color:#374151;margin-bottom:20px;}
.dnx-contacts__table{border:1px solid rgba(18,28,131,.12);border-radius:12px;overflow:hidden;}
.dnx-contacts__head,.dnx-contacts__row{display:grid;grid-template-columns:1.2fr 1.3fr 1fr;gap:12px;padding:14px 18px;align-items:center;}
.dnx-contacts__head{background:#121c83;color:#fff;font-weight:600;font-size:14px;}
.dnx-contacts__row{border-top:1px solid rgba(18,28,131,.08);}
.dnx-contacts__row:nth-child(even){background:#F7F5F0;}
.dnx-contacts__topic{font-weight:600;color:#121c83;}
.dnx-contacts__person,.dnx-contacts__contact{color:#374151;font-size:15px;}
@media(max-width:640px){.dnx-contacts__head{display:none;}.dnx-contacts__row{grid-template-columns:1fr;gap:4px;}.dnx-contacts__topic{font-size:16px;}}

/* ============================================================
   View toggle — unified segmented control (theme-proof).
   Appended last + !important so Elementor/Astra button styles
   (gold fill, padding, text-shadow) can never bleed in.
   ============================================================ */
.dnx-library__view-buttons{
    display:inline-flex !important;
    flex:0 0 auto;
    gap:0 !important;
    margin-left:auto;
    border:1px solid var(--dnx-border,#E5E7EB) !important;
    border-radius:8px !important;
    overflow:hidden !important;
    background:#fff !important;
    box-shadow:none !important;
    padding:0 !important;
}
.dnx-library .dnx-library__view-buttons .dnx-library__toggle-view.dnx-btn--icon{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    margin:0 !important;
    padding:9px 16px !important;
    min-height:40px !important;
    min-width:86px !important;
    max-width:none !important;
    width:auto !important;
    height:auto !important;
    box-sizing:border-box !important;
    background:#fff !important;
    color:#1E293B !important;
    border:0 !important;
    border-right:1px solid var(--dnx-border,#E5E7EB) !important;
    border-radius:0 !important;
    box-shadow:none !important;
    text-shadow:none !important;
    text-transform:none !important;
    font-family:inherit !important;
    font-size:13px !important;
    font-weight:600 !important;
    letter-spacing:0 !important;
    line-height:1 !important;
    white-space:nowrap !important;
    cursor:pointer;
    transition:background-color .15s ease,color .15s ease;
}
.dnx-library .dnx-library__view-buttons .dnx-library__toggle-view.dnx-btn--icon:last-child{border-right:0 !important;}
.dnx-library .dnx-library__view-buttons .dnx-library__toggle-view.dnx-btn--icon:hover{background:#F3F4F6 !important;color:#1E293B !important;}
.dnx-library .dnx-library__view-buttons .dnx-library__toggle-view.dnx-btn--icon.is-active{background:var(--dnx-primary,#141c82) !important;color:#fff !important;}
.dnx-library__view-buttons .dnx-library__toggle-view svg{width:15px !important;height:15px !important;flex:0 0 auto;margin:0 !important;}
.dnx-library__view-buttons .dnx-view-label{display:inline !important;margin:0 !important;padding:0 !important;font-size:13px !important;font-weight:600 !important;line-height:1 !important;color:inherit !important;}
@media(max-width:600px){
    .dnx-library__view-buttons .dnx-view-label{display:none !important;}
    .dnx-library .dnx-library__view-buttons .dnx-library__toggle-view.dnx-btn--icon{min-width:44px !important;padding:9px 13px !important;}
}

/* ============================================================
   Document library UX refinements.
   ============================================================ */
.dnx-latest{
    margin:0 0 22px;
    padding:16px;
    border:1px solid var(--dnx-border,#E5E7EB);
    border-radius:10px;
    background:#fff;
}
.dnx-latest__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin:0 0 12px;
}
.dnx-library .dnx-latest .dnx-latest__head h2{
    margin:0 !important;
    color:#121c83 !important;
    font-size:28px !important;
    font-weight:800 !important;
    line-height:1.15 !important;
    letter-spacing:0 !important;
}
.dnx-latest__list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.dnx-latest__item{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:10px;
    align-items:start;
    padding:12px;
    border:1px solid rgba(18,28,131,.10);
    border-radius:8px;
    background:#FBFAF7;
}
.dnx-latest__type{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    min-height:24px;
    padding:3px 7px;
    border-radius:5px;
    background:#121c83;
    color:#fff;
    font-size:11px;
    font-weight:800;
    line-height:1;
}
.dnx-library .dnx-latest .dnx-latest__body h3{
    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:3 !important;
    overflow:hidden !important;
    margin:0 !important;
    color:#121c83 !important;
    font-size:18px !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    letter-spacing:0 !important;
}
.dnx-latest__body p{
    margin:4px 0 0;
    color:#64748B;
    font-size:12px;
    line-height:1.35;
}
.dnx-latest__actions{
    grid-column:1 / -1;
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.dnx-doc-meta-line,
.dnx-doc-card__details{
    color:#64748B;
    font-size:12px;
    line-height:1.35;
}
.dnx-doc-meta-line{
    margin-top:3px;
}
.dnx-folder-tile__name{
    overflow:visible !important;
    text-overflow:clip !important;
    white-space:normal !important;
}
.dnx-folder-view .dnx-doc-card__act,
.dnx-latest .dnx-btn,
.dnx-doc-actions .dnx-btn{
    min-height:38px !important;
}
.dnx-folder-view .dnx-doc-card__dl,
.dnx-latest .dnx-btn--download{
    color:#fff !important;
}
.dnx-folder-view .dnx-doc-card__locked{
    color:#64748B !important;
    background:#fff !important;
}

/* Theme hover contrast guard for document-library buttons. */
.dnx-library .dnx-btn,
.dnx-library a.dnx-btn,
.dnx-library button.dnx-btn,
.dnx-library .dnx-doc-card__act,
.dnx-library a.dnx-doc-card__act,
.dnx-library button.dnx-doc-card__act{
    text-shadow:none !important;
}

.dnx-library .dnx-btn--locked,
.dnx-library a.dnx-btn--locked,
.dnx-library button.dnx-btn--locked,
.dnx-library .dnx-doc-card__locked,
.dnx-library a.dnx-doc-card__locked,
.dnx-library button.dnx-doc-card__locked{
    background:#fff !important;
    color:#C8902E !important;
    border-color:rgba(200,144,46,.28) !important;
}

.dnx-library .dnx-btn--locked:hover,
.dnx-library .dnx-btn--locked:focus,
.dnx-library .dnx-btn--locked:focus-visible,
.dnx-library a.dnx-btn--locked:hover,
.dnx-library a.dnx-btn--locked:focus,
.dnx-library button.dnx-btn--locked:hover,
.dnx-library button.dnx-btn--locked:focus,
.dnx-library .dnx-doc-card__locked:hover,
.dnx-library .dnx-doc-card__locked:focus,
.dnx-library a.dnx-doc-card__locked:hover,
.dnx-library a.dnx-doc-card__locked:focus,
.dnx-library button.dnx-doc-card__locked:hover,
.dnx-library button.dnx-doc-card__locked:focus{
    background:#FFF8EA !important;
    color:#A46F13 !important;
    border-color:rgba(200,144,46,.48) !important;
    text-decoration:none !important;
}

.dnx-library .dnx-btn--secondary,
.dnx-library a.dnx-btn--secondary,
.dnx-library button.dnx-btn--secondary,
.dnx-library .dnx-doc-card__view,
.dnx-library a.dnx-doc-card__view{
    background:#fff !important;
    color:#121c83 !important;
    border-color:rgba(18,28,131,.24) !important;
}

.dnx-library .dnx-btn--secondary:hover,
.dnx-library .dnx-btn--secondary:focus,
.dnx-library a.dnx-btn--secondary:hover,
.dnx-library a.dnx-btn--secondary:focus,
.dnx-library button.dnx-btn--secondary:hover,
.dnx-library button.dnx-btn--secondary:focus,
.dnx-library .dnx-doc-card__view:hover,
.dnx-library .dnx-doc-card__view:focus,
.dnx-library a.dnx-doc-card__view:hover,
.dnx-library a.dnx-doc-card__view:focus{
    background:#F3F5FF !important;
    color:#121c83 !important;
    border-color:rgba(18,28,131,.36) !important;
    text-decoration:none !important;
}

.dnx-library .dnx-btn--download,
.dnx-library a.dnx-btn--download,
.dnx-library .dnx-doc-card__dl,
.dnx-library a.dnx-doc-card__dl{
    color:#fff !important;
    text-decoration:none !important;
}

.dnx-library .dnx-btn--download:hover,
.dnx-library .dnx-btn--download:focus,
.dnx-library a.dnx-btn--download:hover,
.dnx-library a.dnx-btn--download:focus,
.dnx-library .dnx-doc-card__dl:hover,
.dnx-library .dnx-doc-card__dl:focus,
.dnx-library a.dnx-doc-card__dl:hover,
.dnx-library a.dnx-doc-card__dl:focus{
    color:#fff !important;
    text-decoration:none !important;
}
@media(max-width:900px){
    .dnx-latest__list{grid-template-columns:1fr;}
}
@media(max-width:600px){
    .dnx-latest{padding:12px;margin-bottom:18px;}
    .dnx-latest__item{grid-template-columns:1fr;gap:8px;}
    .dnx-latest__type{justify-self:start;}
    .dnx-library .dnx-latest .dnx-latest__head h2{font-size:22px !important;}
    .dnx-library .dnx-latest .dnx-latest__body h3{font-size:16px !important;-webkit-line-clamp:4 !important;}
    .dnx-latest__actions{justify-content:stretch;}
    .dnx-latest__actions .dnx-btn{width:100%;}
    .dnx-folder-view .dnx-doc-card{
        display:grid !important;
        grid-template-columns:28px minmax(0,1fr) !important;
        align-items:start !important;
        gap:10px !important;
        padding:14px !important;
    }
    .dnx-folder-view .dnx-doc-card__body{
        min-width:0 !important;
    }
    .dnx-folder-view .dnx-doc-card__actions{
        grid-column:1 / -1;
        width:100%;
        justify-content:stretch !important;
        margin-left:0 !important;
    }
    .dnx-folder-view .dnx-doc-card__act{
        flex:1 1 100%;
        justify-content:center;
        min-height:40px !important;
    }
}
