.pi-drop { border: 2px dashed #b5c4d6; border-radius: 6px; padding: 26px 16px; text-align: center; background: #f8fafc; transition: background .15s, border-color .15s; }
.pi-drop.pi-over { background: #e8f1fb; border-color: #337ab7; }
.pi-drop-text { margin-bottom: 10px; color: #444; }
.pi-drop-sub { margin-top: 10px; font-size: 12px; color: #767676; }
.pi-pick { margin: 0; cursor: pointer; }
.pi-error { padding: 10px 12px; margin: 10px 0; border: 1px solid #ebccd1; background: #f2dede; color: #a94442; font-size: 13px; border-radius: 3px; overflow-wrap: anywhere; }
.pi-status { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; min-height: 0; }
.pi-progress { font-size: 13px; color: #555; min-width: 0; overflow-wrap: anywhere; }
.pi-status .btn { margin: 0; }

.pi-card { border: 1px solid #ddd; border-radius: 3px; margin: 14px 0; }
.pi-card-head { padding: 10px 12px; background: #fafafa; border-bottom: 1px solid #ddd; font-size: 13px; }
.pi-name { font-weight: bold; word-break: break-all; }
.pi-sub { color: #767676; margin-top: 2px; }
.pi-wait { font-size: 13px; color: #555; padding: 10px 12px; }
.pi-actions { padding: 10px 12px; }
.pi-actions .btn { margin-right: 6px; margin-bottom: 4px; }
.pi-body { padding: 0 12px 10px; }
.pi-group { font-size: 13px; font-weight: bold; margin: 12px 0 6px; border-left: 4px solid #337ab7; padding-left: 8px; }
.pi-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pi-table td { padding: 5px 9px; border: 1px solid #e3e3e3; vertical-align: top; word-break: break-all; }
/* ラベルは語の途中で割らない。フォント名など長い英字のラベルは、画面の JS が入れた折り返しの候補(wbr)で折り返す */
.pi-table td:first-child { width: 200px; background: #fafafa; color: #2c3e50; font-family: monospace; word-break: keep-all; }

/* 要約: 判定の印と文を1行の上端にそろえる */
.pi-summary { list-style: none; margin: 0; padding: 0; }
.pi-sum-row { display: flex; align-items: flex-start; gap: 6px; margin: 4px 0; font-size: 13px; line-height: 1.5; }
.pi-sum-text { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.pi-lv { display: inline-block; box-sizing: border-box; width: 5.5em; flex: none; text-align: center; padding: 0 4px; border-radius: 3px; font-size: 12px; line-height: 1.6; font-weight: bold; }
.pi-l-ok { background: #dff0d8; color: #3c763d; }
.pi-l-info { background: #d9edf7; color: #31708f; }
.pi-l-warn { background: #fcf8e3; color: #8a6d3b; }
.pi-l-bad { background: #f2dede; color: #a94442; }
.pi-l-unknown { background: #e8dff5; color: #5b3a8c; }
.pi-l-skip { background: #eee; color: #595959; }

.pi-val { overflow-wrap: anywhere; }
.pi-masked { color: #595959; }
.pi-vc { display: flex; align-items: flex-start; gap: 6px; }
.pi-vc .pi-val { flex: 1 1 auto; min-width: 0; }
.pi-vc .copy-btn { flex: none; margin: 0; }
.pi-advice { font-size: 13px; margin: 4px 0; }
.pi-fold { margin: 12px 0 0; }
.pi-details .pi-group:first-child { margin-top: 0; }
/* 「表示する」「伏せる」は本文の上に置き、開示で本文が伸びても位置が変わらないようにする */
.pi-maskbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 10px 12px 0; font-size: 13px; }
.pi-maskbar .btn { margin: 0; }
.pi-mask-note { color: #555; min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 600px) {
	.pi-table td:first-child { width: auto; white-space: normal; word-break: keep-all; }
}
/* 主な情報のラベルは短い決まった語なので、どの幅でも1行にする */
.pi-table.pi-main td:first-child { white-space: nowrap; }
