/* V3.1 minimal shell layout only. No visual redesign — functional layout for Gate 2. */
body { font-family: system-ui, sans-serif; margin: 0; }
header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid #ccc; }
main { padding: 16px; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ccc; padding: 6px 10px; text-align: left; font-size: 14px; }
.status-ok { color: #0a7a2f; font-weight: bold; }
.status-error { color: #b00020; font-weight: bold; }
.status-unauthorized { color: #b06a00; font-weight: bold; }
.status-unavailable { color: #999; font-weight: bold; }
.raw-preview { display: none; white-space: pre-wrap; word-break: break-all; background: #f5f5f5; padding: 8px; margin-top: 4px; max-height: 200px; overflow: auto; }

.ov-cards { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.ov-card { border: 1px solid #ccc; border-radius: 4px; padding: 12px; min-width: 200px; flex: 1 1 200px; }
.ov-card h3 { margin: 0 0 8px 0; font-size: 14px; }
.ov-detail { font-size: 12px; color: #666; margin-top: 4px; }
.svc-actions { margin-top: 8px; display: flex; gap: 6px; flex-wrap: wrap; }
.action-result { margin: 8px 0; min-height: 1.2em; }
#eventFilter { margin-left: 8px; }
table th, table td { vertical-align: top; }
