/* AMCIH visual identity layer. No GLPI core styles are modified. */
:root {
    --amcih-navy: #172a46;
    --amcih-sky: #79a5b5;
    --amcih-turquoise: #07fbbc;
    --amcih-beige: #ece2db;
    --amcih-blue: #005b94;
    --amcih-navy-rgb: 23, 42, 70;
    --amcih-blue-rgb: 0, 91, 148;
    --amcih-font: "Montserrat", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    /* Bootstrap/GLPI variables used by GLPI 10 and 11. */
    --tblr-primary: var(--amcih-blue);
    --tblr-primary-rgb: var(--amcih-blue-rgb);
    --bs-primary: var(--amcih-blue);
    --bs-primary-rgb: var(--amcih-blue-rgb);
    --bs-link-color: var(--amcih-blue);
    --bs-link-hover-color: var(--amcih-navy);
}

html,
body,
button,
input,
select,
textarea,
.form-control,
.form-select,
.btn,
.dropdown-menu,
.tooltip,
.popover {
    font-family: var(--amcih-font);
}

body {
    accent-color: var(--amcih-blue);
}

/* Neutralize legacy login-logo containers before applying the AMCIH mark. */
#logo_login,
.logo_login,
.login-logo,
.login_logo {
    background-image: none !important;
}

a:not(.btn):not(.nav-link) {
    color: var(--amcih-blue);
}

a:not(.btn):not(.nav-link):hover,
a:not(.btn):not(.nav-link):focus {
    color: var(--amcih-navy);
}

.btn-primary,
.bg-primary {
    background-color: var(--amcih-blue) !important;
    border-color: var(--amcih-blue) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
    background-color: var(--amcih-navy) !important;
    border-color: var(--amcih-navy) !important;
}

.btn-outline-primary {
    color: var(--amcih-blue) !important;
    border-color: var(--amcih-blue) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    color: #fff !important;
    background-color: var(--amcih-blue) !important;
    border-color: var(--amcih-blue) !important;
}

.text-primary {
    color: var(--amcih-blue) !important;
}

.border-primary {
    border-color: var(--amcih-blue) !important;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: var(--amcih-sky);
    box-shadow: 0 0 0 .25rem rgba(var(--amcih-blue-rgb), .18);
}

.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--amcih-blue);
    border-color: var(--amcih-blue);
}

.progress-bar,
.page-item.active .page-link {
    background-color: var(--amcih-blue);
    border-color: var(--amcih-blue);
}

.page-link {
    color: var(--amcih-blue);
}

.page-link:hover {
    color: var(--amcih-navy);
}

/* Main navigation: preserve structure and only replace colors. */
header.navbar,
.navbar.navbar-dark,
aside.navbar,
.sidebar {
    --tblr-navbar-bg: var(--amcih-navy);
}

header.navbar.navbar-dark,
aside.navbar.navbar-dark,
.sidebar.navbar-dark {
    background-color: var(--amcih-navy) !important;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus,
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .show > .nav-link {
    color: #fff;
    background-color: rgba(121, 165, 181, .22);
}

.navbar-dark .nav-item.active > .nav-link,
.navbar-dark .nav-link[aria-current="page"] {
    border-color: var(--amcih-turquoise);
}

.dropdown-item.active,
.dropdown-item:active,
.list-group-item.active {
    background-color: var(--amcih-blue);
    border-color: var(--amcih-blue);
}

.card-header,
.modal-header {
    border-bottom-color: rgba(var(--amcih-navy-rgb), .14);
}

.table thead th {
    color: var(--amcih-navy);
    border-bottom-color: var(--amcih-sky);
}

/* Login/anonymous pages. Beige is kept subtle for legibility. */
.page-anonymous,
body.signin,
body.login {
    background-color: var(--amcih-beige);
}

/* Final login brand layer: covers any independently-rendered native GLPI mark. */
#amcih-login-brand-overlay {
    position: absolute;
    z-index: 2147483647;
    top: 28px;
    left: 50%;
    width: 320px;
    height: 225px;
    transform: translateX(-50%);
    pointer-events: none;
    background-color: var(--amcih-beige);
    background-image: url("../pics/logo-vertical-amcih.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: auto 190px;
}

@media (max-width: 575.98px) {
    #amcih-login-brand-overlay {
        top: 12px;
        width: 250px;
        height: 175px;
        background-size: auto 150px;
    }
}

.page-anonymous .card,
body.signin .card,
body.login .card {
    border-color: rgba(var(--amcih-navy-rgb), .12);
    box-shadow: 0 1rem 3rem rgba(var(--amcih-navy-rgb), .12);
}

/* Logos marked by the companion visual-only script. */
.page .glpi-logo,
.navbar-brand .glpi-logo,
.glpi-logo {
    display: block;
    width: 220px !important;
    height: 68px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    background-image: url("../pics/logo-horizontal-amcih.svg") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    font-size: 0 !important;
    color: transparent !important;
    text-shadow: none !important;
    overflow: hidden !important;
}

#logo_login.glpi-logo,
.logo_login.glpi-logo,
.login-logo.glpi-logo,
.login_logo.glpi-logo {
    background-image: url("../pics/logo-vertical-amcih.svg") !important;
}

/* Remove every native GLPI mark layered inside the logo container. */
.glpi-logo::before,
.glpi-logo::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

.glpi-logo > img,
.glpi-logo > svg,
.glpi-logo > picture,
.glpi-logo > span {
    display: none !important;
}

.page-anonymous .glpi-logo,
body.signin .glpi-logo,
body.login .glpi-logo {
    width: 220px !important;
    height: 190px !important;
    background-image: url("../pics/logo-vertical-amcih.svg") !important;
    font-size: 0 !important;
    color: transparent !important;
    text-shadow: none !important;
    overflow: hidden !important;
}

/* GLPI may render its login mark as an inner image/SVG or pseudo-element. */
.page-anonymous .glpi-logo::before,
.page-anonymous .glpi-logo::after,
body.signin .glpi-logo::before,
body.signin .glpi-logo::after,
body.login .glpi-logo::before,
body.login .glpi-logo::after {
    content: none !important;
    display: none !important;
    background: none !important;
}

.page-anonymous .glpi-logo > img,
.page-anonymous .glpi-logo > svg,
.page-anonymous .glpi-logo > picture,
body.signin .glpi-logo > img,
body.signin .glpi-logo > svg,
body.signin .glpi-logo > picture,
body.login .glpi-logo > img,
body.login .glpi-logo > svg,
body.login .glpi-logo > picture {
    display: none !important;
}

/* Compact sidebar: retain a readable AMCIH mark. */
.navbar-collapsed .glpi-logo,
.navbar-vertical.navbar-collapsed .glpi-logo,
body.navbar-collapsed .glpi-logo {
    width: 48px !important;
    height: 48px !important;
    background-image: url("../pics/logo-vertical-amcih.svg") !important;
}

img[data-amcih-logo="horizontal"] {
    width: min(100%, 265px) !important;
    height: auto !important;
    max-height: 64px !important;
    object-fit: contain;
}

img[data-amcih-logo="vertical"] {
    display: block !important;
    width: min(100%, 190px) !important;
    height: auto !important;
    max-height: 210px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    object-fit: contain;
}
