/* Visual refresh overrides - loaded after all existing theme CSS.
   Purely cosmetic (color, radius, shadow, font, header) - no layout
   or functional changes. */

/* Scale the whole portal to 90% by default - this theme's spacing/
   font sizing was designed to look right at 90% browser zoom, and
   feels cramped/oversized at 100%. `zoom` reflows the layout at the
   scaled size (same mechanism as the browser's own zoom control),
   unlike `transform: scale()` which would just shrink it visually
   and leave dead space. Supported in all current major browsers. */
html {
    zoom: 90%;
}

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

body, .form-control, .btn, table, td, th, p, div {
    font-family: 'Inter', 'Lato', -apple-system, sans-serif !important;
}

h1, h2, h3, h4, h5, h6, .mainTitle, .panel-title {
    font-family: 'Inter', 'Lato', -apple-system, sans-serif !important;
    font-weight: 600 !important;
}

/* Panels / cards */
.panel,
.panel-white,
.acct-color-div-white,
.alert,
.form-control,
.btn,
.table {
    border-radius: 8px !important;
}

.panel,
.panel-white {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.06) !important;
    border: 1px solid #eef0f4 !important;
}

.btn {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06) !important;
    transition: transform 0.12s ease, box-shadow 0.12s ease !important;
}

.btn:hover {
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12) !important;
}

table thead tr,
.table > thead > tr > th {
    border-radius: 0 !important;
}

table.table {
    border-radius: 8px !important;
    overflow: hidden !important;
}

/* Header / topbar refresh */
header.navbar.navbar-default {
    background: linear-gradient(90deg, #0f172a 0%, #1e293b 100%) !important;
    border-bottom: 3px solid #2563eb !important;
}

/* Sidebar active/hover accent stays in sync with new blue automatically
   since theme-1.css was updated directly - no separate override needed. */

/* Sidebar menu scroll - header stays put, the menu list scrolls
   independently so items past the viewport height (e.g. Logout,
   Blocked IPs) stay reachable instead of being cut off.
   .sidebar-container.perfect-scrollbar is the actual direct child
   that needs the bounded height - the theme's perfect-scrollbar JS
   plugin scrolls based on that container's height, not <nav> itself. */
#sidebar {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
}

#sidebar > header {
    flex-shrink: 0;
}

#sidebar > .sidebar-container {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto !important;
}
