.assessment-plan { font-variant-numeric:tabular-nums; }
.assessment-plan .ap-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; }
.assessment-plan .ap-heading h1 { margin:0 0 8px; }
.assessment-plan .ap-heading p { max-width:720px; color:var(--ink-2); font-size:13px; margin:0; }
.assessment-plan .ap-semester { display:grid; gap:5px; flex-shrink:0; font-size:12px; }
.assessment-plan .ap-panel { min-width:0; border:1px solid var(--line); border-radius:var(--radius); padding:18px; background:var(--panel); }
.assessment-plan .ap-panel h2 { font-size:17px; font-weight:600; margin-bottom:15px; }
.assessment-plan .ap-scope { font-size:12px; color:var(--ink-2); margin:-8px 0 14px; overflow-wrap:anywhere; }
.assessment-plan .ap-owned-head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.assessment-plan .ap-owned-head h2 { margin:0; }
.assessment-plan .ap-add-manual { font-size:12px; }
.assessment-plan .ap-selected-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.assessment-plan .ap-selected { min-width:0; padding:15px; border:1px solid var(--line); border-radius:var(--radius); }
.assessment-plan .ap-subject-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:10px; }
.assessment-plan .ap-selected h3 { font-size:14px; font-weight:600; overflow-wrap:anywhere; }
.assessment-plan .ap-selected p { margin:5px 0 9px; color:var(--ink-2); font-size:11px; }
.assessment-plan .ap-colour-dot { display:inline-block; width:10px; height:10px; margin-right:7px; border-radius:50%; }
.assessment-plan .ap-lessons { margin-top:12px; }
.assessment-plan .ap-lesson { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:9px; padding:11px 0; border-top:1px solid var(--line); }
.assessment-plan .ap-lesson>div:first-child { min-width:0; }
.assessment-plan .ap-lesson b,.assessment-plan .ap-lesson span,.assessment-plan .ap-lesson small { display:block; overflow-wrap:anywhere; }
.assessment-plan .ap-lesson b { font-size:12px; font-weight:500; }
.assessment-plan .ap-lesson span { font-size:12px; margin:4px 0; }
.assessment-plan .ap-lesson small { font-size:11px; color:var(--ink-2); line-height:1.5; }
.assessment-plan .ap-exceptions { flex-basis:100%; padding:0 10px; border-left:2px solid var(--line); }
.assessment-plan .ap-exception { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:5px 0; }
.assessment-plan .ap-exception>div { min-width:0; }
.assessment-plan .ap-selected .ap-lessons-empty { padding:11px 0; border-top:1px solid var(--line); margin-bottom:0; }
.assessment-plan .ap-add-lesson { font-size:12px; margin-top:6px; }
.assessment-plan .ap-occurrence-hint { color:var(--ink-2); font-size:12px; line-height:1.5; margin:16px 0 0; }
.assessment-plan .ap-catalogue { margin-top:18px; }
.assessment-plan .ap-catalogue summary { cursor:pointer; font-size:14px; font-weight:500; color:var(--hsg); }
.assessment-plan .ap-catalogue-content { margin-top:20px; }
.assessment-plan .ap-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.assessment-plan .ap-remove { border:0; background:transparent; padding:4px 0; color:var(--err); font-size:11px; }
.assessment-plan .ap-search { display:grid; gap:5px; margin-bottom:12px; }
.assessment-plan .ap-search label { font-size:12px; }
.assessment-plan .ap-search input { width:100%; min-width:0; }
.assessment-plan .ap-courses { max-height:65dvh; overflow-y:auto; border-top:1px solid var(--line); }
.assessment-plan .ap-course { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; padding:12px 7px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:var(--panel); text-align:left; font-size:12px; }
.assessment-plan .ap-course:hover { background:var(--bg); }
.assessment-plan .ap-course>span:first-child { min-width:0; }
.assessment-plan .ap-course>span:last-child { flex-shrink:0; color:var(--hsg); font-size:11px; }
.assessment-plan .ap-course b { display:block; font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.assessment-plan .ap-course small { display:block; color:var(--ink-2); font-size:11px; margin-top:4px; }
.assessment-plan .ap-empty { font-size:12px; color:var(--ink-2); padding:10px 0; }
.ap-dialog { width:min(650px,calc(100% - 28px)); max-height:calc(100dvh - 36px); padding:0; overflow:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); color:var(--ink); font-family:var(--sans); }
.ap-dialog::backdrop { background:rgba(23,33,27,.35); }
.ap-dialog .ap-dialog-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line); }
.ap-dialog h2 { font-size:19px; font-weight:600; overflow-wrap:anywhere; }
.ap-dialog .ap-close { border:0; background:transparent; padding:2px 7px; font-size:22px; line-height:1; color:var(--ink-2); }
.ap-dialog .ap-dialog-content { padding:18px 20px 20px; }
.ap-dialog .ap-dialog-subtitle { font-size:12px; color:var(--ink-2); margin:5px 0 0; overflow-wrap:anywhere; }
.ap-dialog .ap-form-field { display:grid; min-width:0; gap:6px; margin-bottom:14px; }
.ap-dialog .ap-form-field label { font-size:12px; }
.ap-dialog .ap-form-field input,.ap-dialog .ap-form-field select { width:100%; min-width:0; }
.ap-dialog .ap-colour-field input { width:70px; height:36px; padding:4px; cursor:pointer; }
.ap-dialog .ap-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ap-dialog .ap-meta { font-size:12px; color:var(--ink-2); margin:0 0 15px; }
.ap-dialog fieldset { min-width:0; border:0; margin:0 0 15px; padding:0; }
.ap-dialog legend { font-size:14px; font-weight:600; padding:0; }
.ap-dialog .ap-hint { font-size:12px; line-height:1.5; color:var(--ink-2); margin:8px 0 12px; }
.ap-dialog .ap-time-hint { margin-top:-5px; }
.ap-dialog .ap-group-list { max-height:45dvh; overflow-y:auto; }
.ap-dialog .ap-group { display:flex; align-items:flex-start; gap:10px; border-top:1px solid var(--line); padding:11px 6px; font-size:12px; cursor:pointer; }
.ap-dialog .ap-group input { width:17px; height:17px; flex-shrink:0; margin-top:2px; accent-color:var(--hsg); }
.ap-dialog .ap-group>span { min-width:0; }
.ap-dialog .ap-group b { display:block; font-weight:500; overflow-wrap:anywhere; }
.ap-dialog .ap-group small { display:block; font-size:11px; color:var(--ink-2); margin-top:4px; }
.ap-dialog .ap-dialog-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.ap-dialog .ap-dialog-actions button { font-size:12px; }
.ap-dialog .ap-error { color:var(--err); font-size:12px; margin-bottom:12px; }
@media(max-width:780px) { .assessment-plan .ap-selected-grid { grid-template-columns:minmax(0,1fr); } .assessment-plan .ap-heading { flex-direction:column; gap:12px; } .assessment-plan .ap-semester { grid-template-columns:auto auto; align-items:center; gap:9px; } }
@media(max-width:480px) { .assessment-plan .ap-panel { padding:14px; } .assessment-plan .ap-course { gap:8px; } .assessment-plan .ap-course>span:last-child { max-width:85px; text-align:right; } .ap-dialog .ap-dialog-head,.ap-dialog .ap-dialog-content { padding:16px; } }
