/* drop 981: the shared look of the client pages built since drop 970 (requests, regulatory updates, incidents,
   integrations, attestations, requests for bids). Everything is scoped under .rw so no other page is touched. */
.rw{display:grid;gap:1.1rem;width:100%;min-width:0;padding-block:.25rem 2rem}
.rw-head{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;justify-content:space-between}
.rw-head > div{display:grid;gap:.3rem;min-width:0}
.rw-head a:not(.btn){font-size:var(--fs-sm,.85rem);font-weight:600;color:var(--fg-muted);text-decoration:none}
.rw-head a:not(.btn):hover{color:var(--accent)}
.rw .cp-title{margin:0;font-size:clamp(1.35rem,1.1rem + .9vw,1.85rem);font-weight:800;line-height:1.2;color:var(--fg);overflow-wrap:anywhere}
.rw .cp-sub{margin:0;font-size:var(--fs-sm,.88rem);line-height:1.6;color:var(--fg-muted)}
.rw .cp-h2{margin:0 0 .25rem;font-size:var(--fs-md,1rem);font-weight:800;color:var(--fg)}
.rw .cp-card{display:grid;gap:.85rem;align-content:start;min-width:0;padding:1.15rem 1.25rem;background:var(--bg-card,#fff);border:1px solid var(--border,rgba(0,0,0,.08));border-radius:var(--radius-lg,12px)}
.rw a.cp-card{color:inherit;text-decoration:none;transition:border-color .15s ease}
.rw a.cp-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border,rgba(0,0,0,.08)))}
.rw .rw-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.1rem;align-items:start}
@media (max-width:980px){.rw .rw-cols{grid-template-columns:minmax(0,1fr)}}
.rw .table-wrap{width:100%;overflow-x:auto}
.rw .cp-table{width:100%;border-collapse:collapse;border-spacing:0;font-size:var(--fs-sm,.88rem)}
.rw .cp-table th,.rw .cp-table td{padding:.6rem .7rem;text-align:start;vertical-align:top;white-space:normal;border-bottom:1px solid var(--border,rgba(0,0,0,.08))}
.rw .cp-table tbody th{width:34%;font-weight:600;color:var(--fg-muted)}
.rw .cp-table thead th{font-size:var(--fs-xs,.75rem);font-weight:700;color:var(--fg-muted);background:transparent}
.rw .cp-table tr:last-child > *{border-bottom:0}
.rw .inc-form{display:grid;gap:.85rem;max-width:none}
.rw .field-group{display:grid;gap:.35rem;margin:0}
.rw textarea.field-input{min-height:6.5rem;resize:vertical}
.rw .sec-badge.is-ok{background:rgba(22,163,74,.12);color:#16a34a}
.rw .sec-badge.is-warn{background:rgba(201,142,31,.14);color:#a8741a}
.rw .sec-badge.is-bad{background:rgba(220,38,38,.10);color:#dc2626}
.rw .rw-text{white-space:pre-line;overflow-wrap:anywhere;line-height:1.7}
.rw .att-field{display:grid;gap:.4rem}
.rw .att-field > span{font-size:var(--fs-sm,.85rem);font-weight:600}
.rw .att-field small{color:var(--fg-muted)}
.rw .sr-locked{border-inline-start:3px solid #c98e1f}
.rw .btn{justify-self:start;width:auto}.rw .int-once{display:grid;gap:.6rem}
.rw .cp-card > .rw-text,.rw .rw-text{font-size:var(--fs-sm,.9rem);color:var(--fg)}
/* drop 1017: tap targets on touch screens (WCAG 2.2) — the client portal's small controls */
@media (pointer: coarse) {
  main .btn, main .btn-sm { min-height: 36px; }
  main input[type="checkbox"], main input[type="radio"] { width: 24px !important; height: 24px !important; }
  main summary, main a.btn-link, main .cp-sub > a { display: inline-flex; align-items: center; min-height: 24px; }
  main a[href]:not([class*="btn"]) { padding-block: 4px; }
  main .bp-pick { min-width: 22px; }
}
/* drop 1022: every control shows where keyboard focus is (WCAG 2.4.7). Several header and button styles removed the
   outline on focus with nothing in its place; this ring shows only for keyboard focus, never on mouse clicks. */
html body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--accent, #C98E1F) !important; outline-offset: 2px; }
/* the ring appears at once — elements animating "all" properties used to fade the ring in */
html body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { transition-property: color, background-color, border-color, opacity, transform; }
/* drop 1030: the quote for a request */
.rq-quote { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; padding: .9rem 1.1rem; margin: 0 0 1rem; border-radius: 12px; border: 1px solid var(--border, rgba(127,127,127,.25)); }
.rq-quote.is-open { border-color: var(--accent, #C98E1F); background: color-mix(in srgb, var(--accent, #C98E1F) 8%, transparent); }
.rq-quote > div { display: grid; gap: .15rem; } .rq-quote span { font-size: .86rem; opacity: .8; }
/* drop 1032: audit findings for management response */
.au-fd { border: 1px solid var(--border, rgba(127,127,127,.25)); border-radius: 12px; padding: .9rem 1rem; margin: .8rem 0; }
.au-fd header { display: flex; justify-content: space-between; gap: .6rem; align-items: baseline; flex-wrap: wrap; }
.au-fd dl { display: grid; grid-template-columns: minmax(140px, 1fr) 4fr; gap: .35rem .9rem; margin: .7rem 0; font-size: .9rem; } .au-fd dt { opacity: .7; } .au-fd dd { margin: 0; }
@media (max-width: 700px) { .au-fd dl { grid-template-columns: 1fr; } }
.au-rate { font-size: .78rem; font-weight: 700; padding: .15rem .6rem; border-radius: 999px; border: 1px solid currentColor; }
.au-rate.is-critical, .au-rate.is-high { color: #b91c1c; } .au-rate.is-medium { color: #8a5a0b; } .au-rate.is-low { color: #475569; }
/* drop 1036: rating 1–5 */
.au-rate5 { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; border: 0; padding: 0; } .au-rate5 label { display: inline-flex; gap: .3rem; align-items: center; min-height: 32px; }
