/* =============================================================================
   MetriTrace Admin — huisstijl gelijk aan metritrace-app
   (kleuren en vormen overgenomen uit metritrace-app/public/assets/css/style.css)
   ============================================================================= */

:root {
    --sidebar-width: 260px;
    --sidebar-collapsed-width: 70px;

    --c-primary:      #0b2747;
    --c-primary-md:   #1A3A5C;
    --c-primary-lt:   #2C5282;
    --c-sidebar-bg:   #061a31;
    --c-footer-bg:    #0D2137;
    --c-accent:       #f28c00;
    --c-accent-hover: #e07b00;
    --c-accent-dk:    #B86500;
    --c-accent-lt:    #FFF3E0;
    --c-text:         #1e293b;
    --c-text-muted:   #64748b;
    --c-muted:        #5A6878;
    --c-bg:           #f3f4f6;
    --c-white:        #ffffff;
    --c-border:       #e2e8f0;
    --c-border-lt:    #E4E8ED;

    --c-success:      #2A7D46;
    --c-success-lt:   #EAF5EE;
    --c-danger:       #B83030;
    --c-danger-lt:    #FDEAEA;
    --c-warning:      #C97000;
    --c-warning-lt:   #FEF6E7;
    --c-info:         #1565A0;
    --c-info-lt:      #E8F1FA;

    --radius-xs: 2px;
    --radius-sm: 4px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
    --shadow-md: 0 3px 10px rgba(0,0,0,0.10);
    --trans:     0.2s ease;

    /* Bootstrap 5 laten meekleuren */
    --bs-primary:            #0b2747;
    --bs-primary-rgb:        11, 39, 71;
    --bs-primary-text-emphasis: #0b2747;
    --bs-primary-bg-subtle:  #e6ebf2;
    --bs-primary-border-subtle: #b6c3d4;
    --bs-link-color:         #2C5282;
    --bs-link-color-rgb:     44, 82, 130;
    --bs-link-hover-color:   #e07b00;
    --bs-link-hover-color-rgb: 224, 123, 0;
    --bs-body-font-family:   'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
    --bs-body-color:         #1e293b;
    --bs-body-bg:            #f3f4f6;
    --bs-border-color:       #e2e8f0;
    --bs-secondary-color:    #64748b;
    --bs-focus-ring-color:   rgba(242, 140, 0, 0.25);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: var(--bs-body-font-family);
    font-size: 0.925rem;
    color: var(--c-text);
    background: var(--c-sidebar-bg);
    line-height: 1.5;
}

/* =============================================================================
   Shell: sidebar + topbar + content + footer
   ============================================================================= */

.mt-app {
    display: flex;
    height: 100vh;
    overflow: hidden;
    overflow: clip;   /* clip: ook niet programmatisch (focus/zoeken) opzij te scrollen */
}

/* --- Sidebar ------------------------------------------------------------- */
.mt-sidebar {
    width: var(--sidebar-width);
    flex-shrink: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--c-sidebar-bg);
    color: var(--c-white);
    border-right: 1px solid rgba(255,255,255,0.08);
    transition: width var(--trans);
    overflow: hidden;
    overflow: clip;
    z-index: 1000;
}

.mt-sidebar-top {
    padding: 22px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.mt-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    min-width: 0;
}
.mt-logo img { height: 30px; flex-shrink: 0; }
.mt-brand { font-size: 22px; font-weight: 800; line-height: 1; white-space: nowrap; }
.mt-brand .white  { color: #fff; }
.mt-brand .orange { color: var(--c-accent); }
.mt-brand-sub {
    font-size: 11px;
    color: #94a3b8;
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.mt-sidebar-content {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    padding: 8px 0 20px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.15) transparent;
}

.mt-menu-title {
    padding: 18px 26px 8px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: #94a3b8;
    font-weight: 700;
    white-space: nowrap;
}

.mt-menu { padding: 0 12px; }

.mt-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #e2e8f0;
    text-decoration: none;
    padding: 10px 14px;
    border-radius: var(--radius-md);
    margin-bottom: 3px;
    font-size: 14px;
    white-space: nowrap;
    transition: background var(--trans), color var(--trans);
}
.mt-menu a:hover  { background: rgba(255,255,255,0.05); color: #fff; }
.mt-menu a.active { background: var(--c-accent); color: #fff; font-weight: 700; }
.mt-menu a i      { width: 20px; text-align: center; flex-shrink: 0; }

/* Ingeklapte sidebar (desktop): alleen iconen */
body.sidebar-collapsed .mt-sidebar { width: var(--sidebar-collapsed-width); }
body.sidebar-collapsed .mt-logo-text,
body.sidebar-collapsed .mt-menu a span,
body.sidebar-collapsed .mt-menu-title { display: none; }
body.sidebar-collapsed .mt-sidebar-top { justify-content: center; padding: 22px 0; }
body.sidebar-collapsed .mt-menu { padding: 0 10px; }
body.sidebar-collapsed .mt-menu a { justify-content: center; padding: 12px 0; }
body.sidebar-collapsed .mt-menu a i { font-size: 1.25rem; }
body.sidebar-collapsed .mt-menu-divider {
    display: block;
    height: 1px;
    margin: 10px 14px;
    background: rgba(255,255,255,0.08);
}
.mt-menu-divider { display: none; }

/* --- Content ------------------------------------------------------------- */
.mt-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: var(--c-bg);
    overflow: hidden;
    overflow: clip;
}

.mt-topbar {
    background: var(--c-sidebar-bg);
    color: #fff;
    padding: 18px 24px;
    border-bottom: 2px solid var(--c-accent);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.mt-topbar h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.mt-topbar-toggle {
    background: none;
    border: 0;
    color: #fff;
    padding: 0;
    margin-right: 14px;
    line-height: 1;
    font-size: 1.75rem;
}
.mt-topbar-toggle:hover { color: var(--c-accent); }

.mt-topbar-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.mt-pill {
    background: rgba(255,255,255,0.1);
    border: 0;
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 13px;
    color: #cbd5e1;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    transition: background var(--trans), color var(--trans);
}
a.mt-pill:hover { background: rgba(255,255,255,0.18); color: #fff; }

.mt-main {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 24px;
}

.mt-footer {
    flex-shrink: 0;
    height: 44px;
    line-height: 44px;
    text-align: center;
    background: var(--c-footer-bg);
    color: rgba(255,255,255,0.45);
    font-size: 12px;
    letter-spacing: 0.3px;
    border-top: 2px solid var(--c-accent);
}

.mt-backdrop { display: none; }

/* --- Mobiel / tablet: sidebar als uitschuifmenu ----------------------------- */
@media (max-width: 991.98px) {
    .mt-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: var(--sidebar-width) !important;
        transform: translateX(-100%);
        transition: transform 0.25s ease;
        z-index: 2000;
    }
    body.sidebar-open .mt-sidebar { transform: none; }
    body.sidebar-open .mt-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(6,26,49,0.55);
        z-index: 1999;
    }
    /* Ingeklapt heeft op mobiel geen betekenis */
    body.sidebar-collapsed .mt-logo-text,
    body.sidebar-collapsed .mt-menu a span,
    body.sidebar-collapsed .mt-menu-title { display: revert; }
    body.sidebar-collapsed .mt-menu a { justify-content: flex-start; padding: 10px 14px; }
    body.sidebar-collapsed .mt-menu-divider { display: none; }

    .mt-topbar { padding: 14px 16px; }
    .mt-topbar h1 { font-size: 18px; }
    .mt-pill .mt-pill-label { display: none; }
    .mt-main { padding: 16px; }
}

/* =============================================================================
   Bootstrap-componenten in MetriTrace-stijl
   ============================================================================= */

h1, h2, h3, h4, h5, h6 { color: var(--c-primary); }
.mt-main h2 { font-size: 1.5rem; font-weight: 700; }
.mt-main h3 { font-size: 1.25rem; font-weight: 700; }
.mt-main h4 { font-size: 1.1rem; font-weight: 700; }
.mt-main h5 { font-size: 1rem; font-weight: 700; }
.text-white h1, .text-white h2, .text-white h3, .text-white h4, .text-white h5,
.bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary h5 { color: inherit; }

a { color: var(--c-primary-lt); }
a:hover { color: var(--c-accent-hover); }

/* --- Knoppen --- */
.btn {
    font-weight: 600;
    border-radius: 10px;
    --bs-btn-focus-shadow-rgb: 242, 140, 0;
}
.btn-sm { border-radius: 8px; }
.btn-lg { border-radius: 12px; }

.btn-primary {
    --bs-btn-bg: var(--c-primary);
    --bs-btn-border-color: var(--c-primary);
    --bs-btn-hover-bg: var(--c-primary-md);
    --bs-btn-hover-border-color: var(--c-primary-md);
    --bs-btn-active-bg: #061a31;
    --bs-btn-active-border-color: #061a31;
    --bs-btn-disabled-bg: var(--c-primary);
    --bs-btn-disabled-border-color: var(--c-primary);
}
.btn-primary:hover { box-shadow: 0 3px 8px rgba(13,33,55,0.30); }

.btn-outline-primary {
    --bs-btn-color: var(--c-primary);
    --bs-btn-border-color: var(--c-primary);
    --bs-btn-hover-bg: var(--c-primary);
    --bs-btn-hover-border-color: var(--c-primary);
    --bs-btn-active-bg: var(--c-primary);
    --bs-btn-active-border-color: var(--c-primary);
    --bs-btn-disabled-color: var(--c-primary);
    --bs-btn-disabled-border-color: var(--c-primary);
}

/* Oranje actieknop, zoals .btn-orange in de app */
.btn-orange, .btn-accent {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--c-accent);
    --bs-btn-border-color: var(--c-accent);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--c-accent-hover);
    --bs-btn-hover-border-color: var(--c-accent-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--c-accent-dk);
    --bs-btn-active-border-color: var(--c-accent-dk);
}

.btn-success {
    --bs-btn-bg: var(--c-success);
    --bs-btn-border-color: var(--c-success);
    --bs-btn-hover-bg: #226839;
    --bs-btn-hover-border-color: #226839;
}
.btn-danger {
    --bs-btn-bg: var(--c-danger);
    --bs-btn-border-color: var(--c-danger);
    --bs-btn-hover-bg: #952626;
    --bs-btn-hover-border-color: #952626;
}

/* --- Formulieren --- */
.form-label {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--c-muted);
    margin-bottom: 0.3rem;
}
/* Rand duidelijk zichtbaar op een witte kaart (--c-border viel weg) */
.form-control, .form-select {
    border-color: #B6C2CF;
    border-radius: 8px;
    color: var(--c-text);
    background-color: #fff;
}
.form-control::placeholder { color: #94A3B8; }

/* Vergrendelde blokken (data-lock): velden lezen als een waarde, niet als invoer.
   Tekst blijft goed leesbaar; pas na "Bewerken" worden het invoervelden. */
.mt-lock-card .card-header { display: flex; align-items: center; gap: .5rem; }
.mt-lock-card .card-header .mt-lock-actions { margin-left: auto; display: flex; gap: .4rem; }
.mt-lock-card.is-locked .form-control:disabled,
.mt-lock-card.is-locked .form-select:disabled {
    background-color: #F1F4F8;
    border-color: transparent;
    color: var(--c-text);
    opacity: 1;
    cursor: default;
}
.mt-lock-card.is-locked .form-select:disabled { background-image: none; }
.mt-lock-card.is-locked .form-control:disabled::placeholder { color: transparent; }
.mt-lock-card.is-locked .form-check-input:disabled,
.mt-lock-card.is-locked .form-check-input:disabled ~ .form-check-label { opacity: 1; cursor: default; }
.mt-lock-card.is-locked .mt-lock-hide { display: none !important; }
.mt-lock-card:not(.is-locked) .mt-lock-only { display: none !important; }
.mt-lock-card.is-editing { box-shadow: 0 0 0 2px var(--c-accent) !important; }
.mt-lock-card.is-editing .card-header { background: var(--c-accent-lt) !important; }
.form-control:hover:not(:focus):not(:disabled),
.form-select:hover:not(:focus):not(:disabled) { border-color: #9AAAB8; }
.form-control:focus, .form-select:focus {
    border-color: var(--c-accent);
    box-shadow: 0 0 0 3px rgba(242,140,0,0.18);
}
.form-check-input:checked {
    background-color: var(--c-accent);
    border-color: var(--c-accent);
}
.form-check-input:focus {
    border-color: var(--c-accent);
    box-shadow: 0 0 0 3px rgba(242,140,0,0.18);
}
.form-switch .form-check-input:focus {
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23f28c00'/%3e%3c/svg%3e");
}
.input-group-text { background: #f8fafc; border-color: var(--c-border); color: var(--c-muted); }
.font-monospace { font-size: 0.875rem; }

/* --- Kaarten --- */
.card {
    --bs-card-border-color: var(--c-border);
    --bs-card-border-radius: var(--radius-lg);
    --bs-card-inner-border-radius: calc(var(--radius-lg) - 1px);
    --bs-card-cap-bg: #fff;
    box-shadow: var(--shadow-sm);
}
.card.border-0 { border: 1px solid var(--c-border) !important; }
.card-header {
    padding: 0.9rem 1.25rem;
    font-weight: 700;
    color: var(--c-primary);
    border-bottom: 1px solid var(--c-border);
}
.card-header.bg-light { background: #f8fafc !important; }
.card-footer { background: #f8fafc; border-top-color: var(--c-border); }
.card > .table-responsive:last-child,
.card > .table:last-child { border-bottom-left-radius: var(--bs-card-inner-border-radius); border-bottom-right-radius: var(--bs-card-inner-border-radius); }

/* Statistiekkaarten op het dashboard */
.rounded-circle.p-3 {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- Tabellen: navy kop zoals in de app --- */
.table { --bs-table-hover-bg: var(--c-accent-lt); margin-bottom: 0; }
.table > thead > tr > th {
    background-color: var(--c-primary);
    color: rgba(255,255,255,0.88);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    border-bottom: 0;
    padding: 11px 14px;
    white-space: nowrap;
}
.table > thead > tr > th a { color: #fff; }
.table > tbody > tr > td {
    padding: 10px 14px;
    border-color: var(--c-border-lt);
    font-size: 13.5px;
    vertical-align: middle;
}
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: var(--c-accent-lt); }
.table a { font-size: 0.85rem; }
.table-sm > thead > tr > th, .table-sm > tbody > tr > td { padding: 6px 10px; }

/* --- Meldingen --- */
.alert {
    border: 0;
    border-left: 4px solid transparent;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
}
.alert-info      { background: var(--c-info-lt);    border-left-color: var(--c-info);    color: #0D3C6E; }
.alert-success   { background: var(--c-success-lt); border-left-color: var(--c-success); color: #1A5230; }
.alert-warning   { background: var(--c-warning-lt); border-left-color: var(--c-warning); color: #7D4600; }
.alert-danger    { background: var(--c-danger-lt);  border-left-color: var(--c-danger);  color: #7A1E1E; }
.alert-primary   { background: #e6ebf2;             border-left-color: var(--c-primary); color: var(--c-primary); }
.alert-secondary, .alert-light { background: #f8fafc; border-left-color: #94a3b8; color: var(--c-muted); }
.alert-light code { font-size: 0.78rem; color: #555; }

/* --- Badges --- */
.badge { font-weight: 600; letter-spacing: 0.02em; border-radius: 6px; }

/* --- Tabs, pills, paginering, dropdowns --- */
.nav-tabs { border-bottom-color: var(--c-border); }
.nav-tabs .nav-link { color: var(--c-muted); font-weight: 600; border: 0; border-bottom: 3px solid transparent; }
.nav-tabs .nav-link:hover { color: var(--c-primary); border-bottom-color: var(--c-border); }
.nav-tabs .nav-link.active { color: var(--c-primary); background: transparent; border-bottom-color: var(--c-accent); }
.nav-pills .nav-link { color: var(--c-muted); font-weight: 600; border-radius: 10px; }
.nav-pills .nav-link.active { background: var(--c-accent); color: #fff; }

.pagination {
    --bs-pagination-color: var(--c-primary);
    --bs-pagination-hover-color: var(--c-accent-hover);
    --bs-pagination-active-bg: var(--c-primary);
    --bs-pagination-active-border-color: var(--c-primary);
    --bs-pagination-focus-box-shadow: 0 0 0 3px rgba(242,140,0,0.18);
}
.dropdown-menu { border-color: var(--c-border); box-shadow: var(--shadow-md); border-radius: 10px; }
.dropdown-item.active, .dropdown-item:active { background: var(--c-accent); }

.list-group-item.active { background: var(--c-primary); border-color: var(--c-primary); }
.progress-bar { background-color: var(--c-accent); }
.progress-bar.bg-success { background-color: var(--c-success) !important; }
.progress-bar.bg-danger  { background-color: var(--c-danger) !important; }

.modal-content { border: 0; border-radius: var(--radius-md); border-top: 4px solid var(--c-accent); }
.modal-header { border-bottom-color: var(--c-border); }

code { color: #b4540a; }

/* =============================================================================
   Publieke pagina's: inloggen, code, wachtwoord vergeten
   (zelfde als de login van metritrace-app)
   ============================================================================= */

body.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 16px 80px;
    background-color: #0D2137;
    background-image:
        repeating-linear-gradient(0deg,  transparent, transparent 39px, rgba(255,255,255,0.025) 39px, rgba(255,255,255,0.025) 40px),
        repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(255,255,255,0.025) 39px, rgba(255,255,255,0.025) 40px);
}

.auth-card {
    width: 100%;
    max-width: 420px;
    background: #fff;
    border-radius: 2px;
    border-top: 4px solid #E07B00;
    box-shadow: 0 20px 60px rgba(0,0,0,0.40);
    overflow: hidden;
}

.auth-card-header {
    background: #0D2137;
    padding: 26px 36px 22px;
    text-align: center;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.auth-logo { width: 110px; display: block; margin: 0 auto; }
.auth-brand { margin-top: 10px; font-size: 2.1rem; font-weight: 800; line-height: 1.1; }
.auth-brand .white  { color: #fff; }
.auth-brand .orange { color: #f28c00; }
.auth-sub {
    margin-top: 6px;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.auth-card-body { padding: 26px 36px 26px; }
.auth-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--c-primary);
    margin: 0 0 16px;
}
.auth-text { font-size: 13.5px; color: var(--c-muted); margin-bottom: 18px; }

.auth-card-body .form-group { margin-bottom: 14px; }
.auth-card-body .form-group > label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    color: #5A6878;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    margin-bottom: 5px;
}
.auth-input {
    width: 100%;
    height: 40px;
    padding: 0 12px;
    border: 1px solid #CDD3DA;
    border-radius: 2px;
    background: #F4F6F8;
    color: #1A2530;
    font-size: 14px;
    font-family: inherit;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
}
.auth-input:focus {
    border-color: #E07B00;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(224,123,0,0.18);
}
.auth-input::placeholder { color: #A8B5C2; }
.auth-input.auth-code {
    height: 54px;
    text-align: center;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 10px;
    font-family: Consolas, 'Courier New', monospace;
    color: var(--c-primary);
}

.auth-pw-wrap { position: relative; }
.auth-pw-wrap .auth-input { padding-right: 42px; }
.auth-pw-toggle {
    position: absolute;
    top: 0;
    right: 0;
    height: 40px;
    width: 40px;
    border: 0;
    background: none;
    color: #8A97A6;
}
.auth-pw-toggle:hover { color: #E07B00; }

.auth-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 14px 0 16px;
    font-size: 13px;
    color: #5A6878;
}
.auth-check input { width: 16px; height: 16px; margin-top: 2px; accent-color: #E07B00; cursor: pointer; flex-shrink: 0; }
.auth-check label { cursor: pointer; }

.auth-btn {
    width: 100%;
    height: 42px;
    border: 0;
    border-radius: 2px;
    background: #E07B00;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(224,123,0,0.30);
    transition: background 0.15s, box-shadow 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-decoration: none;
}
.auth-btn:hover { background: #B86500; color: #fff; box-shadow: 0 4px 14px rgba(224,123,0,0.40); }
.auth-btn:active { background: #9A5500; box-shadow: none; }

.auth-btn-link {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-size: 13px;
    color: #5A6878;
    text-decoration: none;
    cursor: pointer;
}
.auth-btn-link:hover { color: #E07B00; text-decoration: underline; }

.auth-links {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    font-size: 13px;
}
.auth-links.center { justify-content: center; }
.auth-links a { color: #5A6878; text-decoration: none; }
.auth-links a:hover { color: #E07B00; text-decoration: underline; }

.auth-msg {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 11px 14px;
    margin-bottom: 18px;
    border-radius: 2px;
    border-left: 3px solid;
    font-size: 13px;
    font-weight: 500;
}
.auth-msg i { margin-top: 1px; }
.auth-msg-error   { background: #FDEAEA; border-color: #B83030; color: #7A1E1E; }
.auth-msg-success { background: #EDFAF3; border-color: #1A7F4B; color: #145233; }
.auth-msg-info    { background: #E8F1FA; border-color: #1565A0; color: #0D3C6E; }

.auth-strength { height: 4px; background: #E4E8ED; border-radius: 2px; overflow: hidden; margin-top: 8px; }
.auth-strength-bar { height: 100%; width: 0; transition: width 0.2s, background 0.2s; }
.auth-hint { font-size: 12px; color: #8A97A6; margin-top: 5px; min-height: 18px; }

.auth-footer {
    position: fixed;
    bottom: 0;
    right: 0;
    padding: 16px 28px;
    color: rgba(255,255,255,0.30);
    font-size: 12px;
    text-align: right;
    letter-spacing: 0.3px;
}
.auth-footer strong { color: rgba(255,255,255,0.50); font-weight: 600; }

@media (max-width: 480px) {
    .auth-card-header, .auth-card-body { padding-left: 22px; padding-right: 22px; }
    .auth-footer { position: static; text-align: center; }
    body.auth-page { flex-direction: column; padding-bottom: 20px; }
}
