/*
 * nb-shine.css — a modernization overlay for AdminLTE 2.x (skin-blue-light), written to be
 * PORTABLE: it only styles AdminLTE/Bootstrap class names plus a few nb-* additions, so the same
 * file can be dropped into NBServer's NBLookNew (or NBAdmin) unchanged as a first step toward a
 * fresher look, before any real CSS-theme transition.
 *
 * v2: goes much further than restyled boxes — brand-blue navbar, white quiet sidebar, system font
 * stack. Aligned with NBServer's netbokhald/css/main.css: full-width content (reporting data needs
 * the space), the light logo cell and blue navbar match main.css's own rules, and NBServer's value
 * conventions (.numcell right-alignment, .negnum red negatives — emitted by NBNumber) are styled here
 * so both apps read the same.
 */

/* ---- Typography: system stack, calmer weights --------------------------- */

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Source Sans Pro", sans-serif;
	font-size: 14px;
	color: #222;
}

.content-header > h1 {
	font-size: 22px;
	font-weight: 600;
	color: #222;
}

/* ---- Header: light logo cell (matches NBServer's main.css) + blue navbar - */

.skin-blue-light .main-header .logo {
	background: none;
	border-bottom: 1px solid #efefef;
	color: #235f9d;
	font-weight: 600;
	transition: none;
}

.skin-blue-light .main-header .logo:hover {
	background: #efefef;
	color: #235f9d;
}

.skin-blue-light .main-header .logo .logo-lg b {
	font-weight: 600;
}

.skin-blue-light .main-header .navbar {
	background: #235f9d;
	transition: none;
}

.skin-blue-light .main-header .navbar .sidebar-toggle,
.skin-blue-light .main-header .navbar .nav > li > a {
	color: #cfe0f2;
}

.skin-blue-light .main-header .navbar .sidebar-toggle:hover,
.skin-blue-light .main-header .navbar .nav > li > a:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

.skin-blue-light .main-header .navbar .navbar-text {
	color: #cfe0f2;
}

/* ---- Sidebar: white, quiet, hairline-separated -------------------------- */

.skin-blue-light .wrapper,
.skin-blue-light .main-sidebar {
	background: #fff;
}

.main-sidebar {
	box-shadow: inset -1px 0 0 #e5e7eb;
}

.skin-blue-light .sidebar-menu > li.header {
	color: #9ca3af;
	background: transparent;
	font-size: 11px;
	letter-spacing: .04em;
}

.skin-blue-light .sidebar-menu > li > a {
	color: #374151;
	border-left: 3px solid transparent;
	transition: background-color .12s ease;
}

.skin-blue-light .sidebar-menu > li:hover > a,
.skin-blue-light .sidebar-menu > li.active > a {
	color: #235f9d;
	background: #f4f6f9;
	border-left-color: #235f9d;
}

/* ---- Content area: soft canvas, centered column ------------------------- */

.content-wrapper {
	background: #f4f6f9;
}

.main-footer {
	border-top: 1px solid #e5e7eb;
	color: #6b7280;
}

/* ---- Boxes: soft cards -------------------------------------------------- */

.box {
	border-radius: 8px;
	border-top: none;
	box-shadow: 0 1px 3px rgba(16, 24, 40, .07), 0 1px 2px rgba(16, 24, 40, .04);
	margin-bottom: 24px;
}

.box-header.with-border {
	border-bottom-color: #f0f1f3;
}

.box-header .box-title {
	font-size: 15px;
	font-weight: 600;
}

/* AdminLTE clamps .box-body to max-height:300px with overflow:auto — unhelpful for data-dense
   pages (clips long tables and charts); let content drive height. */
.box-body {
	max-height: none;
}

.info-box {
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(16, 24, 40, .07), 0 1px 2px rgba(16, 24, 40, .04);
}

/* ---- Tables ------------------------------------------------------------- */

.table > thead > tr > th,
.table > tbody > tr > th {
	color: #6b7280;
	font-weight: 600;
	border-bottom-width: 2px;
	border-bottom-color: #e5e7eb;
}

.table > tbody > tr > td {
	border-top-color: #f0f1f3;
	padding: 6px 10px;
}

.table-hover > tbody > tr:hover {
	background-color: #f8fafc;
}

/* NBServer's right-aligned value cell (main.css uses !important; plain here suffices when this
   file loads after bootstrap). */
.numcell {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* Negative values — NBNumber wraps them in <span class="negnum">; same rule as NBServer's main.css. */
.negnum {
	color: red;
}

.table a {
	color: #235f9d;
	text-decoration: none;
}

.table a:hover {
	text-decoration: underline;
}

/* Sortable column headers (NBSortHeader). */
.sort-header {
	color: #6b7280;
	text-decoration: none;
}

.sort-header:hover,
.sort-header.active {
	color: #235f9d;
	text-decoration: none;
}

/* ---- Buttons & forms ---------------------------------------------------- */

.btn {
	border-radius: 6px;
	transition: background-color .12s ease, border-color .12s ease;
}

.btn-primary {
	background-color: #235f9d;
	border-color: #1e5289;
}

.btn-primary:hover,
.btn-primary:focus {
	background-color: #1e5289;
	border-color: #194573;
}

.form-control {
	border-radius: 6px;
	box-shadow: none;
}

.form-control:focus {
	border-color: #235f9d;
	box-shadow: 0 0 0 3px rgba(35, 95, 157, .12);
}

/* ---- nb-* additions (patterns AdminLTE 2 doesn't have) ------------------ */

/* Stat tiles — a lighter-weight headline row than AdminLTE's info-box/small-box. */
.nb-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}

.nb-stat {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 1px 3px rgba(16, 24, 40, .07), 0 1px 2px rgba(16, 24, 40, .04);
	padding: 16px 20px;
}

.nb-stat-label {
	font-size: 13px;
	color: #6b7280;
	margin-bottom: 4px;
}

.nb-stat-value {
	font-size: 22px;
	font-weight: 600;
}

.nb-stat-sub {
	font-size: 13px;
	color: #6b7280;
	margin-top: 2px;
}

/* ECharts chart containers. */
.nb-chart {
	width: 100%;
	height: 320px;
}
