html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body > .container {
    flex: 1;
}
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 #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 50px;
}

.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;
}
.table td, .table th {
    padding: 0.35rem 0.75rem;
}
.text-truncate-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* ════════════════════════════════════════════
   DARK MODE — Global Bootstrap overrides
   ════════════════════════════════════════════ */
[data-theme="dark"] body {
    background: #0f172a;
    color: #e2e8f0;
}

/* Cards */
[data-theme="dark"] .card {
    background: #1e293b !important;
    border-color: #334155 !important;
    color: #e2e8f0 !important;
}

[data-theme="dark"] .card-body {
    background: #1e293b !important;
}

[data-theme="dark"] .card-header {
    background: #162032 !important;
    border-color: #334155 !important;
}

/* Text */
[data-theme="dark"] .text-muted {
    color: #94a3b8 !important;
}

[data-theme="dark"] .text-dark {
    color: #e2e8f0 !important;
}

[data-theme="dark"] h1, [data-theme="dark"] h2,
[data-theme="dark"] h3, [data-theme="dark"] h4,
[data-theme="dark"] h5, [data-theme="dark"] h6 {
    color: #e2e8f0;
}

/* Backgrounds */
[data-theme="dark"] .bg-white {
    background-color: #1e293b !important;
}

[data-theme="dark"] .bg-light {
    background-color: #1e293b !important;
    color: #e2e8f0 !important;
}

[data-theme="dark"] .bg-body {
    background-color: #0f172a !important;
}

/* Borders */
[data-theme="dark"] .border {
    border-color: #334155 !important;
}

[data-theme="dark"] hr {
    border-color: #334155;
    opacity: 1;
}

/* Buttons */
[data-theme="dark"] .btn-outline-secondary {
    border-color: #475569;
    color: #e2e8f0;
}

    [data-theme="dark"] .btn-outline-secondary:hover {
        background: #334155;
        border-color: #64748b;
        color: #f1f5f9;
    }

/* Forms */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background: #1e293b;
    color: #e2e8f0;
    border-color: #475569;
}

    [data-theme="dark"] .form-control:focus,
    [data-theme="dark"] .form-select:focus {
        background: #1e293b;
        color: #e2e8f0;
        border-color: #3b82f6;
        box-shadow: 0 0 0 .2rem rgba(59,130,246,.25);
    }

    [data-theme="dark"] .form-control::placeholder {
        color: #64748b;
    }

    [data-theme="dark"] .form-control.is-invalid {
        border-color: #ef4444;
    }

    [data-theme="dark"] .form-control.is-valid {
        border-color: #22c55e;
    }

/* Progress */
[data-theme="dark"] .progress {
    background-color: #334155;
}

/* Alerts */
[data-theme="dark"] .alert-success {
    background: #064e3b;
    color: #6ee7b7;
    border-color: #065f46;
}

[data-theme="dark"] .alert-danger {
    background: #450a0a;
    color: #fca5a5;
    border-color: #7f1d1d;
}

[data-theme="dark"] .alert-warning {
    background: #451a03;
    color: #fcd34d;
    border-color: #78350f;
}

[data-theme="dark"] .alert-info {
    background: #0c2a3f;
    color: #7dd3fc;
    border-color: #0369a1;
}

/* Dropdowns */
[data-theme="dark"] .dropdown-menu {
    background: #1e293b;
    border-color: #334155;
}

[data-theme="dark"] .dropdown-item {
    color: #e2e8f0;
}

    [data-theme="dark"] .dropdown-item:hover {
        background: #334155;
    }

[data-theme="dark"] .dropdown-divider {
    border-color: #334155;
}

/* Tables */
[data-theme="dark"] .table {
    color: #e2e8f0;
    border-color: #334155;
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
    background: #162032;
}

[data-theme="dark"] .table-hover > tbody > tr:hover {
    background: #1e293b;
}

/* Pagination */
[data-theme="dark"] .page-link {
    background: #1e293b;
    border-color: #334155;
    color: #93c5fd;
}

    [data-theme="dark"] .page-link:hover {
        background: #334155;
    }

[data-theme="dark"] .page-item.disabled .page-link {
    background: #0f172a;
    color: #475569;
}

/* Input groups */
[data-theme="dark"] .input-group-text {
    background: #334155;
    border-color: #475569;
    color: #e2e8f0;
}

/* Shadows */
[data-theme="dark"] .shadow,
[data-theme="dark"] .shadow-sm {
    box-shadow: 0 2px 8px rgba(0,0,0,.5) !important;
}