:root{
	--app-green:#4caf50;
	--app-bg:#f6f7f9;
	--app-card:#ffffff;
	--app-text:#1f2937;
	--app-muted:#6b7280;
	--app-border:#e5e7eb;
}

html, body{
	height:100%;
}

body{
	background:var(--app-bg);
	color:var(--app-text);
}

.navbar{
	background:#fff;
	border-bottom:1px solid var(--app-border);
}

.brand-badge{
	width:40px;
	height:40px;
	border-radius:10px;
	background:rgba(76,175,80,.15);
	display:flex;
	align-items:center;
	justify-content:center;
	margin-right:12px;
}

.brand-badge i{
	color:var(--app-green);
	font-size:20px;
}

.nav-link{
	color:#111827 !important;
	opacity:.75;
	font-weight:500;
}

.nav-link.active{
	opacity:1;
}

.page-wrap{
	padding:28px 0 60px 0;
}

.h1-title{
	font-weight:800;
	letter-spacing:-.02em;
}

.subtle{
	color:var(--app-muted);
}

.card-soft{
	background:var(--app-card);
	border:1px solid var(--app-border);
	border-radius:14px;
	box-shadow:0 2px 10px rgba(15,23,42,.06);
}

.kpi-card{
	padding:18px;
	height:100%;
}

.kpi-icon{
	width:44px;
	height:44px;
	border-radius:12px;
	display:flex;
	align-items:center;
	justify-content:center;
	margin-bottom:14px;
}

.kpi-icon i{
	font-size:18px;
	color:#fff;
}

.kpi-title{
	font-size:14px;
	color:#374151;
	margin-bottom:6px;
	font-weight:600;
}

.kpi-value{
	font-size:30px;
	font-weight:800;
	line-height:1.1;
}

.kpi-sub{
	font-size:12px;
	color:var(--app-muted);
	margin-top:6px;
}

.bg-green{ background:#4caf50; }
.bg-gray{ background:#6b7280; }
.bg-blue{ background:#4f7cff; }
.bg-purple{ background:#8b5cf6; }
.bg-yellow{ background:#d4a72c; }

.table thead th{
	color:#6b7280;
	font-weight:700;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.04em;
}

.table td{
	vertical-align:middle;
}

.badge-soft{
	border:1px solid var(--app-border);
	background:#f9fafb;
	color:#374151;
	font-weight:600;
}

.form-control, .form-select{
	border-radius:10px;
}

.btn{
	border-radius:10px;
	font-weight:600;
}

.btn-ghost{
	background:#fff;
	border:1px solid var(--app-border);
}

.btn-ghost:hover{
	background:#f9fafb;
}

.toolbar{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
}

.toolbar-left{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	align-items:center;
}

.toolbar-right{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	align-items:center;
}

.pill{
	padding:8px 10px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--app-border);
	color:#374151;
	font-weight:600;
	font-size:12px;
}

.login-shell{
	min-height:100vh;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
}

.login-card{
	width:100%;
	max-width:460px;
	padding:22px;
}

.hr-soft{
	border-top:1px solid var(--app-border);
}

:root{
	--app-bg:#f6f8fb;
	--card-radius:14px;
	--soft-shadow:0 6px 18px rgba(16,24,40,.06);
	--muted:#6b7280;
	--brand:#2e7d32;
}

html,body{
	height:100%;
}

body{
	background:var(--app-bg);
	font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
	color:#111827;
}

.navbar{
	background:#fff;
	box-shadow:0 1px 0 rgba(16,24,40,.06);
}

.navbar .nav-link{
	color:#374151;
	border-radius:10px;
	padding:.55rem .9rem;
}

.navbar .nav-link.active{
	background:#ecf7ee;
	color:#14532d;
	font-weight:600;
}

.brand-badge{
	width:40px;
	height:40px;
	border-radius:12px;
	background:rgba(46,125,50,.12);
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--brand);
	font-weight:700;
}

.page-wrap{
	padding:28px 0 60px;
}

.page-title{
	font-size:34px;
	font-weight:700;
	letter-spacing:-.02em;
	margin-bottom:2px;
}

.page-subtitle{
	color:var(--muted);
	margin-bottom:18px;
}

.card{
	border:none;
	border-radius:var(--card-radius);
	box-shadow:var(--soft-shadow);
}

.stat-card{
	padding:18px 18px;
	height:100%;
}

.stat-icon{
	width:52px;
	height:52px;
	border-radius:14px;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#fff;
	font-size:22px;
	margin-bottom:12px;
}

.stat-label{
	color:#374151;
	font-weight:600;
	margin-bottom:6px;
}

.stat-value{
	font-size:34px;
	font-weight:800;
	line-height:1;
	margin-bottom:6px;
}

.stat-hint{
	color:var(--muted);
	font-size:13px;
}

.section-title{
	font-weight:700;
	margin-bottom:14px;
}

.kv-row{
	display:flex;
	justify-content:space-between;
	padding:10px 0;
	border-top:1px solid rgba(16,24,40,.06);
}

.kv-row:first-child{
	border-top:none;
}

.kv-key{
	color:var(--muted);
}

.kv-val{
	font-weight:700;
}

.table thead th{
	color:#374151;
	font-weight:700;
	border-bottom:1px solid rgba(16,24,40,.08);
}

.table tbody td{
	vertical-align:middle;
	border-top:1px solid rgba(16,24,40,.06);
}

.badge-soft{
	background:#eef2ff;
	color:#3730a3;
	font-weight:700;
}

.badge-ok{
	background:#ecfdf3;
	color:#027a48;
	font-weight:700;
}

.badge-warn{
	background:#fffaeb;
	color:#b54708;
	font-weight:700;
}

.badge-err{
	background:#fef3f2;
	color:#b42318;
	font-weight:700;
}

.toolbar{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	align-items:center;
}

.form-control,.form-select{
	border-radius:12px;
}

.btn{
	border-radius:12px;
	font-weight:700;
}

.btn-outline-secondary{
	border-color:rgba(16,24,40,.12);
}

.panel-card{
	padding:18px;
}

.small-muted{
	color:var(--muted);
	font-size:13px;
}

.btn-icon{
	width:42px;
	height:42px;
	padding:0;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}

.dropzone{
	border:2px dashed rgba(16,24,40,.16);
	border-radius:16px;
	padding:22px;
	text-align:center;
	background:#f9fafb;
	cursor:pointer;
	transition:all .2s ease;
}

.dropzone:hover{
	background:#f3f4f6;
}

.dropzone.dropzone-active{
	border-color:#2e7d32;
	background:#ecf7ee;
}

.dropzone-icon{
	width:48px;
	height:48px;
	border-radius:14px;
	display:flex;
	align-items:center;
	justify-content:center;
	margin:0 auto 10px;
	background:rgba(46,125,50,.12);
	color:#2e7d32;
	font-size:22px;
}

