/* ═══════════════════════════════════════════════
   MEP — Brand Identity  (Cyan + Gray)
   ═══════════════════════════════════════════════ */

:root {
    --mep-cyan:         #5ce1e6;
    --mep-cyan-dark:    #2db8be;
    --mep-gray:         #90a4ae;
    --mep-gray-dark:    #546e7a;

    --bs-primary:           #2db8be;
    --bs-primary-rgb:       45, 184, 190;
    --bs-link-color:        #2db8be;
    --bs-link-color-rgb:    45, 184, 190;
    --bs-link-hover-color:  #1a9499;
    --mep-bg:           #f0fbfc;
    --mep-navbar-bg:    linear-gradient(90deg, #a8edea 0%, #eceff1 100%);
}

body { background-color: var(--mep-bg); }

/* ── Navbar ───────────────────────────────────── */
.mep-navbar {
    background: var(--mep-navbar-bg);
    border-bottom: 2px solid var(--mep-cyan-dark);
    box-shadow: 0 2px 8px rgba(92,225,230,.25);
}
.mep-brand {
    font-weight: 900;
    font-size: 1.5rem;
    letter-spacing: .08em;
    background: linear-gradient(90deg, #2db8be, #546e7a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.mep-nav-link { color: #2c6e71 !important; font-weight: 600; transition: color .2s; }
.mep-nav-link:hover { color: var(--mep-gray-dark) !important; }

/* ── Home page title ──────────────────────────── */
.mep-title {
    background: linear-gradient(90deg, #2db8be, #546e7a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 900;
    letter-spacing: .1em;
}

/* ── Custom buttons ───────────────────────────── */
.btn-mep-cyan { background-color: var(--mep-cyan); border-color: var(--mep-cyan-dark); color: #fff; font-weight: 600; }
.btn-mep-cyan:hover { background-color: var(--mep-cyan-dark); border-color: var(--mep-cyan-dark); color: #fff; }

.btn-mep-gray { background-color: var(--mep-gray); border-color: var(--mep-gray-dark); color: #fff; font-weight: 600; }
.btn-mep-gray:hover { background-color: var(--mep-gray-dark); border-color: var(--mep-gray-dark); color: #fff; }

.btn-mep-outline-cyan { background-color: transparent; border-color: var(--mep-cyan-dark); color: var(--mep-cyan-dark); font-weight: 600; }
.btn-mep-outline-cyan:hover { background-color: var(--mep-cyan-dark); border-color: var(--mep-cyan-dark); color: #fff; }

/* ── Table headers ────────────────────────────── */
.thead-mep th { background: linear-gradient(90deg, #2db8be, #5ce1e6) !important; color: #fff !important; border-color: #2db8be !important; }
.thead-mep th.wh-col-name { background: #1a9499 !important; color: #fff !important; }
.thead-mep th.wh-col-take { background: var(--mep-gray-dark) !important; color: #fff !important; }

/* ── Replenishment page ───────────────────────── */
.step-card  { border-left: 4px solid #2db8be; background: #f0fbfc; border-radius: .5rem; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; }
.step-title { font-size: 1rem; font-weight: 700; color: #2db8be; margin-bottom: .75rem; }
.wh-row     { display: flex; gap: .5rem; align-items: center; margin-bottom: .5rem; }
.wh-row .form-select { flex: 1; }
.wh-row .priority-badge { min-width: 2rem; text-align: center; font-weight: 700; color: #fff; background: #2db8be; border-radius: .4rem; padding: .25rem .5rem; }
.tbl-result th  { white-space: nowrap; }
.unmet-cell     { color: #dc3545; font-weight: 700; }
.zero-cell      { color: #adb5bd; }
.tbl-scroll-wrap { max-height: 65vh; overflow-y: auto; border: 1px solid #dee2e6; border-radius: .375rem; }
.tbl-scroll-wrap thead th { position: sticky; top: 0; z-index: 2; }
.tbl-scroll-wrap thead tr:nth-child(2) th { top: 43px; }

/* ── Replenishment — Classic theme overrides ──── */
body.theme-classic .step-card  { border-left-color: #0d6efd; background: #f8f9fa; }
body.theme-classic .step-title { color: #0d6efd; }
body.theme-classic .wh-row .priority-badge { background: #0d6efd; }

/* ── Focus ring ───────────────────────────────── */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--mep-cyan);
}

/* ── Theme toggle button ──────────────────────── */
#btnThemeToggle {
    font-size: .78rem;
    padding: .25rem .65rem;
    border-radius: 20px;
    border: 1.5px solid var(--mep-cyan-dark);
    background: transparent;
    color: #2c6e71;
    cursor: pointer;
    transition: all .2s;
    white-space: nowrap;
}
#btnThemeToggle:hover { background: var(--mep-cyan-dark); color: #fff; }

/* ════════════════════════════════════════════════
   CLASSIC THEME  (body.theme-classic overrides)
   ════════════════════════════════════════════════ */
body.theme-classic {
    --bs-primary:        #0d6efd;
    --bs-primary-rgb:    13, 110, 253;
    --bs-link-color:     #0d6efd;
    --bs-link-hover-color: #0a58ca;
    background-color: #fff;
}
body.theme-classic .mep-navbar {
    background: #fff !important;
    border-bottom: 1px solid #dee2e6;
    box-shadow: none;
}
body.theme-classic .mep-brand {
    background: none;
    -webkit-text-fill-color: #212529;
    color: #212529;
}
body.theme-classic .mep-nav-link       { color: #212529 !important; }
body.theme-classic .mep-nav-link:hover { color: #0d6efd !important; }

body.theme-classic .mep-title {
    background: none;
    -webkit-text-fill-color: #212529;
    color: #212529;
}
body.theme-classic .btn-mep-cyan,
body.theme-classic .btn-mep-gray {
    background-color: #0d6efd;
    border-color: #0a58ca;
    color: #fff;
}
body.theme-classic .btn-mep-cyan:hover,
body.theme-classic .btn-mep-gray:hover {
    background-color: #0a58ca;
    border-color: #0a58ca;
    color: #fff;
}
body.theme-classic .btn-mep-outline-cyan {
    border-color: #0d6efd;
    color: #0d6efd;
}
body.theme-classic .btn-mep-outline-cyan:hover {
    background-color: #0d6efd;
    color: #fff;
}
body.theme-classic .thead-mep th          { background: #212529 !important; border-color: #212529 !important; }
body.theme-classic .thead-mep th.wh-col-name { background: #343a40 !important; }
body.theme-classic .thead-mep th.wh-col-take { background: #495057 !important; }

body.theme-classic #btnThemeToggle {
    border-color: #6c757d;
    color: #495057;
}
body.theme-classic #btnThemeToggle:hover { background: #6c757d; color: #fff; }

/* ── General ──────────────────────────────────── */
html { font-size: 14px; position: relative; min-height: 100%; }
@media (min-width: 768px) { html { font-size: 16px; } }
body { margin-bottom: 60px; }

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}
.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

body {
    background-color: var(--mep-bg);
}

/* ── Navbar ───────────────────────────────────── */
.mep-navbar {
    background: var(--mep-navbar-bg);
    border-bottom: 2px solid var(--mep-cyan-dark);
    box-shadow: 0 2px 8px rgba(92,225,230,.25);
}

.mep-brand {
    font-weight: 900;
    font-size: 1.5rem;
    letter-spacing: .08em;
    background: linear-gradient(90deg, #2db8be, #546e7a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.mep-nav-link {
    color: #2c6e71 !important;
    font-weight: 600;
    transition: color .2s;
}
.mep-nav-link:hover {
    color: var(--mep-gray-dark) !important;
}

/* ── Home page title ──────────────────────────── */
.mep-title {
    background: linear-gradient(90deg, #2db8be, #546e7a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 900;
    letter-spacing: .1em;
}

/* ── Custom buttons ───────────────────────────── */
.btn-mep-cyan {
    background-color: var(--mep-cyan);
    border-color: var(--mep-cyan-dark);
    color: #fff;
    font-weight: 600;
}
.btn-mep-cyan:hover {
    background-color: var(--mep-cyan-dark);
    border-color: var(--mep-cyan-dark);
    color: #fff;
}

.btn-mep-gray {
    background-color: var(--mep-gray);
    border-color: var(--mep-gray-dark);
    color: #fff;
    font-weight: 600;
}
.btn-mep-gray:hover {
    background-color: var(--mep-gray-dark);
    border-color: var(--mep-gray-dark);
    color: #fff;
}

.btn-mep-outline-cyan {
    background-color: transparent;
    border-color: var(--mep-cyan-dark);
    color: var(--mep-cyan-dark);
    font-weight: 600;
}
.btn-mep-outline-cyan:hover {
    background-color: var(--mep-cyan-dark);
    border-color: var(--mep-cyan-dark);
    color: #fff;
}

/* ── Table headers ────────────────────────────── */
.thead-mep th {
    background: linear-gradient(90deg, #2db8be, #5ce1e6) !important;
    color: #fff !important;
    border-color: #2db8be !important;
}
.thead-mep th.wh-col-name {
    background: #1a9499 !important;   /* darker cyan — warehouse name */
    color: #fff !important;
}
.thead-mep th.wh-col-take {
    background: var(--mep-gray-dark) !important;   /* gray — Take qty */
    color: #fff !important;
}

/* ── General focus ring ───────────────────────── */
html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem var(--mep-cyan);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}


@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}