/**
 * シフト表作成ツール（人件費自動計算） - 専用スタイル
 */

/* ============================================================
   基本設定セクション
   ============================================================ */
.shft-settings {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px 16px;
	align-items: center;
}

.shft-setting-item {
	display: flex;
	align-items: center;
	gap: 8px;
}

.shft-setting-item label {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-secondary);
	white-space: nowrap;
}

.shft-select {
	padding: 10px 32px 10px 12px;
	font-size: 14px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 10px center;
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	cursor: pointer;
	appearance: none;
}

.shft-select:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-text-input {
	flex: 1;
	min-width: 0;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
}

.shft-text-input:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-hint {
	font-size: 12px;
	color: var(--color-text-muted);
	margin: 0 0 10px;
}

/* ============================================================
   スタッフ登録リスト
   ============================================================ */
.shft-staff-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.shft-staff-row {
	display: flex;
	align-items: center;
	gap: 10px;
}

.shft-staff-no {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-display);
	font-size: 12px;
	font-weight: 700;
	color: var(--color-white);
	background: var(--color-primary);
	border-radius: 50%;
}

.shft-staff-name {
	flex: 1 1 auto;
	min-width: 0;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
}

.shft-staff-name:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-staff-rate-group {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}

.shft-staff-rate {
	width: 90px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	text-align: right;
}

.shft-staff-rate:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-staff-rate-unit {
	font-size: 12px;
	color: var(--color-text-muted);
	white-space: nowrap;
}

.shft-staff-remove {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
	color: var(--color-text-muted);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	cursor: pointer;
}

.shft-staff-remove:hover {
	color: #721c24;
	border-color: #f0b8bd;
	background: #fbeaec;
}

/* ============================================================
   週間シフト表（グリッド）
   ============================================================ */
.shft-grid-section {
	padding: 20px;
	border-bottom: 1px solid var(--color-border);
}

.shft-grid-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin-bottom: 12px;
}

.shft-grid-title {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 700;
	color: var(--color-text);
}

.shft-grid-note {
	font-size: 12px;
	color: var(--color-text-muted);
}

.shft-empty-note {
	font-size: 13px;
	color: var(--color-text-muted);
	text-align: center;
	padding: 12px 0 2px;
	margin: 0;
}

.shft-table-wrapper {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.shft-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	min-width: 720px;
}

.shft-table th,
.shft-table td {
	border: 1px solid var(--color-border);
	padding: 6px 8px;
	vertical-align: middle;
}

.shft-table thead th {
	background: var(--color-bg);
	font-size: 12px;
	font-weight: 700;
	color: var(--color-text-secondary);
	text-align: center;
	white-space: nowrap;
}

.shft-th-staff {
	text-align: left !important;
	min-width: 110px;
}

.shft-th-day {
	min-width: 122px;
}

.shft-th-sun {
	color: #c0392b !important;
}

.shft-th-sat {
	color: #2d6fb3 !important;
}

.shft-th-total {
	min-width: 78px;
}

/* スタッフ行ヘッダー */
.shft-td-staff {
	background: var(--color-bg);
	text-align: left;
	white-space: nowrap;
}

.shft-cell-name {
	display: block;
	font-weight: 700;
	color: var(--color-text);
}

.shft-cell-rate {
	display: block;
	font-size: 11px;
	color: var(--color-text-muted);
}

/* 勤務入力セル */
.shft-cell {
	background: var(--color-white);
}

.shft-cell-inputs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 3px;
}

.shft-time {
	width: 88px;
	padding: 4px 4px;
	font-size: 12px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 6px;
}

.shft-time:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-time-sep {
	color: var(--color-text-muted);
	font-size: 11px;
}

.shft-break-wrap {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	font-size: 11px;
	color: var(--color-text-muted);
	margin-top: 2px;
}

.shft-break {
	width: 38px;
	padding: 3px 4px;
	font-size: 12px;
	font-family: inherit;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	text-align: right;
}

.shft-break:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-cell-hours {
	text-align: center;
	font-family: var(--font-display);
	font-size: 12px;
	font-weight: 700;
	color: var(--color-primary-dark);
	min-height: 16px;
	margin-top: 3px;
}

/* 週合計・週給 */
.shft-td-total {
	text-align: right;
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-primary-dark);
	white-space: nowrap;
	background: #fbfaf8;
}

/* フッター（曜日別合計） */
.shft-table tfoot td {
	background: var(--color-bg);
	text-align: right;
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-text-secondary);
	white-space: nowrap;
}

.shft-table tfoot .shft-tf-grand {
	color: var(--color-primary-dark);
}

/* ============================================================
   売上高入力
   ============================================================ */
.shft-sales-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: flex-end;
}

.shft-sales-item {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.shft-sales-item label {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-secondary);
}

.shft-amount-group {
	display: flex;
	align-items: center;
	gap: 8px;
}

.shft-amount-input {
	width: 180px;
	padding: 12px 14px;
	font-size: 18px;
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--color-text);
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	text-align: right;
}

.shft-amount-input:focus {
	outline: none;
	border-color: var(--color-primary);
}

.shft-amount-input::placeholder {
	color: var(--color-text-muted);
	font-weight: 400;
}

.shft-amount-unit {
	font-size: 15px;
	color: var(--color-text-secondary);
}

/* ============================================================
   集計サマリー
   ============================================================ */
.shft-summary-section {
	padding: 20px;
	background: var(--color-bg);
	border-bottom: 1px solid var(--color-border);
}

.shft-summary-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
}

.shft-summary-item {
	padding: 14px 12px;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	text-align: center;
}

.shft-summary-label {
	font-size: 12px;
	color: var(--color-text-muted);
	margin-bottom: 6px;
}

.shft-summary-value {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--color-primary-dark);
	line-height: 1.2;
}

.shft-summary-value .shft-yen {
	font-size: 15px;
	margin-right: 1px;
}

.shft-summary-value .shft-unit {
	font-size: 13px;
	font-weight: 500;
	color: var(--color-text-secondary);
	margin-left: 2px;
}

.shft-summary-sub {
	margin-top: 6px;
	min-height: 18px;
}

/* 人件費率の判定色 */
.shft-rate-safe {
	border-color: #b7dfc1;
	background: #f1faf3;
}

.shft-rate-warning {
	border-color: #f3e2ad;
	background: #fdf9ee;
}

.shft-rate-danger {
	border-color: #f0b8bd;
	background: #fdf0f1;
}

.shft-rate-safe .shft-summary-value {
	color: #1d7a3a;
}

.shft-rate-warning .shft-summary-value {
	color: #9a6b00;
}

.shft-rate-danger .shft-summary-value {
	color: #b3373f;
}

.shft-summary-sub .shft-badge-safe,
.shft-summary-sub .shft-badge-warning,
.shft-summary-sub .shft-badge-danger {
	display: inline-block;
	padding: 3px 10px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 12px;
}

.shft-badge-safe {
	background: #d4edda;
	color: #155724;
}

.shft-badge-warning {
	background: #fff3cd;
	color: #856404;
}

.shft-badge-danger {
	background: #f8d7da;
	color: #721c24;
}

.shft-summary-note {
	font-size: 12px;
	color: var(--color-text-muted);
	margin: 12px 0 0;
}

/* ============================================================
   人件費率の目安テーブル（SEO本文）
   ============================================================ */
.shft-reference-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	margin: 12px 0;
}

.shft-reference-table th,
.shft-reference-table td {
	padding: 10px 14px;
	text-align: left;
	border-bottom: 1px solid var(--color-border);
}

.shft-reference-table th {
	font-size: 12px;
	font-weight: 500;
	color: var(--color-text-muted);
	background: var(--color-bg);
}

.shft-reference-table tbody tr:last-child td {
	border-bottom: none;
}

.shft-reference-table .shft-ref-value {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-primary-dark);
	white-space: nowrap;
}

/* ============================================================
   レスポンシブ
   ============================================================ */
@media (max-width: 600px) {
	.shft-settings {
		grid-template-columns: 1fr;
	}

	.shft-setting-item {
		flex-wrap: wrap;
	}

	.shft-text-input {
		width: 100%;
		flex: 1 1 100%;
	}

	.shft-staff-row {
		flex-wrap: wrap;
		gap: 8px;
		padding-bottom: 10px;
		border-bottom: 1px dashed var(--color-border);
	}

	.shft-staff-name {
		flex: 1 1 calc(100% - 32px);
	}

	.shft-staff-rate-group {
		margin-left: 32px;
	}

	.shft-grid-section,
	.shft-summary-section {
		padding-left: 16px;
		padding-right: 16px;
	}

	.shft-summary-grid {
		grid-template-columns: 1fr 1fr;
	}

	.shft-summary-value {
		font-size: 18px;
	}

	.shft-amount-input {
		width: 100%;
		font-size: 16px;
	}

	.shft-sales-item {
		flex: 1 1 100%;
	}
}

/* ============================================================
   印刷（シフト表と集計のみ）
   ============================================================ */
@media print {
	.header,
	.footer,
	.breadcrumb,
	.adsense-wrapper,
	.action-section,
	.shft-no-print,
	.input-section,
	.shft-summary-note {
		display: none !important;
	}

	/* SEO本文・関連ツールカードなど、ツール本体以外を非表示 */
	.tool-card ~ .card {
		display: none !important;
	}

	.page,
	.main,
	body {
		background: #fff !important;
	}

	.main {
		padding: 0 !important;
		max-width: none !important;
	}

	.page-header {
		margin-bottom: 12px;
	}

	.tool-card {
		border: none !important;
	}

	.shft-grid-section {
		padding: 0 !important;
		border: none !important;
	}

	.shft-summary-section {
		background: #fff !important;
		padding: 12px 0 0 !important;
		border: none !important;
	}

	.shft-table-wrapper {
		overflow: visible !important;
	}

	.shft-table {
		min-width: 0 !important;
		width: 100% !important;
		font-size: 11px;
	}

	.shft-table th,
	.shft-table td,
	.shft-summary-item {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	.shft-summary-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}
