[data-group-policy-form] { background:#fffefa; border:1px solid #dce3d9; border-radius:22px; margin-top:20px; box-shadow:0 12px 30px #183b2e08; }
[data-group-policy-form] h3 { font-size:26px; margin:8px 0 12px; }
[data-group-policy-form] p { color:#64766b; line-height:1.8; }
[data-group-policy-fields] > label { display:grid; gap:10px; padding:20px; background:#f3f6f0; border:1px solid #e0e7dc; border-radius:14px; font-weight:600; color:#214b3b; }
[data-group-policy-fields] input[type=number] { display:block; box-sizing:border-box; width:200px; max-width:100%; padding:12px 14px; background:white; border:1px solid #b9cbbf; border-radius:9px; font-family:inherit; font-size:20px; font-weight:600; line-height:1.4; color:#164e3b; }
[data-group-policy-fields] > label:has(input[type=checkbox]) { display:flex; align-items:center; gap:12px; }
[data-group-policy-fields] input[type=checkbox] { width:20px; height:20px; accent-color:#125940; }
[data-group-policy-fields] small { display:block; font-size:13px; font-weight:400; color:#66756b; line-height:1.7; }
[data-group-policy-fields] > button { justify-self:start; min-width:180px; }
[data-group-policy-fields]:disabled { opacity:.65; }
.policy-matrix-form { padding:28px!important; max-width:none!important; }
.policy-matrix-form h3 { font-size:40px; line-height:1.3; }
.policy-matrix-form [data-group-policy-fields] { border:0; padding:0; margin:28px 0 0; min-width:0; }
.policy-matrix-title { font-size:22px; font-weight:700; margin-bottom:18px; color:#214b3b; }
.policy-table-scroll { overflow-x:auto; border:1px solid #dce3d9; border-radius:12px; }
.policy-matrix { width:100%; min-width:700px; border-collapse:collapse; table-layout:fixed; color:#214b3b; }
.policy-matrix th:first-child { width:20%; }
.policy-matrix thead { background:#214f40; color:#fffefa; }
.policy-matrix th,.policy-matrix td { padding:24px 18px; border-bottom:1px solid #dce3d9; border-right:1px solid #dce3d9; text-align:center; }
.policy-matrix thead th { padding:20px 18px; font-size:17px; }
.policy-matrix th:first-child { text-align:left; }
.policy-matrix th span { font-size:13px; margin-left:8px; font-weight:400; }
.policy-matrix tbody th { background:#f3f6f0; font-size:16px; }
.policy-matrix tr:last-child th,.policy-matrix tr:last-child td { border-bottom:0; }
.policy-matrix th:last-child,.policy-matrix td:last-child { border-right:0; }
.policy-inline { display:flex; align-items:center; justify-content:center; gap:12px; white-space:nowrap; }
.policy-matrix input[type=number],.policy-matrix select { box-sizing:border-box; width:108px; padding:10px 14px; min-height:46px; font-size:18px; font-weight:600; line-height:1.3; font-family:inherit; color:#214b3b; background:#fff; border:1px solid #b9cbbf; border-radius:8px; }
.policy-matrix select { font-size:16px; }
.policy-matrix input:disabled,.policy-matrix select:disabled { opacity:.45; }
.policy-toggle { display:inline-flex; align-items:center; gap:10px; font-size:14px; cursor:pointer; }
.policy-toggle { position:relative; }
.policy-toggle input { position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.policy-toggle:has(input:focus-visible) { outline:2px solid #125940; outline-offset:4px; }
.policy-toggle i { font-size:44px; line-height:1; color:#125940; }
.policy-summaries { display:grid; grid-template-columns:1fr 1fr; gap:28px; background:#f3f6f0; border-radius:12px; padding:26px; margin-top:24px; }
.policy-summaries section { display:flex; gap:20px; }
.policy-summaries section+section { border-left:1px solid #dce3d9; padding-left:28px; }
.policy-summaries i { font-size:28px; color:#125940; }
.policy-summaries h4 { margin:0 0 8px; font-size:18px; color:#214b3b; }
.policy-summaries p { margin:0; font-size:16px; max-width:440px; }
.policy-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:24px; }
.policy-footer p { font-size:13px; margin:0; }
.policy-footer .button { min-width:190px; }
.policy-help { margin-top:18px; font-size:13px; color:#64766b; }
.policy-help summary { cursor:pointer; }
.policy-retry { border:1px solid #b9cbbf; border-radius:8px; padding:10px 16px; background:#fffefa; color:#214b3b; cursor:pointer; }
.policy-matrix-form :focus-visible { outline:2px solid #125940; outline-offset:3px; }
@media(max-width:760px) { .policy-matrix-form { padding:18px!important; } .policy-summaries { grid-template-columns:1fr; padding:18px; gap:18px; } .policy-summaries section+section { border-left:0; border-top:1px solid #dce3d9; padding:18px 0 0; } .policy-footer { align-items:stretch; flex-direction:column; } }
.course-consumption-toolbar { flex-wrap:wrap; gap:16px; }
.course-consumption-periods [data-course-consumption-type] { white-space:nowrap; }
[data-dashboard][data-load-failed] [data-portal-view] { display:none!important; }
[data-dashboard-error] button { margin-left:12px; padding:8px 16px; border:1px solid currentColor; border-radius:8px; background:transparent; color:inherit; cursor:pointer; }
@media(max-width:640px) { [data-group-policy-form] { padding:18px!important; } [data-group-policy-fields] > label { padding:14px; } }
