/* Custom CSS overrides for BSA Cloud documentation */

/* ============================================
   NHSBSA Brand Colour Palette
   ============================================
   See brand.md for full colour reference.

   Primary colours:
   - NHS Blue:        #005EB8
   - NHS Dark Blue:   #003087
   - NHS Bright Blue: #0072CE

   Accent / status colours:
   - NHS Green:       #007F3B
   - NHS Orange:      #ED8B00
   - NHS Red:         #D5281B

   Neutrals:
   - NHS Pale Grey:   #E8EDEE
   - NHS Dark Grey:   #425563
   ============================================ */

:root {
    /* Primary colours */
    --nhs-blue: #005EB8;
    --nhs-dark-blue: #003087;
    --nhs-bright-blue: #0072CE;

    /* Accent / status colours */
    --nhs-green: #007F3B;
    --nhs-orange: #ED8B00;
    --nhs-red: #D5281B;

    /* Neutrals */
    --nhs-pale-grey: #E8EDEE;
    --nhs-dark-grey: #425563;

    /* MkDocs Material theme overrides — light mode */
    --md-primary-fg-color: #005EB8;
    --md-primary-fg-color--light: #0072CE;
    --md-primary-fg-color--dark: #003087;
    --md-primary-bg-color: #ffffff;
    --md-primary-bg-color--light: #f5f5f5;

    --md-accent-fg-color: #007F3B;
    --md-accent-fg-color--transparent: rgba(0, 127, 59, 0.1);
    --md-accent-bg-color: #ffffff;

    /* Text colours */
    --md-typeset-a-color: #005EB8;

    /* Code block colours */
    --md-code-bg-color: #f8f9fa;
    --md-code-fg-color: #003087;
}

/* Dark mode colour overrides */
[data-md-color-scheme="slate"] {
    --md-primary-fg-color: #0072CE;
    --md-primary-fg-color--light: #41B6E6;
    --md-primary-fg-color--dark: #005EB8;
    --md-primary-bg-color: #1e1e1e;
    --md-primary-bg-color--light: #2d2d2d;

    --md-accent-fg-color: #007F3B;
    --md-accent-fg-color--transparent: rgba(0, 127, 59, 0.2);
    --md-accent-bg-color: #1e1e1e;

    --md-typeset-a-color: #41B6E6;

    --md-code-bg-color: #2d2d2d;
    --md-code-fg-color: #e0e0e0;
}

/* Header styling — always NHS blue */
.md-header {
    background-color: var(--nhs-blue);
}

[data-md-color-scheme="slate"] .md-header {
    background-color: var(--nhs-blue);
}

[data-md-color-scheme="slate"] .md-header,
[data-md-color-scheme="slate"] .md-header .md-header__title,
[data-md-color-scheme="slate"] .md-header .md-header__topic,
[data-md-color-scheme="slate"] .md-header .md-header__button,
[data-md-color-scheme="slate"] .md-header .md-logo,
[data-md-color-scheme="slate"] .md-tabs__link,
[data-md-color-scheme="slate"] .md-tabs__link--active,
[data-md-color-scheme="slate"] .md-header-nav__button,
[data-md-color-scheme="slate"] .md-header__button.md-icon {
    color: #ffffff;
}

[data-md-color-scheme="slate"] .md-tabs__link:hover {
    color: var(--nhs-green);
}

/* Navigation tabs — always dark blue */
.md-tabs {
    background-color: var(--nhs-dark-blue);
}

[data-md-color-scheme="slate"] .md-tabs {
    background-color: var(--nhs-dark-blue);
}

/* Links */
.md-typeset a {
    color: var(--nhs-blue);
}

.md-typeset a:hover {
    color: var(--nhs-dark-blue);
}

[data-md-color-scheme="slate"] .md-typeset a {
    color: #41B6E6;
}

[data-md-color-scheme="slate"] .md-typeset a:hover {
    color: #00A9CE;
}

/* Buttons and interactive elements */
.md-typeset .md-button--primary {
    background-color: var(--nhs-blue);
    border-color: var(--nhs-blue);
}

.md-typeset .md-button--primary:hover {
    background-color: var(--nhs-dark-blue);
    border-color: var(--nhs-dark-blue);
}

/* Admonition styling */
.md-typeset .admonition.note,
.md-typeset details.note {
    border-color: var(--nhs-blue);
}

.md-typeset .note > .admonition-title,
.md-typeset .note > summary {
    background-color: rgba(0, 94, 184, 0.1);
}

.md-typeset .note > .admonition-title::before,
.md-typeset .note > summary::before {
    background-color: var(--nhs-blue);
}

.md-typeset .admonition.tip,
.md-typeset details.tip {
    border-color: var(--nhs-green);
}

.md-typeset .tip > .admonition-title,
.md-typeset .tip > summary {
    background-color: rgba(0, 127, 59, 0.1);
}

.md-typeset .tip > .admonition-title::before,
.md-typeset .tip > summary::before {
    background-color: var(--nhs-green);
}

.md-typeset .admonition.warning,
.md-typeset details.warning {
    border-color: var(--nhs-orange);
}

.md-typeset .warning > .admonition-title,
.md-typeset .warning > summary {
    background-color: rgba(237, 139, 0, 0.1);
}

.md-typeset .warning > .admonition-title::before,
.md-typeset .warning > summary::before {
    background-color: var(--nhs-orange);
}

/* Search highlight */
.md-search__form {
    background-color: rgba(255, 255, 255, 0.1);
}

/* Footer styling */
.md-footer {
    background-color: var(--nhs-dark-blue);
}

[data-md-color-scheme="slate"] .md-footer {
    background-color: var(--nhs-dark-blue);
}

/* Sidebar navigation active state */
.md-nav__link--active {
    color: var(--nhs-green) !important;
}

/* Table header styling */
.md-typeset table:not([class]) th {
    background-color: var(--nhs-pale-grey);
    color: var(--nhs-dark-blue);
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) th {
    background-color: #3d3d3d;
    color: #e0e0e0;
}

/* Improve code block readability */
.highlight {
    border-radius: 4px;
}

/* Entity type badges */
.md-typeset .admonition.info {
    border-left-color: #1f77b4;
}

/* Enhance table styling */
.md-typeset table:not([class]) {
    border: 1px solid var(--md-default-fg-color--lightest);
    border-radius: 4px;
}

/* Mermaid diagram improvements */
.mermaid,
pre.mermaid {
    text-align: center;
    margin: 2em 0;
}

/* Mermaid fullscreen container */
.mermaid-container {
    position: relative;
    display: block;
    width: 100%;
    text-align: center;
}

.mermaid-container .fullscreen-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background: var(--md-default-bg-color);
    border: 1px solid var(--md-default-fg-color--lightest);
    border-radius: 4px;
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    font-size: 0.75rem;
    opacity: 0.3;
    transition: opacity 0.2s ease;
    z-index: 10;
}

.mermaid-container:hover .fullscreen-btn {
    opacity: 1;
}

.mermaid-container .fullscreen-btn:hover {
    background: var(--md-accent-fg-color);
    color: var(--md-accent-bg-color);
}

/* Fullscreen mode */
.mermaid-container.fullscreen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: var(--md-default-bg-color);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    box-sizing: border-box;
    overflow: auto;
}

.mermaid-container.fullscreen .mermaid svg,
.mermaid-container.fullscreen pre.mermaid svg,
.mermaid-container.fullscreen > svg {
    max-width: 95vw;
    max-height: 90vh;
    width: auto;
    height: auto;
}

.mermaid-container.fullscreen .fullscreen-btn {
    opacity: 1;
    position: fixed;
    top: 1rem;
    right: 1rem;
}

/* Entity type color coding in headings */
h1 code, h2 code, h3 code {
    background-color: var(--md-code-bg-color);
    padding: 0.1em 0.4em;
    border-radius: 3px;
}

/* ============================================
   Page Lifecycle Status Icons
   ============================================ */

:root {
    --md-status--draft: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25z"/></svg>');
}

.md-status--draft::after {
    mask-image: var(--md-status--draft);
    -webkit-mask-image: var(--md-status--draft);
}

/* ============================================
   Review Banner
   ============================================ */

.review-banner {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 2rem;
    padding: 0.65rem 1rem;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.4;
    border-left: 4px solid transparent;
}

.review-banner__icon {
    font-size: 1rem;
    flex-shrink: 0;
}

.review-banner__text {
    flex: 1;
}

/* Green — up to date */
.review-banner--current {
    background-color: rgba(0, 127, 59, 0.1);
    border-left-color: #007F3B;
    color: #005229;
}

[data-md-color-scheme="slate"] .review-banner--current {
    background-color: rgba(0, 127, 59, 0.15);
    color: #5abf8a;
}

/* Amber — due within 2 weeks */
.review-banner--due-soon {
    background-color: rgba(237, 139, 0, 0.1);
    border-left-color: #ED8B00;
    color: #7a4700;
}

[data-md-color-scheme="slate"] .review-banner--due-soon {
    background-color: rgba(237, 139, 0, 0.15);
    color: #f0b46a;
}

/* Red — overdue */
.review-banner--overdue {
    background-color: rgba(213, 40, 27, 0.1);
    border-left-color: #D5281B;
    color: #7f0000;
}

[data-md-color-scheme="slate"] .review-banner--overdue {
    background-color: rgba(213, 40, 27, 0.15);
    color: #f09a9a;
}
