* {
	box-sizing: border-box
}

body {
	font-family: system-ui, Segoe UI, Roboto, Arial, sans-serif;
	margin: 0;
	background: #fafafa;
	color: #111
}

.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 16px
}

.grid {
	display: grid;
	grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	align-items: end
}

table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .05)
}

th, td {
	padding: 10px 12px;
	border-bottom: 1px solid #eee
}

th {
	text-align: left;
	background: #f6f6f6
}

tr:hover {
	background: #f9f9ff
}

.warn {
	background: #fff3cd;
	border: 1px solid #ffeeba;
	padding: 10px;
	border-radius: 8px;
	margin: 12px 0
}

.align-end {
	display: flex;
	gap: 8px;
	align-items: end
}

button {
	padding: 10px 14px;
	border: 1px solid #ddd;
	border-radius: 8px;
	background: #111;
	color: #fff;
	cursor: pointer
}

label {
	display: block;
	font-size: 12px;
	color: #666;
	margin-bottom: 4px
}

input[type=date], input[type=number] {
	padding: 8px 10px;
	border: 1px solid #ddd;
	border-radius: 8px;
	width: 100%;
	background: #fff
}


/* Tabs */
.tabs {
	display: flex;
	gap: 8px;
	margin: 12px 0
}

.tab {
	appearance: none;
	padding: 8px 12px;
	border: 1px solid #d0d7de;
	border-radius: 8px;
	background: #f7f7f9 !important;
	color: #111 !important; /* <-- фикс: явный цвет текста */
	cursor: pointer;
}

.tab:hover {
	background: #eeeeef
}

.tab.active {
	background: #111 !important;
	color: #fff !important; /* активная вкладка контрастная */
	border-color: #111 !important;
}

.tab:focus-visible {
	outline: 2px solid #2684ff;
	outline-offset: 2px
}

.tab-body {
	display: none
}

.tab-body.active {
	display: block
}
