/* 
 * 産業廃棄物受け入れ管理システム スタイルシート
 */

/* レイアウト */
body {
	background-color: #f8f9fc;
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

.wrapper {
	display: flex;
	width: 100%;
	align-items: stretch;
}

#sidebar {
	min-width: 250px;
	max-width: 250px;
	min-height: 100vh;
	transition: all 0.3s;
}

#sidebar.active {
	margin-left: -250px;
}

#content {
	width: 100%;
	min-height: 100vh;
	transition: all 0.3s;
}

@media (max-width: 768px) {
	#sidebar {
		margin-left: -250px;
	}
	#sidebar.active {
		margin-left: 0;
	}
}

/* サイドバー */
#sidebar .sidebar-header {
	padding: 20px;
	background: #343a40;
}

#sidebar ul.components {
	padding: 20px 0;
}

#sidebar ul li a {
	padding: 10px 20px;
	display: block;
	border-radius: 0;
}

#sidebar ul li a:hover {
	background: #495057;
}

#sidebar ul li.active > a {
	background: #495057;
}

/* カード */
.card {
	border-radius: 8px;
	overflow: hidden;
	margin-bottom: 24px;
}

.card-header {
	padding: 1rem 1.25rem;
	background-color: #f8f9fa;
	border-bottom: 1px solid #e3e6f0;
}

.card-body {
	padding: 1.25rem;
}

/* カード色相関 */
.border-left-primary {
	border-left: 0.25rem solid #4e73df !important;
}

.border-left-success {
	border-left: 0.25rem solid #1cc88a !important;
}

.border-left-info {
	border-left: 0.25rem solid #36b9cc !important;
}

.border-left-warning {
	border-left: 0.25rem solid #f6c23e !important;
}

.border-left-danger {
	border-left: 0.25rem solid #e74a3b !important;
}

/* テーブル */
.table-responsive {
	overflow-x: auto;
}

.table-bordered {
	border: 1px solid #e3e6f0;
}

.table-bordered th,
.table-bordered td {
	border: 1px solid #e3e6f0;
}

/* フォーム */
.form-control {
	border-radius: 6px;
	border-color: #e3e6f0;
}

.input-group-text {
	border-radius: 6px;
	background-color: #f8f9fa;
	border-color: #e3e6f0;
}

/* ボタン */
.btn {
	border-radius: 6px;
	padding: 0.375rem 1rem;
}

.btn-block {
	display: block;
	width: 100%;
}

/* 色調 - テキスト */
.text-primary { color: #4e73df !important; }
.text-success { color: #1cc88a !important; }
.text-info { color: #36b9cc !important; }
.text-warning { color: #f6c23e !important; }
.text-danger { color: #e74a3b !important; }
.text-gray-300 { color: #dddfeb !important; }
.text-gray-800 { color: #5a5c69 !important; }

/* 色調 - 背景 */
.bg-primary { background-color: #4e73df !important; }
.bg-success { background-color: #1cc88a !important; }
.bg-info { background-color: #36b9cc !important; }
.bg-warning { background-color: #f6c23e !important; }
.bg-danger { background-color: #e74a3b !important; }
.bg-light { background-color: #f8f9fa !important; }
.bg-white { background-color: #fff !important; }

/* アラート */
.alert {
	border-radius: 6px;
	padding: 1rem;
	margin-bottom: 1.5rem;
}

/* ページネーション */
.pagination {
	margin-bottom: 0;
}

.page-item .page-link {
	color: #4e73df;
	border: 1px solid #dddfeb;
}

.page-item.active .page-link {
	background-color: #4e73df;
	border-color: #4e73df;
}

/* フォントサイズ調整 */
.text-xs {
	font-size: 0.7rem;
}

.text-sm {
	font-size: 0.85rem;
}

.text-lg {
	font-size: 1.2rem;
}

.text-xl {
	font-size: 1.5rem;
}

/* 共通ユーティリティ */
.shadow {
	box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15) !important;
}

.shadow-sm {
	box-shadow: 0 0.125rem 0.25rem 0 rgba(58, 59, 69, 0.075) !important;
}

.shadow-lg {
	box-shadow: 0 1rem 3rem rgba(58, 59, 69, 0.175) !important;
}

.rounded {
	border-radius: 0.35rem !important;
}

.rounded-circle {
	border-radius: 50% !important;
}

/* アバター */
.avatar {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: white;
	font-weight: bold;
}

/* カスタムアニメーション */
.fade-in {
	animation: fadeIn 0.5s;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}