/* ACL What-If (ACL-01.4). Colours come from the theme tokens in style-base.css. */

.acl-form-actions { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.5rem; }
.acl-limits { font-size: 0.78rem; color: var(--muted); }

.acl-trace-fields { border: 1px solid var(--border); border-radius: 10px; padding: 0.75rem; margin: 0.25rem 0 0; }
.acl-trace-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 0.75rem; }

.acl-status { margin-top: 1rem; padding: 0.6rem 0.8rem; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-alt); color: var(--text); font-size: 0.9rem; }
.acl-status-error { border-color: rgba(249, 115, 115, 0.6); background: rgba(249, 115, 115, 0.1); color: var(--danger); }

.acl-summary-row { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.acl-count { min-width: 90px; padding: 0.5rem 0.75rem; border-radius: 10px; border: 1px solid var(--border); text-align: center; }
.acl-count-num { font-size: 1.6rem; font-weight: 700; }
.acl-count-label { font-size: 0.72rem; color: var(--muted); letter-spacing: 0.4px; }
.acl-count-error .acl-count-num { color: #ef4444; }
.acl-count-warn .acl-count-num { color: #eab308; }
.acl-count-info .acl-count-num { color: var(--accent); }
/* ACL-01.5a: lines the lint could not check; highlighted when there is at least one. */
.acl-count-ne .acl-count-num { color: var(--muted); }
.acl-count-alert { border-color: rgba(234, 179, 8, 0.7); background: rgba(234, 179, 8, 0.08); }
.acl-count-alert .acl-count-num { color: #eab308; }

.acl-table-wrap { overflow-x: auto; }
.acl-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.acl-table th, .acl-table td { padding: 0.4rem 0.55rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; color: var(--text); }
.acl-table th { color: var(--muted); font-weight: 600; white-space: nowrap; }
.acl-mono, .acl-quote { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.78rem; word-break: break-word; }
.acl-quote div + div { color: var(--muted); }
.acl-dim { color: var(--muted); font-size: 0.78rem; }
.acl-lint-table td:nth-child(1) { min-width: 5rem; }
.acl-lint-table td:nth-child(2), .acl-lint-table td:nth-child(4) { white-space: nowrap; }
.acl-lint-table td:nth-child(5) { min-width: 220px; }
.acl-lint-table td:nth-child(6), .acl-lint-table td:nth-child(7) { min-width: 180px; }

.acl-badge { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.4px; color: #fff; white-space: nowrap; }
.acl-badge-error { background: #ef4444; }
.acl-badge-warn { background: #ca8a04; }
.acl-badge-info { background: var(--accent); }
.acl-badge-ne { background: #6b7280; }

.acl-verdict { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 0.7rem; font-weight: 700; }
.acl-verdict-permit { background: rgba(34, 197, 94, 0.18); color: #22c55e; }
.acl-verdict-deny { background: rgba(239, 68, 68, 0.18); color: #ef4444; }
.acl-row-shadow { background: rgba(234, 179, 8, 0.08); }
.acl-row-match { background: var(--accent-soft); }

.acl-trace-head { margin-bottom: 0.5rem; font-size: 0.95rem; }
.acl-group-title { margin: 0.75rem 0 0.35rem; font-size: 0.9rem; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.acl-note { font-size: 0.8rem; color: var(--muted); margin: 0.25rem 0 0.5rem; }
.acl-note-alert { color: #eab308; }
.acl-clean { color: #22c55e; font-size: 0.9rem; }

/* Number inputs get no dark-theme rule in style-base.css; match the text inputs here only. */
.acl-trace-fields input[type="number"] {
  border-radius: 9px;
  border: 1px solid rgba(55, 65, 81, 0.9);
  background: rgba(15, 23, 42, 0.95);
  color: var(--text);
  padding: 7px 9px;
  font-size: 0.9rem;
  outline: none;
}
