:root {
    --wt-navy: #102235;
    --wt-navy-dark: #091724;
    --wt-surface: #ffffff;
    --wt-background: #f3f6f9;
    --wt-border: #dfe5eb;
    --wt-text: #263746;
    --wt-muted: #6c7b88;
    --wt-blue: #246fa8;
    --wt-green: #198754;
    --wt-warning: #d99b22;
    --wt-danger: #c0392b;
}


/* =========================================================
   BASE
   ========================================================= */

html,
body {
    min-height: 100%;
}

body {
    background: var(--wt-background);
    color: var(--wt-text);
}


/* =========================================================
   LOGIN
   ========================================================= */

.login-body {
    background:
        linear-gradient(
            160deg,
            #eef3f7 0%,
            #ffffff 50%,
            #e8eef3 100%
        );
}

.brand-mark {
    width: 72px;
    height: 72px;

    margin-left: auto;
    margin-right: auto;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 18px;

    background: var(--wt-navy);
    color: #fff;

    font-size: 1.4rem;
    font-weight: 700;

    letter-spacing: .06em;

    box-shadow:
        0 10px 25px
        rgba(16, 34, 53, .18);
}

.login-card {
    border-radius: 18px;
}

.form-control {
    border-color: #ccd5dd;
}

.form-control:focus {
    border-color: var(--wt-blue);

    box-shadow:
        0 0 0 .2rem
        rgba(36, 111, 168, .15);
}

.btn-primary {
    background: var(--wt-blue);
    border-color: var(--wt-blue);
}


/* =========================================================
   ADMIN
   ========================================================= */

.app-navbar {
    background: var(--wt-navy);
}

.navbar-brand {
    font-weight: 700;
    letter-spacing: .02em;
}

.page-header {
    margin-bottom: 1.5rem;
}

.page-title {
    font-weight: 700;
    margin-bottom: .25rem;
}


/* =========================================================
   KPI CARDS
   ========================================================= */

.metric-card {
    border: 0;
    border-radius: 14px;

    box-shadow:
        0 2px 10px
        rgba(16, 34, 53, .06);
}

.metric-label {
    font-size: .78rem;

    text-transform: uppercase;

    letter-spacing: .06em;

    color: var(--wt-muted);

    font-weight: 600;
}

.metric-value {
    font-size: 2rem;

    line-height: 1.1;

    font-weight: 700;

    color: var(--wt-navy);
}

.metric-subtitle {
    color: var(--wt-muted);
    font-size: .85rem;
}


/* =========================================================
   CONTENT CARDS
   ========================================================= */

.content-card {
    border: 0;
    border-radius: 14px;

    box-shadow:
        0 2px 10px
        rgba(16, 34, 53, .06);
}

.content-card .card-header {
    background: transparent;

    border-bottom:
        1px solid var(--wt-border);

    font-weight: 600;

    padding:
        1rem
        1.25rem;
}


/* =========================================================
   STATUS
   ========================================================= */

.status-dot {
    display: inline-block;

    width: 8px;
    height: 8px;

    border-radius: 50%;

    margin-right: 5px;
}

.status-online {
    background: var(--wt-green);
}

.status-warning {
    background: var(--wt-warning);
}

.status-danger {
    background: var(--wt-danger);
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767.98px) {

    .metric-value {
        font-size: 1.6rem;
    }

    .container-fluid {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* =========================================================
   DASHBOARD
   ========================================================= */

.dashboard-section-title {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--wt-muted);
    margin-bottom: .75rem;
}

.metric-card {
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.metric-card:hover {
    transform: translateY(-2px);

    box-shadow:
        0 5px 18px
        rgba(16, 34, 53, .09);
}

.metric-value-lg {
    font-size: 2.3rem;
}

.metric-indicator {
    display: inline-flex;
    align-items: center;
    gap: .35rem;

    font-size: .8rem;
    font-weight: 600;
}

.metric-indicator.success {
    color: var(--wt-green);
}

.metric-indicator.warning {
    color: var(--wt-warning);
}

.metric-indicator.danger {
    color: var(--wt-danger);
}

.chart-container {
    position: relative;
    min-height: 300px;
}

.exception-row {
    border-bottom: 1px solid var(--wt-border);
    padding: .9rem 0;
}

.exception-row:last-child {
    border-bottom: 0;
}

.exception-title {
    font-weight: 600;
}

.exception-meta {
    font-size: .82rem;
    color: var(--wt-muted);
}

.badge-verified {
    background: #e4f3ea;
    color: #146c43;
}

.badge-warning-soft {
    background: #fff3cd;
    color: #8a6813;
}

.badge-exception {
    background: #f8d7da;
    color: #842029;
}

.badge-pending {
    background: #e2e3e5;
    color: #41464b;
}

.telemetry-summary {
    font-size: .85rem;
    color: var(--wt-muted);
}

.kpi-icon {
    width: 38px;
    height: 38px;

    display: flex;
    justify-content: center;
    align-items: center;

    border-radius: 10px;

    background: #edf3f8;

    color: var(--wt-navy);

    font-weight: 700;

    margin-bottom: .8rem;
}

.dataTables_wrapper {
    padding: 1rem;
}

table.dataTable > tbody > tr > td {
    vertical-align: middle;
}
