/* Modern theme: minimalist, high-contrast, accessible */
:root {
    --brand-900: #0b3d2e; /* dark green */
    --brand-800: #0a2f24;
    --accent-500: #ffd54d; /* yellow */
    --surface-0: #ffffff;
    --surface-50: #f8fafc;
    --surface-100: #f1f5f9;
    --text-900: #0f172a; /* slate-900 */
    --text-700: #334155;
    --muted: #64748b;
    --border: #e2e8f0;
    --shadow: 0 2px 10px rgba(2, 6, 23, 0.06);
}

html, body {
    min-height: 100%;
    background: var(--surface-50);
    color: var(--text-900);
    font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}
body { display: flex; flex-direction: column; min-height: 100vh; }
main { flex: 1 0 auto; }
footer { flex: 0 0 auto; }

/* Global resets and accessibility */
* { border-radius: 0 !important; }
a { color: var(--brand-900); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 2px solid var(--accent-500); outline-offset: 2px; }

/* Navbar */
.navbar { box-shadow: var(--shadow); }
.navbar-dark.bg-dark { background: var(--brand-900) !important; }
.navbar .form-control { border-color: transparent; }

/* Hero */
.bg-primary { background-color: var(--brand-900) !important; }
.btn-warning { background-color: var(--accent-500); border-color: var(--accent-500); color: #222; }
.btn-warning:hover { filter: brightness(0.95); }

/* Cards */
.card-flat { background: var(--surface-0); border: 1px solid var(--border); box-shadow: var(--shadow); }
.card .text-muted, .text-muted { color: var(--muted) !important; }

/* Tables */
.table > :not(caption) > * > * { padding: .6rem .8rem; }
.table thead th { background: var(--surface-100); color: var(--text-700); font-weight: 600; }

/* Forms */
.form-control, .form-select { border-color: var(--border); }
.form-control:focus, .form-select:focus { border-color: var(--brand-900); box-shadow: 0 0 0 3px rgba(11,61,46,.15); }
.invalid-feedback { color: #b42318; }

/* Buttons */
.btn-dark { background: #111827; border-color: #111827; }
.btn-dark:hover { filter: brightness(1.1); }
.btn-outline-secondary { color: var(--text-700); border-color: var(--border); }

/* Footer */
footer { background: var(--brand-800); color: #fff; border-top: 1px solid rgba(255,255,255,0.12); }

/* Utilities */
.shadow-soft { box-shadow: var(--shadow); }
.badge.bg-secondary { background: #e2e8f0 !important; color: #111827; }

/* Responsive niceties */
@media (min-width: 992px) {
    .navbar .dropdown:hover .dropdown-menu { display: block; }
}


