.policy-page { min-width: 0; }
.policy-page.active { display: flex; flex-direction: column; gap: 12px; }
.policy-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.policy-heading h2 { font-size: 20px; margin: 0; }
.policy-heading p { margin: 4px 0 0; color: var(--wui-text-secondary); }
.policy-heading small, .policy-row small { display: block; margin-top: 4px; color: var(--wui-text-secondary); }
.policy-surface { background: var(--wui-bg-card); border: 1px solid var(--wui-stroke); border-radius: 4px; padding: 16px; }
.policy-assignment-summary { display: grid; gap: 16px; }
.policy-assignment-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.policy-assignment-identity > span:last-child { min-width: 0; }
.policy-assignment-identity strong, .policy-assignment-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.policy-assignment-identity strong { font-size: 16px; line-height: 22px; }
.policy-assignment-icon, .policy-empty-icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; border-radius: var(--wui-radius-control); background: var(--wui-control-selected); color: var(--wui-accent-text); }
.policy-assignment-icon .fluent, .policy-empty-icon .fluent { width: 20px; height: 20px; }
.policy-assignment-facts, .policy-coverage dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding-top: 14px; border-top: 1px solid var(--wui-divider); }
.policy-assignment-facts > div, .policy-coverage dl > div { display: grid; gap: 3px; min-width: 0; padding: 0 16px; border-left: 1px solid var(--wui-divider); }
.policy-assignment-facts > div:first-child, .policy-coverage dl > div:first-child { padding-left: 0; border-left: 0; }
.policy-assignment-facts dt, .policy-coverage dt { color: var(--wui-text-secondary); font-size: 12px; line-height: 16px; }
.policy-assignment-facts dd, .policy-coverage dd { margin: 0; font-size: 13px; font-weight: 600; line-height: 20px; }
.policy-coverage { display: grid; gap: 14px; }
.policy-coverage header, .policy-exceptions > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.policy-coverage h3, .policy-exceptions h3, .policy-empty h3 { margin: 0; font-size: 14px; line-height: 20px; }
.policy-coverage dl { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 0; border-top: 0; }
.policy-exceptions { padding: 0; overflow: hidden; }
.policy-exceptions > header { min-height: 52px; padding: 12px 16px; }
.policy-exceptions > header > div { display: flex; align-items: baseline; gap: 8px; }
.policy-exception-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(150px, .42fr) auto; align-items: center; gap: 16px; min-height: 60px; padding: 10px 16px; border-top: 1px solid var(--wui-divider); }
.policy-exception-row > span { min-width: 0; overflow-wrap: anywhere; }
.policy-exception-row small { display: block; margin-top: 2px; color: var(--wui-text-secondary); }
.policy-aligned-empty { min-height: 64px; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--wui-divider); color: var(--wui-success); }
.policy-aligned-empty > span { color: var(--wui-text); }
.policy-aligned-empty strong, .policy-aligned-empty small { display: block; }
.policy-aligned-empty small { margin-top: 2px; color: var(--wui-text-secondary); }
.policy-empty { display: flex; align-items: center; gap: 14px; }
.policy-empty p { margin: 3px 0 0; color: var(--wui-text-secondary); }
.policy-group { padding: 0; overflow: hidden; }
.policy-groups { display: flex; flex-direction: column; gap: 12px; }
.policy-group summary { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 12px 16px; cursor: pointer; }
.policy-group summary .fluent { margin-left: auto; }
.policy-group[open] summary .fluent { transform: rotate(180deg); }
.policy-group summary:hover { background: var(--wui-list-item-hover); }
.policy-group summary:active { background: var(--wui-list-item-pressed); }
.policy-group summary:focus-visible, .policy-dialog button:focus-visible { outline: 2px solid var(--wui-focus); outline-offset: -2px; }
.policy-row { display: grid; grid-template-columns: minmax(160px,1fr) minmax(120px,.42fr) auto; align-items: center; gap: 16px; padding: 12px 16px; border-top: 1px solid var(--wui-divider); }
.policy-row > span { overflow-wrap: anywhere; min-width: 0; }
.policy-source { font-size: 12px; color: var(--wui-text-secondary); }
.policy-source.application, .policy-source.version { color: var(--wui-accent-text); }
.policy-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.policy-actions button, .policy-inline-edit, .policy-context-strip button { display: inline-flex; align-items: center; gap: 8px; }
.policy-meta { color: var(--wui-text-secondary); font-size: 12px; }
.policy-info { display: flex; align-items: start; gap: 12px; }
.policy-update { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 12px; border-top: 1px solid var(--wui-divider); color: var(--wui-text-secondary); font-size: 12px; }
.policy-scope-select { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.policy-scope-select select { width: auto; min-width: 180px; }
.policy-dialog { width: min(540px, calc(100vw - 32px)); max-width: none; padding: 0; max-height: calc(100dvh - 48px); background: var(--wui-bg-layer-alt); }
.policy-dialog.policy-dialog-wide { width: min(920px, calc(100vw - 32px)); }
.policy-dialog form { display: flex; flex-direction: column; max-height: calc(100dvh - 50px); min-width: 0; }
.policy-dialog header { padding: 24px 24px 12px; }
.policy-dialog h2 { font-size: 20px; margin: 0; }
.policy-dialog-body { display: flex; flex-direction: column; gap: 16px; padding: 12px 24px 24px; overflow: auto; min-height: 0; }
.policy-dialog-body p { margin: 0; }
.policy-dialog footer { flex-shrink: 0; padding: 16px 24px; display: flex; justify-content: flex-end; gap: 8px; }
.policy-field { display: flex; flex-direction: column; gap: 8px; }
.policy-field input, .policy-field select { width: 100%; }
.policy-scope { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.policy-scope legend { margin-bottom: 12px; }
.policy-scope label, .policy-ack { display: flex; align-items: start; gap: 8px; }
.policy-scope input, .policy-ack input { flex-shrink: 0; }
.policy-error { color: var(--wui-danger); }
.policy-table-scroll { overflow: auto; }
.policy-compare { width: 100%; border-collapse: collapse; font-size: 13px; }
.policy-compare th, .policy-compare td { padding: 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--wui-divider); }
.policy-compare td small { display: block; margin: 6px 0; }
.policy-compare th { font-weight: 600; }
.policy-snapshot-code { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; }
.policy-preview-identity { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--wui-divider); }
.policy-preview-identity span { color: var(--wui-text-secondary); font-size: 12px; }
.policy-resolution-state { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--wui-stroke); border-radius: var(--wui-radius-control); background: var(--wui-bg-card); }
.policy-resolution-state strong { font-size: 12px; }
.policy-resolution-state span { color: var(--wui-text-secondary); font-size: 12px; }
.policy-resolution-state.success strong { color: var(--wui-success); }
.policy-resolution-state.warning strong { color: var(--wui-warning); }
.policy-resolution-state.error strong { color: var(--wui-danger); }
.policy-resolved-preview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border: 1px solid var(--wui-stroke); border-radius: var(--wui-radius-control); overflow: hidden; }
.policy-resolved-preview > div { display: grid; gap: 4px; padding: 12px; border-top: 1px solid var(--wui-divider); border-left: 1px solid var(--wui-divider); }
.policy-resolved-preview > div:nth-child(-n+2) { border-top: 0; }
.policy-resolved-preview > div:nth-child(odd) { border-left: 0; }
.policy-resolved-preview dt { color: var(--wui-text-secondary); font-size: 12px; }
.policy-resolved-preview dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.policy-generated-plan { border: 1px solid var(--wui-stroke); border-radius: var(--wui-radius-control); overflow: hidden; }
.policy-generated-plan summary { min-height: 44px; display: flex; align-items: center; padding: 8px 12px; cursor: pointer; font-weight: 600; }
.policy-generated-plan summary:hover { background: var(--wui-list-item-hover); }
.policy-generated-plan ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wui-divider); }
.policy-generated-plan li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: start; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--wui-divider); }
.policy-generated-plan li:first-child { border-top: 0; }
.policy-generated-plan li > span:first-child { color: var(--wui-text-secondary); font-size: 12px; }
.policy-generated-plan li > span:last-child { color: var(--wui-accent-text); font-size: 11px; }
.policy-generated-plan li strong, .policy-generated-plan li small { display: block; }
.policy-generated-plan li small { margin-top: 2px; color: var(--wui-text-secondary); overflow-wrap: anywhere; }
.policy-input-summary h3 { font-size: 14px; margin: 0 0 4px; }
.policy-input-summary p { font-size: 12px; color: var(--wui-text-secondary); margin: 0; }
.policy-field-label { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.policy-field-name { min-width: 0; overflow-wrap: anywhere; }
.policy-inline-owner { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 2px; margin-left: auto; }
.policy-inline-owner:empty { display: none; }
button.policy-source-tip { color: var(--wui-text-secondary); }
button.policy-source-tip.exception { color: var(--wui-accent-text); }
button.policy-inline-edit { min-width: auto; min-height: 24px; height: 24px; padding: 0 6px; border-color: transparent; background: transparent; color: var(--wui-accent-text); font-size: 12px; font-weight: 600; }
button.policy-inline-edit:hover:not(:disabled) { background: var(--wui-list-item-hover); }
button.policy-inline-edit:active:not(:disabled) { background: var(--wui-list-item-pressed); color: var(--wui-text-secondary); }
.workflow-policy-setting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--wui-divider);
  border-radius: var(--wui-radius-control);
  background: var(--wui-bg-layer-alt);
}
.workflow-policy-setting[hidden] { display: none; }
.workflow-policy-setting > span:first-child { display: grid; gap: 2px; min-width: 0; }
.workflow-policy-setting small { color: var(--wui-text-secondary); }
.workflow-policy-setting strong { overflow-wrap: anywhere; }
.workflow-deployment-policy { overflow: hidden; }
.workflow-deployment-policy .deploy-heading .label-with-help { display: inline-flex; align-items: center; gap: 2px; }
.workflow-policy-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workflow-policy-groups > section { min-width: 0; border-top: 1px solid var(--wui-divider); }
.workflow-policy-groups > section:nth-child(even) { border-left: 1px solid var(--wui-divider); }
.workflow-policy-groups > section:last-child:nth-child(odd) { grid-column: 1 / -1; }
.workflow-policy-groups h3 { margin: 0; padding: 10px 12px; color: var(--wui-text-secondary); font-size: 12px; font-weight: 600; }
.workflow-policy-row { display: grid; grid-template-columns: minmax(150px, .72fr) minmax(180px, 1fr) auto; align-items: center; gap: 12px; min-height: 44px; padding: 8px 12px; border-top: 1px solid var(--wui-divider); }
.workflow-policy-row > span:first-child { color: var(--wui-text-secondary); }
.workflow-policy-row strong { min-width: 0; overflow-wrap: anywhere; }
.policy-installation-label { width: max-content; max-width: 100%; justify-content: flex-start; }
.policy-context-strip { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 4px 0; font-size: 12px; color: var(--wui-text-secondary); }
.policy-workflow-notice { margin: 12px 0 0; display: flex; gap: 12px; font-size: 12px; }
@media (max-width: 1000px) {
  .policy-assignment-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 12px; }
  .policy-assignment-facts > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .policy-exception-row { grid-template-columns: minmax(180px, 1fr) auto; gap: 8px; }
  .policy-exception-row .policy-source { grid-column: 1; }
  .policy-exception-row .policy-actions { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; align-items: stretch; }
  .policy-row { grid-template-columns: minmax(140px, 1fr) auto; gap: 8px; }
  .policy-row .policy-source { grid-column: 1; }
  .policy-row .policy-actions { grid-column: 2; grid-row: 1 / span 2; flex-direction: column; align-items: stretch; }
  .policy-scope-select { flex-wrap: wrap; }
  .workflow-policy-groups { grid-template-columns: 1fr; }
  .workflow-policy-groups > section:nth-child(even) { border-left: 0; }
  .workflow-policy-groups > section:last-child:nth-child(odd) { grid-column: auto; }
}
@media (max-width: 640px) {
  .policy-resolved-preview { grid-template-columns: 1fr; }
  .policy-resolved-preview > div { border-left: 0; }
  .policy-resolved-preview > div:nth-child(2) { border-top: 1px solid var(--wui-divider); }
}
.policy-adaptation-summary, .policy-resolution-issues { display: grid; gap: 8px; margin-top: 16px; }
.policy-adaptation-summary h3 { margin: 0 0 4px; }
.policy-adaptation-summary > div { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--stroke-card); }
.policy-resolution-issue { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px; border: 1px solid var(--stroke-card); border-radius: 6px; background: var(--surface-card); }
.policy-resolution-issue > div { display: grid; gap: 3px; }
.policy-resolution-issue p, .policy-resolution-issue small { margin: 0; }
.policy-resolution-issue small { color: var(--text-secondary); }
