/* Compliance / AML back office (module F). */
.cp-trend { display: flex; align-items: flex-end; gap: 3px; height: 140px; padding-top: 6px; }
.cp-trend .bar { flex: 1; min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; position: relative; }
.cp-trend .bar span { width: 100%; max-width: 22px; min-height: 2px; border-radius: 2px 2px 0 0; background: linear-gradient(180deg, #f0294e, #c50039); }
.cp-trend .bar span.zero { background: #dbe4ec; }
.cp-trend .bar small { font-size: 10px; color: var(--muted); white-space: nowrap; height: 13px; }
.cp-trend .bar:hover span { filter: brightness(1.15); }
.cp-sev { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cp-sev a { display: block; border: 1px solid #dde5ed; border-left-width: 4px; border-radius: 3px; padding: 8px 10px; background: var(--panel2); color: var(--text); }
.cp-sev a b { display: block; font-size: 22px; line-height: 1.1; }
.cp-sev a small { color: var(--muted); font-size: 11.5px; }
.cp-sev a.high { border-left-color: #c32a43; } .cp-sev a.medium { border-left-color: #ed9200; } .cp-sev a.low { border-left-color: #0a6fd2; }
.cp-rows { display: grid; gap: 8px; }
.cp-rows .row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; font-size: 12.5px; }
.cp-rows .row .ct-meter { grid-column: 1 / -1; }
.cp-rows .row a { color: var(--text); }
.cp-factors { list-style: none; margin: 0; padding: 0; }
.cp-factors li { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line2); font-size: 12.5px; }
.cp-factors li:last-child { border-bottom: 0; }
.cp-factors li b { white-space: nowrap; color: var(--badFg); }
.cp-score { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }
.cp-score .ring { width: 74px; height: 74px; border-radius: 50%; display: grid; place-items: center; flex: none;
    background: conic-gradient(var(--c, #0a6fd2) calc(var(--p, 0) * 1%), #e6edf3 0); }
.cp-score .ring b { width: 58px; height: 58px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 20px; }
.cp-score.high { --c: #c32a43; } .cp-score.medium { --c: #ed9200; } .cp-score.low { --c: #13b985; }
.cp-score .txt { min-width: 0; font-size: 12.5px; color: var(--muted); }
.cp-score .txt strong { display: block; font-size: 16px; color: var(--text); }
.cp-actions { display: grid; gap: 8px; }
.cp-actions details { border: 1px solid #dde5ed; border-radius: 3px; background: #fff; }
.cp-actions summary { cursor: pointer; padding: 9px 12px; font-weight: 700; font-size: 12.5px; color: #1d3650; display: flex; align-items: center; gap: 8px; list-style: none; }
.cp-actions summary::-webkit-details-marker { display: none; }
.cp-actions summary:after { content: "\F282"; font-family: bootstrap-icons; margin-left: auto; font-weight: 400; color: var(--muted); transition: transform .15s; }
.cp-actions details[open] summary:after { transform: rotate(180deg); }
.cp-actions details[open] summary { border-bottom: 1px solid #dde5ed; }
.cp-actions details > form, .cp-actions details > .body { padding: 12px; }
.cp-note { white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 3px; color: var(--text2); }
.cp-owner-rows { display: grid; gap: 8px; }
.cp-owner-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr) auto; gap: 8px; align-items: end; padding: 8px; border: 1px dashed #cbd7e2; border-radius: 3px; background: var(--panel2); }
.cp-owner-row .ct-check { min-height: 36px; }
.cp-match { font-size: 11.5px; color: var(--muted); display: block; white-space: normal; }
.cp-countries { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 6px 12px; }
.cp-countries label { display: flex; align-items: center; gap: 7px; padding: 6px 8px; border: 1px solid #dde5ed; border-radius: 3px; font-size: 12.5px; cursor: pointer; background: #fff; min-width: 0; }
.cp-countries label:has(input:checked) { border-color: #ebbcc5; background: var(--badBg); color: var(--badFg); font-weight: 700; }
.cp-countries label span.n { margin-left: auto; color: var(--muted); font-weight: 400; font-size: 11.5px; }
.cp-countries input { accent-color: #c32a43; width: 15px; height: 15px; flex: none; }
.cp-pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; }
.ct-tbl tr.cp-hl td { background: #fff8e1; }
@media (max-width: 900px) {
    .cp-owner-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .cp-owner-row > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .cp-trend .bar small { visibility: hidden; }
    .cp-trend .bar:nth-child(5n+1) small { visibility: visible; }
}

/* ---- Module 05 compliance, AML and fraud screens (cx-) ---- */
.ct-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
.cx-gauges { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; align-items: start; }
.cx-list { list-style: none; margin: 0; padding: 0; }
.cx-list li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line2); font-size: 12.5px; min-width: 0; }
.cx-list li:last-child { border-bottom: 0; }
.cx-list li > span { min-width: 0; overflow-wrap: anywhere; }
.cx-list li b { white-space: nowrap; }
.cx-weights { border: 1px dashed #cbd7e2; border-radius: 3px; padding: 8px 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px 12px; }
.cx-weights legend { font-weight: 700; font-size: 12px; padding: 0 4px; }
.cx-more { border: 1px solid #dde5ed; border-radius: 3px; margin: 10px 0; }
.cx-more summary { cursor: pointer; padding: 8px 10px; font-weight: 700; font-size: 12.5px; }
.cx-more[open] summary { border-bottom: 1px solid #dde5ed; }
.cx-more > form { padding: 10px; }
.cx-pad { padding: 10px 12px; }
.cx-row { display: inline-flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.cx-row .ct-input { min-width: 0; max-width: 180px; }
.ct-tbl tr.cx-current td { background: #eef6ff; }
fieldset { min-width: 0; }
@media (max-width: 640px) {
    .cx-row .ct-input { max-width: 100%; width: 100%; }
    .cx-gauges { grid-template-columns: 1fr 1fr; }
}
