:root {
  --mli-ink: #152234;
  --mli-muted: #667386;
  --mli-navy: #10243c;
  --mli-navy-deep: #091728;
  --mli-gold: #f2a93b;
  --mli-gold-dark: #c77b0f;
  --mli-sky: #eaf4ff;
  --mli-line: #dce4ec;
  --mli-surface: #ffffff;
  --mli-canvas: #f3f6f9;
  --mli-success: #16764a;
  --bs-body-font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-color: var(--mli-ink);
  --bs-body-bg: var(--mli-canvas);
  --bs-primary: var(--mli-navy);
  --bs-primary-rgb: 16, 36, 60;
  --bs-link-color: #174f84;
  --bs-link-hover-color: #0e355b;
  --bs-border-color: var(--mli-line);
  --bs-border-radius: .7rem;
  --bs-border-radius-lg: 1rem;
}

* { box-sizing: border-box; }
html { min-width: 320px; }
body { min-height: 100vh; }
a { text-underline-offset: .18em; }

.mli-app-page {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  background:
    radial-gradient(circle at 95% 0%, rgba(242, 169, 59, .12), transparent 26rem),
    var(--mli-canvas);
}

.mli-topbar {
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  background: rgba(9, 23, 40, .97);
  box-shadow: 0 8px 28px rgba(9, 23, 40, .13);
}
.mli-topbar .navbar { min-height: 72px; padding-block: .55rem; }
.mli-topbar .navbar-brand { display: flex; align-items: center; gap: .75rem; color: #fff; }
.mli-logo-wrap { display: grid; width: 74px; height: 42px; place-items: center; padding: .3rem; border-radius: .55rem; background: #fff; }
.mli-logo-wrap img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; }
.mli-brand-copy { display: grid; line-height: 1.1; }
.mli-brand-copy strong { font-size: .94rem; letter-spacing: .01em; }
.mli-brand-copy small { margin-top: .2rem; color: #aebed0; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; }
.mli-topbar .nav-link { position: relative; margin-inline: .15rem; border-radius: .55rem; color: #c9d4df; font-size: .9rem; font-weight: 650; }
.mli-topbar .nav-link:hover,
.mli-topbar .nav-link:focus,
.mli-topbar .nav-link.active { color: #fff; background: rgba(255, 255, 255, .08); }
.mli-topbar .nav-link.active::after { position: absolute; right: .7rem; bottom: .28rem; left: .7rem; height: 2px; border-radius: 99px; background: var(--mli-gold); content: ""; }
.mli-topbar .navbar-toggler { border-color: rgba(255,255,255,.25); background: #fff; }
.btn-account { display: flex; align-items: center; gap: .6rem; border: 1px solid rgba(255,255,255,.16); color: #fff; }
.btn-account:hover, .btn-account:focus, .btn-account.show { color: #fff; border-color: rgba(255,255,255,.35); background: rgba(255,255,255,.08); }
.btn-account small { display: block; color: #aebed0; font-size: .72rem; }
.mli-avatar { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--mli-gold); color: #211300; font-weight: 800; }
.offcanvas .dropdown-item { padding-block: .6rem; }

.mli-main { flex: 1; width: 100%; padding-top: clamp(1.75rem, 4vw, 3rem); padding-bottom: 3rem; }
.mli-page-heading { margin-bottom: 1.5rem; }
.mli-page-heading h1 { margin: 0; color: var(--mli-navy-deep); font-size: clamp(1.8rem, 4vw, 2.55rem); font-weight: 760; letter-spacing: -.035em; }
.mli-page-heading .lead { max-width: 66ch; margin-top: .55rem; color: var(--mli-muted); font-size: 1rem; }
.mli-eyebrow { color: var(--mli-gold-dark); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.mli-page-actions { display: flex; flex-wrap: wrap; gap: .5rem; }

.card { border: 1px solid var(--mli-line); box-shadow: 0 12px 32px rgba(21, 34, 52, .055); }
.card-header { border-bottom-color: var(--mli-line); background: rgba(243, 246, 249, .72); }
.mli-panel { border-radius: 1rem; background: var(--mli-surface); }
.mli-panel .card-body { padding: clamp(1rem, 3vw, 1.5rem); }
.mli-stat { padding: 1rem 1.15rem; border: 1px solid var(--mli-line); border-radius: .85rem; background: #fff; }
.mli-stat-label { display: block; color: var(--mli-muted); font-size: .75rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.mli-stat-value { display: block; margin-top: .2rem; color: var(--mli-navy-deep); font-size: 1.35rem; font-weight: 780; }

.mli-action-card { position: relative; display: flex; min-height: 180px; height: 100%; flex-direction: column; overflow: hidden; border: 0; color: #fff; background: linear-gradient(145deg, var(--mli-navy), #183e62); text-decoration: none; }
.mli-action-card::after { position: absolute; right: -1.8rem; bottom: -2.2rem; width: 9rem; height: 9rem; border: 1.8rem solid rgba(255,255,255,.055); border-radius: 50%; content: ""; transition: transform .25s ease; }
.mli-action-card:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 35px rgba(9,23,40,.18); }
.mli-action-card:hover::after { transform: scale(1.08); }
.mli-action-card .card-body { position: relative; z-index: 1; display: flex; flex: 1; flex-direction: column; padding: 1.35rem; }
.mli-action-card h2 { margin: auto 0 .35rem; font-size: 1.35rem; font-weight: 760; }
.mli-action-card p { margin: 0; color: #c6d6e6; font-size: .9rem; }
.mli-action-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(255,255,255,.16); border-radius: .8rem; background: rgba(255,255,255,.08); font-size: 1.15rem; font-weight: 800; }
.mli-action-card.mli-accent { background: linear-gradient(145deg, #834a08, #bf7515); }
.mli-action-card.mli-accent p { color: #fff1db; }

.mli-news-card h2 { font-size: 1rem; font-weight: 760; }
.mli-news-card p { color: var(--mli-muted); white-space: pre-wrap; }
.mli-empty-state { color: var(--mli-muted); font-style: italic; }

.btn { font-weight: 680; }
.btn-primary { --bs-btn-bg: var(--mli-navy); --bs-btn-border-color: var(--mli-navy); --bs-btn-hover-bg: #183e62; --bs-btn-hover-border-color: #183e62; }
.btn-warning { --bs-btn-bg: var(--mli-gold); --bs-btn-border-color: var(--mli-gold); --bs-btn-hover-bg: #e29a2c; --bs-btn-hover-border-color: #e29a2c; color: #201300; }
.form-label, legend { color: var(--mli-navy-deep); font-size: .88rem; font-weight: 720; }
.form-control, .form-select { min-height: 44px; border-color: #cbd6e1; }
.form-control:focus, .form-select:focus { border-color: #3c709e; box-shadow: 0 0 0 .22rem rgba(23,79,132,.13); }
.form-text { color: var(--mli-muted); }

.mli-table { margin-bottom: 0; }
.mli-table > :not(caption) > * > * { padding: .8rem .75rem; border-bottom-color: var(--mli-line); vertical-align: middle; }
.mli-table thead th { color: #526174; background: #f5f8fb; font-size: .72rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.mli-table tbody tr:last-child > * { border-bottom: 0; }
.mli-table tbody tr:hover > * { background: #fafcfe; }
.mli-table-logo { width: 76px; max-height: 36px; object-fit: contain; }
.mli-table-scroll { overflow: auto; border-radius: 1rem; -webkit-overflow-scrolling: touch; }

.mli-auth-page {
  display: grid;
  min-height: 100vh;
  align-items: center;
  background:
    linear-gradient(135deg, rgba(9,23,40,.96), rgba(16,36,60,.91)),
    url("../binding_dark.png") repeat;
}
.mli-auth-shell { width: 100%; padding-top: 2rem; padding-bottom: 2rem; }
.mli-auth-card { width: min(100%, 540px); margin-inline: auto; overflow: hidden; border: 0; border-radius: 1.15rem; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.mli-auth-card.wide { width: min(100%, 680px); }
.mli-auth-brand { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.25rem; border-bottom: 1px solid var(--mli-line); background: #fff; }
.mli-auth-brand img { width: 104px; max-height: 52px; object-fit: contain; }
.mli-auth-brand span { padding-left: .85rem; border-left: 1px solid var(--mli-line); color: var(--mli-muted); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mli-auth-card .card-body { padding: clamp(1.25rem, 5vw, 2rem); }
.mli-auth-card h1 { color: var(--mli-navy-deep); font-size: clamp(1.65rem, 5vw, 2.15rem); font-weight: 780; letter-spacing: -.03em; }

.mli-schedule-table { min-width: 1050px; font-size: .8rem; }
.mli-schedule-table th, .mli-schedule-table td { min-width: 48px; padding: .45rem; text-align: center; vertical-align: middle; }
.mli-schedule-table .mli-terminal { position: sticky; left: 0; z-index: 2; min-width: 112px; background: #fff; }
.mli-schedule-table thead .mli-terminal { z-index: 3; background: #f5f8fb; }
.mli-terminal-logo { width: 70px; max-height: 32px; object-fit: contain; }
.mli-shift-day { background: #ddecfb !important; }
.mli-shift-night { color: #fff !important; background: #162a42 !important; }
.mli-shift-icon { width: 24px; height: 24px; object-fit: contain; }

.mli-camera-card { overflow: hidden; }
.mli-camera-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #dfe6ed; }
.mli-camera-card .card-body { padding: 1rem; }
.mli-camera-card h2 { margin: 0; font-size: 1rem; }

.mli-footer { padding: 1.15rem 0; border-top: 1px solid var(--mli-line); color: #758295; background: #fff; font-size: .78rem; }

@media (max-width: 991.98px) {
  .mli-topbar .offcanvas { color: var(--mli-ink); }
  .mli-topbar .offcanvas .nav-link { margin: .1rem 0; color: var(--mli-ink); }
  .mli-topbar .offcanvas .nav-link:hover,
  .mli-topbar .offcanvas .nav-link:focus,
  .mli-topbar .offcanvas .nav-link.active { color: var(--mli-navy); background: #edf3f8; }
  .mli-topbar .offcanvas .nav-link.active::after { right: auto; top: .65rem; bottom: .65rem; left: .25rem; width: 3px; height: auto; }
  .btn-account { width: 100%; color: var(--mli-ink); border-color: var(--mli-line); }
  .btn-account:hover, .btn-account:focus, .btn-account.show { color: var(--mli-ink); border-color: #b8c7d5; background: #f3f6f9; }
  .btn-account small { color: var(--mli-muted); }
}

@media (max-width: 575.98px) {
  .mli-brand-copy { display: none; }
  .mli-logo-wrap { width: 70px; }
  .mli-main { padding-top: 1.4rem; }
  .mli-page-actions .btn { flex: 1 1 auto; }
  .mli-action-card { min-height: 148px; }
  .mli-auth-brand { justify-content: center; }
}

@media print {
  .mli-topbar, .mli-footer, .mli-page-actions, .btn, .no-print { display: none !important; }
  .mli-app-page, .mli-main { display: block; padding: 0; background: #fff; }
  .card, .mli-table-scroll { border: 0 !important; box-shadow: none !important; overflow: visible; }
  .mli-schedule-table { min-width: 0; width: 100%; font-size: 7pt; }
  .mli-schedule-table th, .mli-schedule-table td { min-width: 0; padding: 2px; }
}
