/* wwwroot/css/site.css */

/* --- Color & Font Variables --- */
:root {
    --jp-primary: #0d6efd; 
    --jp-sidebar-bg: #212529;
    --jp-sidebar-text: rgba(255, 255, 255, 0.75);
    --jp-sidebar-hover: #ffffff;
    --jp-content-bg: #f8f9fa;
    --jp-card-border: #dee2e6;
    --jp-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;
}

html {
    font-size: 14px;
}

html, body {
    height: 100vh;       /* Exact viewport height */
    overflow: hidden;    /* Remove window scrollbars completely */
    margin: 0;
}
/* --- Sidebar Layout --- */
.sidebar {
    width: 280px;
    flex-shrink: 0;
    background-color: var(--jp-sidebar-bg);
    color: var(--jp-sidebar-text);
    display: flex;
    flex-direction: column;
    padding: 1rem;
    height: 100vh;       /* Ensure sidebar is full height */
    overflow-y: auto;    /* Allow sidebar to scroll if menu is long */
}

.sidebar-header {
    font-size: 1.5rem;
    font-weight: 600;
    color: #fff;
    padding: 0.5rem 0.25rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    flex-shrink: 0;
}

.sidebar-header .bi-box-seam {
    margin-right: 0.75rem;
    color: var(--jp-primary);
}

.sidebar-nav .nav-link {
    color: var(--jp-sidebar-text);
    font-size: 1.1rem;
    padding: 0.75rem 1rem;
    border-radius: 0.375rem;
    margin-bottom: 0.25rem;
}

.sidebar-nav .nav-link .bi {
    margin-right: 1rem;
    font-size: 1.2rem;
    width: 24px;
    text-align: center;
}

.sidebar-nav .nav-link:hover,
.sidebar-nav .nav-link.active {
    background-color: var(--jp-primary);
    color: var(--jp-sidebar-hover);
}

/* --- Main Content Area --- */
.main-content {
    height: 100vh;
    display: grid !important; 
    grid-template-rows: auto 1fr auto; /* Row 1: Header (auto), Row 2: Main (fills space), Row 3: Footer (auto) */
    overflow: hidden;    /* Prevent the wrapper itself from scrolling */
}

.main-content header {
    border-bottom: 1px solid var(--jp-card-border);
    background-color: #fff;
    z-index: 10;
}

main {
    overflow-y: auto;    /* The scrollbar appears ONLY here */
    padding: 2rem;
    /* Grid automatically stretches this to fill the middle space */
}
.footer {
    border-top: 1px solid var(--jp-card-border);
    background-color: #fff;
    z-index: 10;
    padding: 0.75rem 0;
}

/* --- Component Overhauls --- */
.card {
    border-radius: 0.5rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,.075);
    border: 1px solid var(--jp-card-border);
}

.table {
    border-color: var(--jp-card-border);
}