.rid-panel { margin-bottom: 1rem; }
.rid-panel h3 { font-size: 1rem; margin: 0.5rem 0; }
.rid-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0.4rem 0; }
.rid-row input { flex: 1 1 16rem; max-width: 24rem; }
.rid input, .rid select, .rid textarea { padding: 4px 6px; border: 1px solid #a0a0a0; font: inherit; background: #fff; }
.rid button { padding: 4px 12px; font: inherit; border: 1px solid #888; background: #eee; cursor: pointer; }
.rid button:hover:not(:disabled) { background: #e0e0e0; }
.rid button:disabled { opacity: 0.5; cursor: not-allowed; }
.rid-help { color: #555; font-size: 0.9rem; margin: 0.25rem 0; }
.rid-help code, .rid-sample { font-family: ui-monospace, Consolas, "Courier New", monospace; }
.rid-preview { list-style: none; margin: 0.25rem 0; padding: 0; }
.rid-preview li { display: flex; gap: 0.75rem; align-items: baseline; }
.rid-sample { min-width: 10rem; }
.rid-len { color: #666; font-size: 0.85rem; }
.rid-len.over { color: #b00020; font-weight: 600; }
.rid-filters { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; }
.rid-field { display: flex; flex-direction: column; gap: 2px; font-size: 0.9rem; }
.rid-field input, .rid-field select { min-width: 10rem; }
.rid-paste { display: block; width: 100%; box-sizing: border-box; font-family: ui-monospace, Consolas, "Courier New", monospace; font-size: 0.85rem; resize: vertical; }
.rid-info { margin: 0.5rem 0 0.25rem; font-weight: 600; font-size: 0.9rem; }
.rid-scroll { max-height: 24rem; overflow: auto; border: 1px solid #ccc; }
.rid-table { border-collapse: collapse; width: 100%; font-size: 0.9rem; }
.rid-table th, .rid-table td { padding: 3px 8px; text-align: left; border-bottom: 1px solid #eee; white-space: nowrap; }
.rid-table thead th { position: sticky; top: 0; background: #f3f3f3; border-bottom: 1px solid #bbb; z-index: 1; }
.rid-table .rid-check { width: 1.5rem; text-align: center; }
.rid-inlist td { color: #888; background: #fafafa; }
.rid-badge { margin-left: 0.5rem; padding: 0 6px; font-size: 0.75rem; border: 1px solid #bbb; border-radius: 8px; color: #666; }
.rid-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.5rem 0; }
.rid-status { min-height: 1.2em; margin: 0.25rem 0; font-size: 0.9rem; color: #333; }
.rid-status.ok { color: #1b6e2d; }
.rid-status.warn { color: #8a5a00; }
.rid-status.error { color: #b00020; }
.rid-missing { color: #8a5a00; font-size: 0.9rem; margin: 0.25rem 0; }
.rid-missing:empty { display: none; }
.rid-footer { color: #666; font-size: 0.85rem; margin: 1rem 0 0; }
