/* Scoped to the program tab; deliberately not a web-page permission matrix. */
#programPermissions { color:#19314d; --rpp-border:#d5e1ed; }
#programPermissions * { box-sizing:border-box; }
#programPermissions [hidden] { display:none!important; }
#programPermissions .rpp-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px; border:1px solid var(--rpp-border); border-radius:12px; background:#fff; }
#programPermissions .rpp-intro small { color:#316aa8; font-size:11px; font-weight:800; letter-spacing:1.6px; }
#programPermissions h2 { font-size:24px; margin:7px 0 9px; }
#programPermissions p { line-height:1.6; margin:0; }
#programPermissions .rpp-intro p, #programPermissions .rpp-feature p { color:#526a82; font-size:13px; }
#programPermissions .rpp-policy { margin:12px 0 18px; padding:12px 16px; background:#eaf2fb; border-radius:8px; color:#315777; font-size:12px; }
#programPermissions .rpp-layout { display:grid; grid-template-columns:285px minmax(0,1fr); gap:18px; }
#programPermissions .rpp-sidebar, #programPermissions .rpp-detail { min-width:0; border:1px solid var(--rpp-border); background:white; border-radius:12px; }
#programPermissions .rpp-sidebar { padding:16px; align-self:start; }
#programPermissions .rpp-sidebar > label { display:flex; justify-content:space-between; margin-bottom:12px; font-weight:700; font-size:14px; }
#programPermissions .rpp-sidebar > label span { font-size:12px; color:#617991; }
#programPermissions #rppSearch { width:100%; min-width:0; height:40px; border:1px solid #a9bfd6; border-radius:7px; padding:0 10px; background:white; color:#19314d; }
#programPermissions .rpp-users { display:grid; gap:7px; max-height:520px; overflow:auto; margin-top:12px; padding:1px; }
#programPermissions .rpp-user { display:flex; align-items:center; gap:10px; text-align:left; border:1px solid #dce5ed; border-radius:8px; background:#fff; padding:10px; width:100%; color:#19314d; white-space:normal; }
#programPermissions .rpp-user > input { width:20px; height:20px; flex:0 0 20px; margin:0; accent-color:#2876c7; cursor:pointer; }
#programPermissions .rpp-user > button { flex:1; min-width:0; display:block; padding:4px 0; border:0; border-radius:3px; color:inherit; background:transparent; text-align:left; white-space:normal; cursor:pointer; }
#programPermissions .rpp-user > button em { display:block; margin-top:7px; }
#programPermissions .rpp-user :focus-visible { outline:2px solid #2876c7; outline-offset:3px; }
#programPermissions .rpp-selection { display:grid; gap:9px; margin-top:14px; font-size:12px; }
#programPermissions .rpp-selection > div { display:flex; flex-wrap:wrap; gap:6px; }
#programPermissions .rpp-selection button { padding:7px 9px; font-size:11px; min-height:34px; }
#programPermissions .rpp-programs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
#programPermissions .rpp-session { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
#programPermissions .rpp-session select { min-width:140px; max-width:100%; padding:8px; }
#programPermissions .rpp-user.is-selected { border-color:#2876c7; box-shadow:inset 3px 0 #2876c7; background:#eef6ff; }
#programPermissions .rpp-user b { font-size:14px; }
#programPermissions .rpp-user small { display:block; margin-top:5px; font-size:11px; color:#607790; overflow-wrap:anywhere; }
#programPermissions .rpp-user em { font-style:normal; font-size:11px; font-weight:700; color:#376393; }
#programPermissions .rpp-detail { padding:24px; }
#programPermissions .rpp-subject { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:22px; }
#programPermissions .rpp-subject small { color:#61758c; font-size:12px; }
#programPermissions h3 { margin:6px 0; font-size:21px; }
#programPermissions .rpp-subject h3 span { font-size:13px; color:#6a7e93; font-weight:400; overflow-wrap:anywhere; }
#programPermissions .rpp-subject p { color:#62788c; font-size:12px; }
#programPermissions .rpp-subject > strong { padding:10px 14px; border-radius:8px; color:#146047; background:#e9f6ef; font-size:13px; white-space:nowrap; }
#programPermissions .rpp-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
#programPermissions .rpp-feature { border:1px solid var(--rpp-border); border-top:4px solid #b7c6d7; border-radius:10px; padding:18px; background:#fbfcfe; }
#programPermissions .rpp-feature.is-allowed { border-color:#91b5d9; border-top-color:#2570b8; background:#f4f9ff; }
#programPermissions .rpp-feature-head { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
#programPermissions .rpp-number { color:#7791ab; font-size:22px; font-weight:800; }
#programPermissions h4 { font-size:17px; line-height:1.45; margin:18px 0 12px; }
#programPermissions .rpp-toggle { display:inline-flex; align-items:center; gap:7px; cursor:pointer; position:relative; flex-wrap:nowrap; }
#programPermissions .rpp-toggle input { position:absolute; z-index:1; cursor:pointer; opacity:0; width:38px; height:24px; margin:0; }
#programPermissions .rpp-toggle > span { width:38px; height:22px; border-radius:14px; background:#71859b; border:1px solid #63788d; position:relative; flex-shrink:0; }
#programPermissions .rpp-toggle > span:after { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:white; }
#programPermissions .rpp-toggle input:checked + span { background:#217647; border-color:#1a673c; }
#programPermissions .rpp-toggle input:checked + span:after { left:18px; }
#programPermissions .rpp-toggle input[data-rpp-mixed] + span { background:#b37822; border-color:#996215; }
#programPermissions .rpp-toggle input[data-rpp-mixed] + span:after { left:10px; }
#programPermissions .rpp-toggle input:focus-visible + span { outline:3px solid #579bdc; outline-offset:3px; }
#programPermissions .rpp-toggle input:disabled + span { opacity:.45; }
#programPermissions .rpp-toggle b { font-size:12px; white-space:nowrap; }
#programPermissions .rpp-subfeature { margin-top:24px; border-top:1px solid var(--rpp-border); padding-top:16px; }
#programPermissions .rpp-subfeature > strong { font-size:13px; }
#programPermissions .rpp-subfeature p { font-size:11px; margin:7px 0 12px; }
#programPermissions .rpp-footer { display:flex; align-items:center; gap:10px; border-top:1px solid var(--rpp-border); padding-top:20px; margin-top:24px; flex-wrap:wrap; }
#programPermissions .rpp-footer > div { flex:1; min-width:180px; font-size:13px; }
#programPermissions .rpp-footer small { display:block; font-size:11px; color:#617991; margin-top:8px; }
#programPermissions button:disabled { opacity:.5; cursor:not-allowed; }
#programPermissions .rpp-notice { background:#eff8f1; color:#265f39; padding:12px 16px; border:1px solid #bbd9c3; border-radius:7px; font-size:13px; margin:0 0 16px; }
#programPermissions .rpp-notice.is-error { background:#fff1ef; color:#962f29; border-color:#edc4c0; }
#programPermissions .rpp-empty { padding:25px 10px; text-align:center; color:#688097; font-size:13px; }
#programPermissions .rpp-confirm { width:min(640px,calc(100vw - 32px)); max-height:85vh; overflow:auto; border:1px solid #9eb9d2; border-radius:12px; padding:24px; color:#19314d; }
#programPermissions .rpp-confirm::backdrop { background:#11243a80; }
#programPermissions .rpp-confirm p { font-size:13px; margin:14px 0; }
#programPermissions .rpp-confirm table { width:100%; min-width:0; border-collapse:collapse; }
#programPermissions .rpp-confirm th, #programPermissions .rpp-confirm td { padding:12px 10px; border:1px solid #d5e1ed; white-space:normal; font-size:13px; }
#programPermissions .rpp-confirm th { background:#234d76; color:white; }
#programPermissions .rpp-confirm .rpp-confirm-person th { background:#eaf2fb; color:#234d76; text-align:left; }
#programPermissions .rpp-dialog-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
@media(max-width:1350px) { #programPermissions .rpp-layout { grid-template-columns:240px minmax(0,1fr); } #programPermissions .rpp-cards { grid-template-columns:1fr; } #programPermissions .rpp-feature { padding:16px; } #programPermissions h4 { margin:8px 0; } #programPermissions .rpp-subfeature { margin-top:12px; } }
@media(max-width:700px) { #programPermissions .rpp-layout { grid-template-columns:1fr; } #programPermissions .rpp-users { max-height:230px; } #programPermissions .rpp-detail, #programPermissions .rpp-intro { padding:16px; } #programPermissions .rpp-intro, #programPermissions .rpp-subject { align-items:flex-start; flex-direction:column; } #programPermissions h2 { font-size:21px; } #programPermissions .rpp-footer > div { flex-basis:100%; } }
