.policy-main { padding: 24px; display: grid; gap: 20px; min-width: 0; }
.policy-main .workspace-card { padding: 22px; min-width: 0; scroll-margin-top: 20px; }
.policy-main h2 { margin-top: 0; }
.policy-main .button { width: auto; min-height: 36px; padding: 8px 14px; font-size: 13px; flex: 0 0 auto; }
.policy-tabs, .policy-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.policy-tabs a { padding: 10px 14px; border-radius: 8px; background: #f0f2ff; color: #343bae; text-decoration: none; }
.policy-list { display: grid; gap: 12px; }
.policy-item { padding: 16px; border: 1px solid #e0e5ef; border-radius: 10px; min-width: 0; overflow-wrap: anywhere; }
.policy-item > header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.policy-item p { margin: 8px 0; line-height: 1.55; white-space: pre-wrap; }
.policy-item ul { margin: 10px 0 0; padding-left: 24px; }
.policy-item li { margin: 6px 0; }
.policy-field-grid { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(200px, 3fr); gap: 16px; }
.policy-main fieldset { min-width: 0; }
.policy-main label { display: grid; gap: 7px; margin-bottom: 14px; }
.policy-main .policy-check { display: flex; align-items: flex-start; justify-content: flex-start; gap: 10px; margin: 0; padding: 10px; cursor: pointer; border-radius: 6px; }
.policy-main .policy-check:hover { background: #f3f5fa; }
.policy-main .policy-check input[type="checkbox"] { width: 17px; height: 17px; min-width: 17px; min-height: 17px; flex: 0 0 17px; padding: 0; margin: 2px 0 0; accent-color: #5b5de6; }
.policy-main .policy-check span { min-width: 0; flex: 1; overflow-wrap: anywhere; }
#policy-rule-options { max-height: 320px; overflow-y: auto; }
#policy-message { margin: 0; white-space: pre-wrap; }
#policy-message[data-error="true"] { color: #a82828; }
.policy-main [hidden] { display: none !important; }
.policy-evidence { font-size: 12px; border-left: 3px solid #c8ceed; padding-left: 10px; white-space: pre-wrap; overflow-wrap: anywhere; }
#policy-scan-progress { width: 100%; height: 18px; accent-color: #5b5de6; }
#policy-scan-status, #policy-scan-error { white-space: pre-wrap; overflow-wrap: anywhere; }
#policy-scan-error { color: #a82828; }
#policy-scan-failures { max-height: 220px; overflow-y: auto; }
@media (max-width: 650px) { .policy-main { padding: 12px; } .policy-field-grid { grid-template-columns: 1fr; } .policy-item > header { flex-wrap: wrap; } }
