
body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* =========================================================
   StellenK9 Modern Theme System (Day/Night)
   - Uses CSS variables
   - Toggle via data-theme on <html>
   ========================================================= */
:root{
  --bg: #f6f7fb;
  --bg2: #eef2ff;
  --panel: rgba(255,255,255,0.72);
  --panel-solid: #ffffff;
  --card: rgba(255,255,255,0.82);
  --text: #0f172a;
  --muted: rgba(15, 23, 42, 0.68);
  --border: rgba(15, 23, 42, 0.10);
  --shadow: 0 10px 30px rgba(2, 6, 23, 0.08);
  --shadow2: 0 6px 18px rgba(2, 6, 23, 0.10);
  --accent: #2563eb;
  --accent2:#22c55e;
  --danger:#ef4444;
  --warning:#f59e0b;
  --radius: 18px;
  --radius-sm: 12px;
  --input-bg: rgba(255,255,255,0.9);
  --input-text: #0f172a;
  --input-border: rgba(15, 23, 42, 0.14);
  --focus: 0 0 0 4px rgba(37,99,235,0.18);
}

html[data-theme="dark"]{
  --bg: #0b1220;
  --bg2:#0f1b33;
  --panel: rgba(17, 24, 39, 0.62);
  --panel-solid: #111827;
  --card: rgba(17, 24, 39, 0.76);
  --text: rgba(255,255,255,0.92);
  --muted: rgba(255,255,255,0.65);
  --border: rgba(255,255,255,0.10);
  --shadow: 0 12px 34px rgba(0,0,0,0.45);
  --shadow2: 0 8px 22px rgba(0,0,0,0.42);
  --accent: #60a5fa;
  --accent2:#34d399;
  --danger:#fb7185;
  --warning:#fbbf24;
  --input-bg: rgba(17, 24, 39, 0.82);
  --input-text: rgba(255,255,255,0.92);
  --input-border: rgba(255,255,255,0.14);
}

/* Global background */
body:not(.login-page){
  background: radial-gradient(1200px 700px at 20% 0%, var(--bg2), transparent 60%),
              radial-gradient(900px 600px at 90% 20%, rgba(34,197,94,0.18), transparent 55%),
              linear-gradient(180deg, var(--bg), var(--bg));
  color: var(--text);
}

/* Typography */
h1,h2,h3,h4,h5{ color: var(--text); letter-spacing: -0.02em; }
.small, .text-muted{ color: var(--muted) !important; }

/* Cards */
.card{
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  background: var(--card) !important;
  box-shadow: var(--shadow) !important;
  overflow: hidden;
}
.card .card-title{ color: var(--text); }
.card .card-text{ color: var(--muted); }

/* Buttons */
.btn{
  border-radius: 12px;
}
.btn-primary{
  background: linear-gradient(135deg, var(--accent), rgba(96,165,250,0.85)) !important;
  border: 0 !important;
  box-shadow: 0 10px 20px rgba(37,99,235,0.22);
}
.btn-outline-light, .btn-outline-secondary, .btn-outline-primary{
  border-color: var(--border) !important;
}
.btn-outline-light{
  color: var(--text) !important;
}
.btn:hover{ transform: translateY(-1px); }
.btn:active{ transform: translateY(0); }

/* Inputs */
.form-control, .form-select, textarea{
  border-radius: 12px !important;
  background: var(--input-bg) !important;
  color: var(--input-text) !important;
  border: 1px solid var(--input-border) !important;
}
.form-control::placeholder, textarea::placeholder{
  color: rgba(255,255,255,0.55);
}
html[data-theme="light"] .form-control::placeholder,
html[data-theme="light"] textarea::placeholder{
  color: rgba(15,23,42,0.40);
}
.form-control:focus, .form-select:focus, textarea:focus{
  box-shadow: var(--focus) !important;
  border-color: rgba(37,99,235,0.55) !important;
}

/* Modals */
.modal-content{
  background: var(--panel-solid) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow) !important;
}
.modal-header, .modal-footer{
  border-color: var(--border) !important;
}
.modal-title{ color: var(--text) !important; }
.modal .form-label{ color: var(--text) !important; font-weight: 600; }
.modal .text-muted{ color: var(--muted) !important; }

/* Tables */
.table{
  color: var(--text) !important;
}
.table thead th{
  color: var(--muted) !important;
  border-bottom-color: var(--border) !important;
}
.table td, .table th{
  border-top-color: var(--border) !important;
}
.table-hover tbody tr:hover{
  background: rgba(37,99,235,0.06);
}

/* Topbar */
.sk9-topbar{
  background: var(--panel) !important;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow2);
  backdrop-filter: blur(10px);
}
.sk9-topbar-title{
  color: var(--text);
  font-weight: 800;
}
.sk9-topbar-actions{
  margin-left: auto;
  display: flex;
  gap: .5rem;
  align-items: center;
}
.sk9-theme-toggle{
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .6rem;
  background: rgba(255,255,255,0.14);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 999px;
}
.sk9-theme-toggle:hover{
  background: rgba(37,99,235,0.10);
}

/* Sidebar */
.sk9-sidebar{
  background: rgba(9, 14, 25, 0.92) !important;
  border-right: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 30px 60px rgba(0,0,0,0.30);
}
html[data-theme="light"] .sk9-sidebar{
  background: rgba(255,255,255,0.78) !important;
  border-right: 1px solid var(--border);
  box-shadow: var(--shadow2);
}
.sk9-brand-link{ color: var(--text) !important; }
.sk9-brand-tagline{ color: var(--muted) !important; }
.sk9-nav-link{
  border-radius: 12px;
  color: var(--muted) !important;
  border: 1px solid transparent;
}
.sk9-nav-link:hover{
  color: var(--text) !important;
  background: rgba(37,99,235,0.10);
  border-color: rgba(37,99,235,0.14);
}
.sk9-nav-link.active{
  color: #fff !important;
  background: linear-gradient(135deg, var(--accent), rgba(34,197,94,0.55));
  border-color: transparent;
}
html[data-theme="light"] .sk9-nav-link.active{
  color: #0b1220 !important;
}

/* Sidebar footer buttons */
.sk9-sidebar-footer .sk9-theme-toggle-sidebar{
  width: 100%;
  justify-content: center;
  margin-top: .75rem;
  background: rgba(255,255,255,0.10);
}
html[data-theme="light"] .sk9-sidebar-footer .sk9-theme-toggle-sidebar{
  background: rgba(15,23,42,0.05);
}

/* Utility: subtle section headers */
.sk9-section-title{
  font-weight: 800;
  letter-spacing: -0.02em;
}



/* Default background for all non-login pages */
body:not(.login-page) {
    background-color: #f8f9fa;
}

/* Login page background */
body.login-page {
    min-height: 100vh;
    margin: 0;
    background: #000 url('../img/stellenk9_login_bg.jpg') center center no-repeat;
    background-size: cover;
}


/* Login layout: keep the login form vertically centered and not stuck at the top */
body.login-page .container-fluid {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 3rem;
    padding-bottom: 3rem;
}
body.login-page .container-fluid > .row.justify-content-center {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
}
/* Center the login content vertically and horizontally on login page */
body.login-page .container-fluid {
    min-height: 100vh;
    margin-top: 0;
    margin-bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hide navbar entirely on login page (prevents floating brand button) */
body.login-page nav.sk9-app .navbar{display:none;}

/* Make the login column wider on desktop */
@media (min-width: 992px) {
    body.login-page .row.justify-content-center {
        justify-content: center !important;
    }
    body.login-page .col-md-5 {
        flex: 0 0 640px;
        max-width: 640px;
    }
}

/* Login card styling */
.login-card {
    background: rgba(0, 0, 0, 0.78);
    color: #ffffff;
    border-radius: 0.75rem;
    width: 100%;
}

/* Logo above login form */
.login-logo {
    max-width: 260px;
    height: auto;
}

/* Labels and text on login card */
body.login-page .login-card .form-label,
body.login-page .login-card label,
body.login-page .login-card h1,
body.login-page .login-card p {
    color: #ffffff;
}

/* Inputs stay readable on dark card */
body.login-page .login-card .form-control {
    background-color: rgba(255, 255, 255, 0.94);
    color: #000000;
}

/* General card rounding across site */
.card {
    border-radius: 0.75rem;
}

.btn {
    border-radius: 0.5rem;
}

table.table-sm td,
table.table-sm th {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

/* Medium screens / tablets */
@media (max-width: 991.98px) {
    body.login-page .container-fluid {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .login-logo {
        max-width: 220px;
    }
}

/* Phones */
@media (max-width: 768px) {
    body.login-page .container-fluid {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    .login-logo {
        max-width: 190px;
    }

    .login-card .card-body {
        padding: 1.5rem !important;
    }
}

/* Very small phones */
@media (max-width: 480px) {
    .login-card .card-body {
        padding: 1.25rem !important;
    }
}


/* --- Added padding/centering for login page --- */
body.login-page .login-page .container-fluid {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 3rem;
    padding-bottom: 3rem;
}

/* Default container spacing for app pages */
body:not(.login-page) .container-fluid {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}


body.login-page .login-card {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}


/* Concept 11: Dark background image (applies to all pages except login + contact) */
body.sk9-has-bg {
    background: #0f1114 url('../img/stellenk9background.jpg') center center / cover no-repeat fixed;
    min-height: 100vh;
    position: relative;
}
body.sk9-has-bg::before {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.62);
    pointer-events: none;
    z-index: 0;
}
.sk9-app {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 100vh;
}

/* Sidebar */
.sk9-sidebar {
    width: 260px;
    flex: 0 0 260px;
    height: 100vh;
    position: sticky;
    top: 0;
    padding: 1.25rem 1rem;
    background: rgba(14, 14, 16, 0.80);
    border-right: 1px solid rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(8px);
}
.sk9-brand { margin-bottom: 1rem; }
.sk9-brand-link {
    display: inline-block;
    font-weight: 800;
    letter-spacing: 0.2px;
    font-size: 1.25rem;
    color: #fff;
    text-decoration: none;
}
.sk9-brand-link:hover { text-decoration: none; color: #fff; }
.sk9-brand-tagline {
    margin-top: 0.25rem;
    font-size: 0.9rem;
    color: rgba(255,255,255,0.70);
}

.sk9-nav { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.25rem; }
.sk9-nav-link {
    display: block;
    padding: 0.55rem 0.75rem;
    border-radius: 0.65rem;
    color: rgba(255,255,255,0.85);
    text-decoration: none;
}
.sk9-nav-link:hover {
    background: rgba(255,255,255,0.08);
    color: #fff;
    text-decoration: none;
}
.sk9-nav-link.active {
    background: rgba(170,205,255,0.18);
    border: 1px solid rgba(170,205,255,0.35);
    color: #fff;
}
.sk9-nav-divider {
    height: 1px;
    background: rgba(255,255,255,0.10);
    margin: 0.75rem 0.25rem;
}

.sk9-sidebar-footer {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
}
.sk9-userline {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.75);
    margin-bottom: 0.5rem;
}
.sk9-logout {
    display: inline-block;
    padding: 0.55rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(255,255,255,0.18);
    color: #fff;
    text-decoration: none;
}
.sk9-logout:hover { background: rgba(255,255,255,0.08); color: #fff; text-decoration: none; }

/* Main area */
.sk9-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sk9-topbar {
    padding: 1rem 1.25rem;
    background: rgba(14, 14, 16, 0.55);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(8px);
}
.sk9-topbar-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: rgba(255,255,255,0.92);
}
.sk9-content { padding: 0.5rem 0.75rem 1.25rem 0.75rem; }

/* Improve card readability on dark background */
body.sk9-has-bg .card {
    background: rgba(20, 20, 24, 0.78);
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.10);
}
body.sk9-has-bg .card .text-muted { color: rgba(255,255,255,0.65) !important; }
body.sk9-has-bg .table { color: rgba(255,255,255,0.92); }
body.sk9-has-bg .table thead th { color: rgba(255,255,255,0.85); }

/* Mobile: collapse sidebar */
@media (max-width: 991px) {
    .sk9-sidebar { position: fixed; z-index: 1040; transform: translateX(-110%); transition: transform 0.2s ease; }
    .sk9-app.sk9-sidebar-open .sk9-sidebar { transform: translateX(0); }
    .sk9-main { padding-left: 0; }
}



/* Contact page: keep clean background */
body.contact-page {
    background: #f8f9fa;
}

/* =========================================================
   Concept 11 Refinements (Dark UI cards + readable tagline)
   Applies only to logged-in app layout (.sk9-app)
   ========================================================= */

.sk9-sidebar {
    /* Slightly more opaque so branding stays readable over busy backgrounds */
    background: rgba(14, 14, 16, 0.92);
}

.sk9-brand-tagline {
    /* Brighter + subtle pill to prevent blending into background */
    color: rgba(255,255,255,0.92);
    text-shadow: 0 1px 10px rgba(0,0,0,0.75);
    display: inline-block;
    padding: 0.18rem 0.5rem;
    border-radius: 0.6rem;
    background: rgba(0,0,0,0.22);
    border: 1px solid rgba(255,255,255,0.10);
}

/* Cards / panels: remove harsh white Bootstrap look */
.sk9-app .card,
.sk9-app .list-group,
.sk9-app .list-group-item,
.sk9-app .alert,
.sk9-app .dropdown-menu,
.sk9-app .modal-content {
    background: rgba(24, 24, 28, 0.78) !important;
    color: rgba(255,255,255,0.90) !important;
    border: 1px solid rgba(255,255,255,0.10) !important;
    backdrop-filter: blur(8px);
}

.sk9-app .card-header,
.sk9-app .card-footer {
    background: rgba(18, 18, 22, 0.70) !important;
    border-color: rgba(255,255,255,0.10) !important;
}

.sk9-app .text-muted {
    color: rgba(255,255,255,0.65) !important;
}

/* Dashboard metric titles: single-line headers that fully fit inside cards */
.sk9-app .sk9-metric-title {
    /* Bigger, but still guaranteed to fit on one line in the metric cards */
    display: block;
    white-space: nowrap;
    overflow: hidden;
    font-size: clamp(0.98rem, 0.95vw, 1.12rem);
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.sk9-app .sk9-metric-sub{
    margin-left: 0.25rem;
    font-size: 0.92em;
    font-weight: 700;
    opacity: 0.95;
    white-space: nowrap;
}

.sk9-dashboard-metrics .card-body{
    padding: 0.95rem 0.75rem;
}

.sk9-dashboard-metrics .display-6{
    font-size: clamp(2.2rem, 2.15vw, 2.75rem);
}

/* Forms: darker inputs so forms don't look like white blocks */
.sk9-app .form-control,
.sk9-app .form-select,
.sk9-app .input-group-text {
    background: rgba(18, 18, 22, 0.72) !important;
    color: rgba(255,255,255,0.92) !important;
    border: 1px solid rgba(255,255,255,0.14) !important;
}

/* Date/Time inputs: force the browser's built-in calendar/clock picker icons to be readable on dark UI.
   IMPORTANT: most pages use body.sk9-has-bg (auto-added in header), so we scope to that instead of .sk9-app.
   - Chrome/Safari/Edge: style the WebKit picker indicator
   - Firefox: hint dark color-scheme for native controls
*/
body.sk9-has-bg input[type="date"],
body.sk9-has-bg input[type="time"],
body.sk9-has-bg input[type="datetime-local"],
/* fallback (if body class changes) */
input.form-control[type="date"],
input.form-control[type="time"],
input.form-control[type="datetime-local"] {
    color-scheme: dark;
}

body.sk9-has-bg input[type="date"]::-webkit-calendar-picker-indicator,
body.sk9-has-bg input[type="time"]::-webkit-calendar-picker-indicator,
body.sk9-has-bg input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input.form-control[type="date"]::-webkit-calendar-picker-indicator,
input.form-control[type="time"]::-webkit-calendar-picker-indicator,
input.form-control[type="datetime-local"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.25) contrast(1.10) !important;
    opacity: 1 !important;
}


body.sk9-has-bg .form-control::placeholder, .form-control::placeholder {
    color: rgba(255,255,255,0.45) !important;
}

.sk9-app .form-control:focus,
.sk9-app .form-select:focus {
    box-shadow: 0 0 0 0.2rem rgba(140, 190, 255, 0.20) !important;
    border-color: rgba(170, 205, 255, 0.55) !important;
}

/* Tables */
.sk9-app .table {
    --bs-table-color: rgba(255,255,255,0.88);
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(255,255,255,0.10);
    --bs-table-striped-bg: rgba(255,255,255,0.04);
    --bs-table-striped-color: rgba(255,255,255,0.90);
    --bs-table-hover-bg: rgba(255,255,255,0.06);
    --bs-table-hover-color: rgba(255,255,255,0.92);
}

.sk9-app .table thead th {
    color: rgba(255,255,255,0.78);
    background: rgba(0,0,0,0.18);
    border-bottom-color: rgba(255,255,255,0.12) !important;
}

/* Common Bootstrap "white background" utilities inside app */
.sk9-app .bg-white,
.sk9-app .bg-light {
    background: rgba(24, 24, 28, 0.78) !important;
}

.sk9-app .border,
.sk9-app .border-top,
.sk9-app .border-bottom,
.sk9-app .border-start,
.sk9-app .border-end {
    border-color: rgba(255,255,255,0.10) !important;
}

/* Buttons on dark cards */
.sk9-app .btn-outline-dark {
    color: rgba(255,255,255,0.90) !important;
    border-color: rgba(255,255,255,0.22) !important;
}
.sk9-app .btn-outline-dark:hover {
    background: rgba(255,255,255,0.08) !important;
}

/* === StellenK9 Concept 11 Polish === */
/* Brighter hero text on dashboard */
body.sk9-has-bg .sk9-hero-inner {
    padding: 1.25rem 1.25rem;
}
body.sk9-has-bg .sk9-hero-kicker {
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.78);
}
body.sk9-has-bg .sk9-hero-title {
    margin: 0.15rem 0 0.25rem;
    font-weight: 800;
    color: rgba(255,255,255,0.96);
    text-shadow: 0 2px 12px rgba(0,0,0,0.55);
}
body.sk9-has-bg .sk9-hero-sub {
    margin: 0;
    color: rgba(255,255,255,0.82);
    text-shadow: 0 2px 10px rgba(0,0,0,0.45);
}

/* Make section headers (Training / Dogs / Deployments / Recent Training Sessions) consistent */
body.sk9-has-bg h1,
body.sk9-has-bg h2,
body.sk9-has-bg h3,
body.sk9-has-bg h4,
body.sk9-has-bg h5,
body.sk9-has-bg h6 {
    color: rgba(255,255,255,0.92);
}
/* Avoid washed-out "muted" headers on dark UI */
body.sk9-has-bg .text-muted {
    color: rgba(255,255,255,0.72) !important;
}
body.sk9-has-bg .card .text-muted {
    color: rgba(255,255,255,0.74) !important;
}
body.sk9-has-bg .card a.small,
body.sk9-has-bg a.small {
    color: rgba(170,205,255,0.95);
}
body.sk9-has-bg .card a.small:hover,
body.sk9-has-bg a.small:hover {
    color: rgba(190,255,210,0.95);
}

/* Sidebar tagline: no border/pill — just clean readable text */
.sk9-brand-tagline {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    color: rgba(255,255,255,0.85);
}

/* Darken "white boxes" (Bootstrap components) so they match the theme */
body.sk9-has-bg .list-group-item {
    background: rgba(20, 20, 24, 0.60);
    color: rgba(255,255,255,0.92);
    border-color: rgba(255,255,255,0.10);
}
body.sk9-has-bg .list-group-flush > .list-group-item {
    border-width: 0 0 1px 0;
}
body.sk9-has-bg .list-group-item:last-child {
    border-bottom-width: 0;
}

body.sk9-has-bg .form-control,
body.sk9-has-bg .form-select,
body.sk9-has-bg .input-group-text {
    background: rgba(20, 20, 24, 0.65);
    color: rgba(255,255,255,0.92);
    border-color: rgba(255,255,255,0.14);
}
body.sk9-has-bg .form-control::placeholder {
    color: rgba(255,255,255,0.55);
}
body.sk9-has-bg .form-control:focus,
body.sk9-has-bg .form-select:focus {
    background: rgba(20, 20, 24, 0.72);
    border-color: rgba(170,205,255,0.55);
    box-shadow: 0 0 0 0.2rem rgba(170,205,255,0.18);
}

/* Smoother tables (less boxy) */
body.sk9-has-bg .table-responsive {
    border-radius: 14px;
    /* IMPORTANT: allow horizontal scrolling on small screens.
       overflow:hidden was clipping the right side of tables on mobile. */
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    border: 1px solid rgba(255,255,255,0.10);
}
body.sk9-has-bg .table {
    margin-bottom: 0;
    color: rgba(255,255,255,0.92);
    border-color: rgba(255,255,255,0.10);
}
body.sk9-has-bg .table > :not(caption) > * > * {
    background-color: transparent;
}
body.sk9-has-bg .table thead th {
    background: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.90);
    border-bottom-color: rgba(255,255,255,0.12);
}
body.sk9-has-bg .table-striped > tbody > tr:nth-of-type(odd) > * {
    background: rgba(255,255,255,0.04);
}
body.sk9-has-bg .table-hover > tbody > tr:hover > * {
    background: rgba(255,255,255,0.06);
}

/* --- Dashboard alignment + minimal list/table separators (polish) --- */
body.sk9-has-bg .sk9-hero-inner{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:1rem;
    flex-wrap:wrap;
}
body.sk9-has-bg .sk9-hero-inner > div:first-child{
    max-width: 780px;
}
body.sk9-has-bg .sk9-hero-actions{
    align-items:center;
}
@media (max-width: 767px){
    body.sk9-has-bg .sk9-hero-actions{
        margin-top: 0.85rem !important; /* keeps space between snapshot text and buttons */
        width: 100%;
    }
}

/* Recent Training Sessions: transparent “cells” + subtle separators only */
body.sk9-has-bg .list-group{
    background: transparent;
}
body.sk9-has-bg .list-group-item{
    background: transparent;
    color: rgba(255,255,255,0.92);
    border-color: rgba(255,255,255,0.08);
}
body.sk9-has-bg .list-group-flush > .list-group-item{
    border-width: 0 0 1px 0;
}
body.sk9-has-bg .list-group-flush > .list-group-item:last-child{
    border-bottom-width: 0;
}

/* Optional: softer table separators (if any tables are used on dark pages) */
body.sk9-has-bg .table td,
body.sk9-has-bg .table th{
    border-color: rgba(255,255,255,0.08);
}

/* =========================================================
   Mobile usability fixes (menu toggle + responsive tables)
   ========================================================= */

/* Topbar layout */
.sk9-topbar{
  display:flex;
  align-items:center;
  gap:.5rem;
}

/* Sidebar toggle button (shown on mobile only) */
.sk9-sidebar-toggle{
  display:none;
  border-color: rgba(255,255,255,0.25) !important;
}
.sk9-sidebar-toggle:active,
.sk9-sidebar-toggle:focus{
  box-shadow: 0 0 0 0.2rem rgba(140, 190, 255, 0.18) !important;
}

/* Overlay behind off-canvas menu */
.sk9-overlay{
  display:none;
}

@media (max-width: 991px){
  .sk9-sidebar-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .sk9-overlay{
    position:fixed;
    inset:0;
    background: rgba(0,0,0,0.55);
    z-index:1030;
  }
  .sk9-app.sk9-sidebar-open .sk9-overlay{ display:block; }

  /* Lock background scroll when menu is open */
  body.sk9-body-lock{ overflow:hidden; }

  /* Make sidebar usable on small screens */
  .sk9-sidebar{
    width: 86vw;
    max-width: 320px;
    height: 100vh;
    top: 0;
    left: 0;
    padding-top: max(1.25rem, env(safe-area-inset-top));
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
    display:flex;
    flex-direction:column;
    overflow:hidden;
    position:fixed; /* ensure consistent off-canvas */
  }
  .sk9-nav{
    flex: 1;
    overflow-y:auto;
    padding-right: .25rem;
    -webkit-overflow-scrolling: touch;
  }
  .sk9-sidebar-footer{
    position: static !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    margin-top:.75rem;
  }

  /* Slightly tighter content padding on phones */
  .sk9-content{ padding: 0.5rem 0.5rem 1rem 0.5rem; }
}

/* Desktop: keep footer at bottom without absolute positioning issues */
.sk9-sidebar{
  display:flex;
  flex-direction:column;
}
.sk9-nav{
  flex: 1;
  overflow-y:auto;
}
.sk9-sidebar-footer{
  position: static;
  margin-top: 1rem;
}

/* Responsive tables: allow horizontal scroll without breaking layout */
.table-responsive{
  -webkit-overflow-scrolling: touch;
}
.table-responsive > table{
  margin-bottom: 0;
}
/* Mobile/table safety: keep headers readable and allow horizontal scroll instead of squeezing columns */
.table-responsive{
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}
.table-responsive table{
  /* Let table be as wide as it needs to be; wrapper handles scrolling */
  width: auto;
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}
.table-responsive th,
.table-responsive td{
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}



/* Mobile table clipping fix */
@media (max-width: 768px){
  body.sk9-has-bg .table-responsive{
    display:block;
    max-width: 100%;
  }
  body.sk9-has-bg .table-responsive > table{
    min-width: max-content;
  }
}


/* Contacts nav badge + helptext legibility */
.sk9-nav-link { position: relative; }
.sk9-nav-badge{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
    margin-left: 0.5rem;
    background: #dc3545;
    color: #fff;
}
.sk9-helptext,
.sk9-helptext.text-muted,
.card.bg-dark .text-muted,
.card.bg-dark .form-text,
.card.bg-dark .sk9-helptext,
.modal-content .form-text {
    color: rgba(255,255,255,0.80) !important;
}

@media (max-width: 576px){
  .sk9-app .sk9-metric-title{font-size:0.70rem;}
}
