/* ------------- BMS theme: battery green/teal ------------- */

@font-face
{
    font-family: "Roboto Regular";
    src: url("../font/Roboto-Regular.327362a7c8d4.ttf");
}

body
{
    font-family: "Roboto Regular", system-ui, -apple-system, "Segoe UI", Roboto,
        "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
        "Noto Color Emoji";
    background-color: var(--bms-body);
}

body:has(nav#top-navbar)
{
    margin-top: 62px !important;
}

@media (max-width: 992px)
{
    body:has(nav#top-navbar)
    {
        margin-top: 76px !important;
    }
}

:root
{
    --bms-accent: #0f9d8f;
    --bms-accent-dark: #0b7a6f;
    --bms-accent-light: #e0f5f2;
    --bms-accent-border: #0f9d8f;
    --bms-body: #f4f7f6;
    --card-header-bg: #e7f6f4;
    --login-bg: #0f9d8f;
    --table-header-bg: #0f9d8f;
    --table-header-color: #ffffff;
}

/* ---------- top navbar ---------- */
nav#top-navbar
{
    background: linear-gradient(90deg, var(--bms-accent-dark), var(--bms-accent)) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

nav#top-navbar .nav-link
{
    color: #ffffff !important;
}

nav#top-navbar .nav-link:hover
{
    color: #d0f0ec !important;
}

/* ---------- navbar brand ---------- */
nav#top-navbar .navbar-brand
{
    color: #ffffff !important;
    font-weight: 700;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

/* ---------- user icon (mobile) ---------- */
nav#top-navbar .user-icon-mobile
{
    color: #ffffff !important;
    display: none;
    gap: 0.1rem;
    align-items: baseline;
}

nav#top-navbar .user-icon-mobile:hover,
nav#top-navbar .user-icon-mobile:focus
{
    color: #d0f0ec !important;
}

nav#top-navbar .user-chevron
{
    font-size: 0.7rem;
    line-height: 1;
    transition: transform 0.2s ease;
}

nav#top-navbar .dropdown.show .user-chevron
{
    transform: rotate(180deg);
}

/* ---------- mobile navbar ---------- */
@media (max-width: 991.98px)
{
    nav#top-navbar > .container-fluid
    {
        flex-wrap: wrap;
    }

    nav#top-navbar .navbar-brand
    {
        flex-wrap: wrap;
    }

    nav#top-navbar .navbar-title
    {
        width: 100%;
        font-size: 0.85rem;
        line-height: 1.1;
    }

    nav#top-navbar .brand-logo
    {
        font-size: 1.2rem;
    }

    nav#top-navbar .brand-infaco
    {
        height: 1.5rem !important;
    }

    nav#top-navbar > .container-fluid > .dropdown
    {
        position: absolute;
        top: 0;
        right: 0;
    }

    nav#top-navbar .user-icon-mobile
    {
        display: block;
    }
}

/* ---------- cards ---------- */
.card
{
    border: 1px solid #d8e4e1;
    border-radius: 0.6rem;
    box-shadow: 0 1px 4px rgba(15, 157, 143, 0.12);
}

.card-header
{
    background-color: var(--card-header-bg) !important;
    border-bottom: 1px solid #cfdeda;
    font-weight: 600;
    color: var(--bms-accent-dark);
}

.card.bms-card
{
    border-top: 3px solid var(--bms-accent-border);
}

/* ---------- buttons ---------- */
.btn-bms
{
    background-color: var(--bms-accent);
    border-color: var(--bms-accent);
    color: #ffffff;
    font-weight: 600;
}

.btn-bms:hover
{
    background-color: var(--bms-accent-dark);
    border-color: var(--bms-accent-dark);
    color: #ffffff;
}

.btn-outline-bms
{
    border-color: var(--bms-accent);
    color: var(--bms-accent);
}

.btn-outline-bms:hover
{
    background-color: var(--bms-accent);
    color: #ffffff;
}

/* ---------- forms ---------- */
.form-control:focus,
.form-select:focus
{
    border-color: var(--bms-accent) !important;
    box-shadow: 0 0 0 0.25rem rgba(15, 157, 143, 0.25) !important;
}

/* ---------- summary badges ---------- */
.stat-value
{
    font-size: 2.2rem;
}

.stat-total
{
    color: var(--bms-accent-dark);
}

/* ---------- tables ---------- */
.table thead th
{
    background-color: var(--table-header-bg);
    color: var(--table-header-color);
    font-weight: 600;
}

.table-hover tbody tr:hover
{
    background-color: var(--bms-accent-light);
}

/* ---------- login page ---------- */
.login-wrap
{
    min-height: calc(100vh - 62px);
}

.login-logo
{
    font-size: 3rem;
}

/* ---------- environment badge ---------- */
.env-badge
{
    position: fixed;
    bottom: 5px;
    left: 5px;
    z-index: 1050;
}

/* ---------- detail icon ---------- */
a.btn-detail
{
    text-decoration: none;
    font-size: 1.4rem;
}

a.btn-detail:hover
{
    text-decoration: none;
    opacity: 0.7;
}

/* ---------- detail rows ---------- */
.detail-row
{
    border-bottom: 1px solid #e9ecef;
}

.detail-row:last-child
{
    border-bottom: none;
}

/* ---------- print ---------- */
@media print
{
    #top-navbar,
    .noPrint
    {
        display: none !important;
    }

    body:has(nav#top-navbar)
    {
        margin-top: 0 !important;
    }
}
