/* 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); }
.footer-social a { color: #fff; opacity: .9; margin-right: .75rem; }
.footer-social a:hover { opacity: 1; }

/* 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; }
}

/* Floating social bar */
.floating-social {
    position: fixed;
    top: 40%;
    right: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 1035;
}
.floating-social a {
    width: 40px; height: 40px;
    display: grid; place-items: center;
    background: var(--brand-900);
    color: #fff;
    border: 1px solid rgba(255,255,255,.2);
    box-shadow: var(--shadow);
}
.floating-social a:hover { filter: brightness(1.05); text-decoration: none; }
.floating-social .bi { font-size: 18px; }

/* Brand colors */
.floating-social a[aria-label="Facebook"] { background: #1877F2; }
.floating-social a[aria-label="Twitter"],
.floating-social a[aria-label="X"],
.floating-social a[aria-label="X/Twitter"] { background: #000000; }
.floating-social a[aria-label="LinkedIn"] { background: #0A66C2; }
.floating-social a[aria-label="Instagram"] { background: #E4405F; }

@media (max-width: 575.98px) {
    .floating-social { right: 6px; top: auto; bottom: 90px; }
}


