/* SF2: isolated view prefixes, existing semantic color tokens only. */
.sf-text { white-space: pre-wrap; overflow-wrap: anywhere; }
.sf-mark { background: var(--warn-bg); color: var(--warn); border-radius: 3px; padding: 1px 2px; }
.sf-block { background: var(--danger-bg); color: var(--danger); }
.sf-match { background: transparent; color: inherit; text-decoration: underline; text-decoration-color: var(--warn); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sf-match.sf-block { text-decoration-color: var(--danger); }
.sf-excepted { background: repeating-linear-gradient(135deg, transparent 0 3px, var(--border) 3px 5px); text-decoration-color: var(--text-sec); }
.sf-overflow { display: block; margin-top: 8px; }
.sf-values { display: grid; grid-template-columns: minmax(80px, max-content) minmax(0, 1fr); gap: 8px 16px; }
.sf-values dd { margin: 0; overflow-wrap: anywhere; }
.sf-hit { padding: 12px 0; border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sd-page { width: 100%; max-width: 1500px; margin: 0 auto; }
.sd-header { margin-bottom: 24px; }
.sd-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: 24px; align-items: start; }
.sd-form { display: grid; gap: 24px; }
.sd-rail { position: sticky; top: 16px; max-height: calc(100vh - 150px); overflow-y: auto; }
.sd-rail textarea { width: 100%; margin: 12px 0; }
.sd-test-result { display: grid; gap: 10px; margin: 20px 0; }
.sd-test-result:empty { display: none; }
.sd-section-head, .sd-category-head, .sd-chip-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.sd-section-head { margin-bottom: 16px; }
.sd-section-head input { max-width: 310px; }
.sd-category-head .field { flex: 1; min-width: 130px; }
.sd-categories { display: grid; gap: 12px; margin-bottom: 12px; }
.sd-category.card { margin: 0; }
.sd-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0; max-height: 320px; overflow-y: auto; }
.sd-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 16px; padding: 4px 10px; max-width: 100%; overflow-wrap: anywhere; }
.sd-remove { border: none; background: transparent; padding: 0 2px; color: var(--text-sec); min-width: 24px; }
.sd-remove:hover { color: var(--danger); background: var(--danger-bg); }
.sd-chip-editor > input { width: 100%; }
.sd-toggle { display: flex; gap: 8px; align-items: center; margin: 12px 0; }
.sd-save { margin-top: 24px; }
.sd-coverage-facts { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin: 12px 0; }
.sd-agent-row { border-top: 1px solid var(--border); padding: 12px 0; }
.sd-agent-coverage:empty { display: none; }
@media (max-width: 1000px) { .sd-layout { grid-template-columns: minmax(0, 1fr); } .sd-rail { position: static; max-height: none; } }

.sf-tool-detail { border: 1px solid var(--border); border-radius: 8px; padding: 12px; margin: 8px 0; }
.sf-tool-detail > summary { cursor: pointer; }
.sf-tool-detail[open] > summary { margin-bottom: 12px; }
.sf-policy { margin: 12px 0; }
