.wf-form { margin-bottom: 18px; }
.wf-form .form-group { margin-bottom: 12px; }
.wf-form label { display: block; font-size: 13px; font-weight: bold; margin-bottom: 4px; color: #2c3e50; }
.wf-form input.form-control { max-width: 520px; }
.wf-form textarea.wf-css { max-width: 100%; font-family: Consolas, Menlo, monospace; font-size: 12px; resize: vertical; }
.wf-modes { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.wf-form label.wf-radio { display: inline-flex; align-items: center; gap: 6px; font-weight: normal; font-size: 14px; color: #333; cursor: pointer; margin: 0; }
.wf-form label.wf-radio input { margin: 0; flex: none; }
.wf-status { margin-left: 10px; font-size: 13px; color: #777; }

.wf-error { padding: 10px 12px; margin-bottom: 14px; border: 1px solid #ebccd1; background: #f2dede; color: #a94442; font-size: 13px; border-radius: 3px; word-break: break-all; overflow-wrap: anywhere; }
.wf-summary { padding: 12px 14px; margin-bottom: 14px; border: 1px solid #ddd; background: #f5f5f5; border-radius: 3px; font-size: 13px; }
.wf-counts { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 8px; }
.wf-count { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.wf-title { font-size: 14px; font-weight: bold; margin: 18px 0 8px; border-left: 4px solid #337ab7; padding-left: 8px; }
.wf-note { font-size: 12px; color: #666; margin: 4px 0; }

/* 判定のバッジ。同じ表の中で幅をそろえるため、最も長い表記(判定不能)が入る幅にする */
.wf-badge { display: inline-block; box-sizing: border-box; width: 5.5em; flex: none; text-align: center; padding: 1px 4px; border-radius: 3px; font-size: 12px; font-weight: bold; white-space: nowrap; vertical-align: middle; }
.wf-badge.wf-l-ok { background: #dff0d8; color: #3c763d; }
.wf-badge.wf-l-info { background: #d9edf7; color: #31708f; }
.wf-badge.wf-l-warn { background: #fcf8e3; color: #8a6d3b; }
.wf-badge.wf-l-bad { background: #f2dede; color: #a94442; }
.wf-badge.wf-l-unknown { background: #e8dff5; color: #5b3a8c; }
.wf-badge.wf-l-skip { background: #eee; color: #666; }

/* 判定の項目。バッジと見出しは横並びにし、見出しが折り返してもバッジの下へ回らない */
.wf-items { list-style: none; margin: 0 0 8px; padding: 0; }
.wf-item { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; border-bottom: 1px solid #f0f0f0; font-size: 13px; }
.wf-item:last-child { border-bottom: 0; }
.wf-item-body { flex: 1; min-width: 0; word-break: break-all; overflow-wrap: anywhere; }
.wf-item-title { font-weight: bold; color: #2c3e50; }
.wf-item-msg, .wf-item-reason, .wf-item-evidence, .wf-item-fix, .wf-item-est { margin-top: 2px; }
.wf-item-reason { color: #555; }
.wf-item-est { color: #8a6d3b; font-size: 12px; }
.wf-item-evidence { margin: 4px 0 0; padding-left: 1.2em; font-family: Consolas, Menlo, monospace; font-size: 12px; color: #444; }
.wf-item-fix { color: #31708f; }

/* 修正例 */
.wf-example { margin-bottom: 12px; }
.wf-example-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 13px; font-weight: bold; color: #2c3e50; margin-bottom: 4px; }
.wf-pre { white-space: pre-wrap; word-break: break-all; overflow-wrap: anywhere; background: #f8f8f8; border: 1px solid #e3e3e3; padding: 8px; font-size: 12px; margin: 0 0 4px; font-family: Consolas, Menlo, monospace; }

/* ラベル|値 の表。ラベル欄は固定幅にせず、同じ表の列として幅がそろう */
.wf-kv { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 8px; }
.wf-kv th, .wf-kv td { border: 1px solid #e3e3e3; padding: 5px 8px; vertical-align: top; text-align: left; }
.wf-kv td.wf-label { background: #fafafa; font-weight: bold; color: #2c3e50; white-space: nowrap; width: 1%; }
.wf-kv td.wf-value { word-break: break-all; overflow-wrap: anywhere; }
.wf-value .copy-btn, .wf-cell .copy-btn { margin-left: 6px; vertical-align: middle; }

/* 列の多い表 */
.wf-grid { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 8px; }
.wf-grid th, .wf-grid td { border: 1px solid #e3e3e3; padding: 5px 8px; vertical-align: top; text-align: left; }
.wf-grid th { background: #f5f5f5; white-space: nowrap; }
.wf-grid td { word-break: break-all; overflow-wrap: anywhere; }
.wf-grid td.wf-num { white-space: nowrap; text-align: right; }

/* 詳細の折りたたみ */
.wf-details { border: 1px solid #ddd; border-radius: 3px; margin-bottom: 10px; }
.wf-details > summary { cursor: pointer; padding: 8px 12px; background: #fafafa; font-weight: bold; color: #2c3e50; font-size: 14px; }
.wf-details[open] > summary { border-bottom: 1px solid #ddd; }
.wf-details-body { padding: 8px 12px; }
.wf-sub { font-size: 13px; font-weight: bold; margin: 10px 0 4px; color: #2c3e50; }

@media (max-width: 600px) {
	.wf-kv td.wf-label { width: auto; white-space: normal; word-break: keep-all; }
	.wf-form input.form-control { max-width: 100%; }
	/* 列の多い表は、各行を「ラベル|値」の縦並びのカードにする */
	.wf-grid, .wf-grid tbody, .wf-grid tr, .wf-grid td { display: block; width: auto; }
	.wf-grid thead { display: none; }
	.wf-grid tr { border: 1px solid #e3e3e3; margin-bottom: 6px; }
	.wf-grid td { border: 0; border-bottom: 1px solid #f0f0f0; display: flex; gap: 8px; text-align: left; }
	.wf-grid td.wf-num { text-align: left; white-space: normal; }
	.wf-grid td::before { content: attr(data-label); flex: none; font-weight: bold; color: #2c3e50; word-break: keep-all; white-space: nowrap; }
	.wf-grid td > .wf-cell { flex: 1; min-width: 0; word-break: break-all; overflow-wrap: anywhere; }
}
