.cp-planning-page{max-width:1100px;margin:0 auto;padding-bottom:20px}
.cp-planning-page>.st-section-heading{max-width:800px;margin-bottom:28px}
.cp-plan-picker{display:flex;flex-direction:column;gap:8px;font-weight:650;max-width:720px;margin:18px 0}
.cp-plan-picker select,.cp-requirement select,.cp-curriculum-filters select,.cp-curriculum-filters input{width:100%;max-width:100%;min-height:46px;border:1px solid #cfc8d9;border-radius:10px;background:#fff;padding:10px 12px;font-size:16px;color:var(--st-ink)}
.cp-plan-private{font-size:13px;color:#676777;max-width:760px;margin:12px 0}
.cp-plan-save-status{min-height:24px;font-size:13px;font-weight:600;color:#526849;margin:8px 0}
.cp-plan-context{margin:22px 0 18px;padding-left:18px;border-left:3px solid #b49bc8}
.cp-plan-context h2{margin:0 0 5px;font-size:23px}
.cp-plan-context p{font-size:14px;margin:0 0 4px}
.cp-plan-context a{font-size:13px;font-weight:650}
.cp-plan-progress{padding:20px 23px;border:1px solid #dcd2e7;border-radius:14px;background:linear-gradient(110deg,#f2ecf7,#faf9f4);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 12px}
.cp-plan-progress strong{font-size:18px;color:#4d415e}
.cp-plan-progress span{font-size:13px;color:#696071}
.cp-requirement-list{display:grid;gap:17px;margin:22px 0}
.cp-requirement{background:#fff;border:1px solid #dce2d5;border-radius:15px;padding:22px 24px}
.cp-requirement.is-done{border-left:4px solid #7a9470}
.cp-requirement-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:0 0 17px}
.cp-requirement-head h2{font-size:20px;margin:0}
.cp-requirement-head label{flex:none;min-width:190px}
.cp-requirement ul{margin:0 0 16px;padding-left:20px;line-height:1.75;font-size:15px}
.cp-requirement li+li{margin-top:8px}
.cp-requirement .st-help{font-size:13px;margin:12px 0}
.cp-plan-sources{display:flex;flex-direction:column;gap:5px;font-size:12px;line-height:1.6;color:#6a6570;overflow-wrap:anywhere;margin-top:16px;padding-top:12px;border-top:1px solid #e8e3eb}
.cp-plan-sources a{color:#6c5385;text-decoration:underline;text-underline-offset:3px}
.cp-plan-warning{font-size:14px;border-left:3px solid #b49a56;background:#fcf8ee;padding:10px 14px;color:#6f5c2c;border-radius:0 8px 8px 0}
.cp-plan-gaps{margin:30px 0;padding:23px;border:1px dashed #cfc3d7;border-radius:15px;background:#faf8fc}
.cp-plan-gaps>h2{font-size:23px;margin:0 0 10px}
.cp-plan-gaps>p{font-size:14px;color:#716778}
.cp-plan-gaps article{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-top:1px solid #e3dce9;padding:18px 0}
.cp-plan-gaps article:last-child{padding-bottom:0}
.cp-plan-gaps h3{font-size:16px;margin:0 0 7px}
.cp-plan-gaps article p{font-size:14px;margin:0}
.cp-plan-gaps article button{flex:none;white-space:nowrap}
.cp-plan-sources span{display:block}
.cp-sr-only{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cp-curriculum-preview{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px;border:1px solid #dcd2e7;border-radius:13px;background:#f8f5fb;margin:24px 0}
.cp-curriculum-preview h3{font-size:18px;margin:6px 0 9px}
.cp-curriculum-preview p{font-size:14px;margin:0}
.cp-curriculum-preview>a{flex:none}
.cp-curriculum-preview .cp-plan-sources{font-size:11px;margin-top:10px;padding-top:8px}
.cp-curriculum-selection{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-bottom:18px;margin-bottom:20px;border-bottom:1px solid var(--st-line)}
.cp-curriculum-selection .cp-plan-picker{flex-basis:100%;margin:10px 0}
.cp-selected-program{display:inline-flex;align-items:center;gap:10px;border:1px solid #d7c7e3;background:#f2ebf8;border-radius:12px;padding:2px 3px 2px 13px;font-size:13px;font-weight:600;color:#67517e;max-width:100%}
.cp-selected-program button{font-size:23px;min-width:44px;min-height:44px;color:#6c5880;border-radius:9px}
.cp-selected-program button:hover{background:#e9ddf3}
.cp-plan-section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.cp-plan-section-heading h2{margin:0;font-size:25px}
.cp-plan-section-heading .st-eyebrow{margin-bottom:6px}
.cp-curriculum-comparison{margin:25px 0 32px;max-width:100%;min-width:0}
.cp-plan-table-wrap{overflow-x:auto;max-width:100%;border:1px solid #dce2d5;border-radius:12px;background:#fff;margin:15px 0}
.cp-plan-table-wrap table{border-collapse:collapse;width:100%;font-size:14px}
.cp-plan-table-wrap th,.cp-plan-table-wrap td{padding:14px 17px;vertical-align:top;text-align:left;border-bottom:1px solid #e8ebe3;min-width:170px;line-height:1.6}
.cp-plan-table-wrap th{font-weight:600;color:var(--st-ink)}
.cp-plan-table-wrap thead th{background:#f1edf5;font-size:14px}
.cp-plan-table-wrap th span,.cp-plan-table-wrap small{display:block;font-weight:400;font-size:12px;color:#6f6c73;margin-top:4px}
.cp-plan-table-wrap tbody>tr:last-child>*{border-bottom:0}
.cp-plan-table-wrap tbody>tr:nth-child(even){background:#fbfcf9}
.cp-curriculum-reading-note{border-left:3px solid #b5a16b;padding:12px 18px;color:#6f6753;font-size:14px;background:#fbf8ef;margin:24px 0}
.cp-curriculum-panel{background:#fff;border:1px solid #dce2d5;border-radius:18px;padding:26px;margin:26px 0;min-width:0}
.cp-curriculum-panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:0 0 16px}
.cp-curriculum-panel h2{font-size:25px;margin:0 0 6px}
.cp-curriculum-panel>header p{font-size:14px;margin:0}
.cp-curriculum-panel>header>a{font-size:13px;white-space:nowrap}
.cp-curriculum-scope{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}
.cp-plan-badge{border:1px solid #ddd1e5;background:#f6f1f9;color:#6c5580;font-size:12px;padding:4px 9px;border-radius:6px}
.cp-curriculum-note{font-size:14px;line-height:1.7;color:#655c6e;max-width:880px}
.cp-curriculum-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(100px,1fr) minmax(140px,1fr);gap:15px;margin:22px 0 18px}
.cp-curriculum-filters label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650}
.cp-module-count{font-size:13px;color:#6b6471;margin:10px 0}
.cp-module-table th,.cp-module-table td{min-width:90px}
.cp-module-table th:first-child{width:47%;min-width:230px}
.cp-module-table .cp-module-group>*{background:#ecf1e7;color:#556947;font-size:12px;padding:8px 16px;font-weight:700}
.cp-curriculum-empty{padding:20px;background:#f8f6fa;border-radius:12px;margin:18px 0}
.cp-curriculum-empty h3{margin-top:0;font-size:19px}
.cp-curriculum-empty p{font-size:14px}
.cp-curriculum-empty>button{display:block;margin-top:15px}
.cp-program-plan-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 24px}
.cp-planning-page :is(button,a,select,input):focus-visible,.cp-curriculum-preview a:focus-visible,.cp-plan-table-wrap:focus-visible{outline:3px solid #9b7fba;outline-offset:3px}
@media(max-width:700px){
 .cp-requirement,.cp-plan-gaps,.cp-curriculum-panel{padding:18px 16px;border-radius:13px}
 .cp-requirement-head{align-items:stretch;flex-direction:column;gap:12px}
 .cp-requirement-head label{min-width:0}
 .cp-requirement-head h2{font-size:19px}
 .cp-plan-progress{padding:16px;align-items:flex-start;flex-direction:column}
 .cp-plan-progress strong{font-size:17px}
 .cp-plan-gaps article{flex-direction:column;gap:12px}
 .cp-curriculum-preview{flex-direction:column;align-items:flex-start;padding:17px}
 .cp-curriculum-panel>header{flex-direction:column;gap:8px}
 .cp-curriculum-panel h2{font-size:23px}
 .cp-curriculum-filters{grid-template-columns:1fr 1fr;gap:12px}
 .cp-curriculum-filters label:first-child{grid-column:1/-1}
 .cp-plan-table-wrap th,.cp-plan-table-wrap td{padding:12px;font-size:13px}
 .cp-plan-section-heading h2{font-size:23px}
 .cp-selected-program{font-size:12px}
}
@media(forced-colors:active){.cp-plan-progress,.cp-plan-badge,.cp-requirement,.cp-curriculum-preview,.cp-selected-program,.cp-plan-table-wrap{border:1px solid CanvasText}.cp-requirement.is-done{border-left:4px solid Highlight}}
