label{display:block;font-weight:650;margin:.85rem 0}
input,select,textarea{display:block;width:100%;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);font:inherit;margin-top:.3rem}
input[type=checkbox],input[type=radio]{width:auto;display:inline-block;margin:0;accent-color:var(--primary)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}
.subjects{display:grid;gap:.75rem}
.subject{display:flex;align-items:center;gap:1rem;min-width:0;width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;padding:.85rem;background:var(--surface,#fff)}
.subject>span:nth-child(2){flex:1}
.subject-info{min-width:0}
.subject-info small,.subject small{display:block;color:var(--muted)}
.subject .level-select{max-width:200px}
.alevel-subject{display:grid;grid-template-columns:minmax(180px,.3fr) minmax(0,1fr);align-items:stretch;gap:1rem}
.alevel-subject .subject-info{align-self:center}
.level-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;width:100%;min-width:0;min-inline-size:0;box-sizing:border-box;margin:0;padding:0;border:0}
.level-choices legend{grid-column:1/-1;width:100%;font-size:.78rem;line-height:1.2;color:var(--muted);padding:0;margin:0}
.level-choice{display:flex;align-items:flex-start;gap:.5rem;min-width:0;height:100%;margin:0;padding:.7rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.level-choice:hover{border-color:var(--primary);background:#f5f9fd}
.level-choice:has(input:checked){border-color:var(--primary);background:#edf5fb;box-shadow:inset 0 0 0 1px var(--primary)}
.level-choice input{flex:0 0 auto;margin-top:.2rem}
.level-choice span{min-width:0;line-height:1.25}
.level-choice small{margin-top:.2rem;white-space:nowrap}
.check{display:flex;align-items:center;gap:.6rem}
.check input{width:auto}
.total{font-size:1.2rem;color:var(--primary)}
@media(max-width:760px){
    .grid{grid-template-columns:1fr}
    .subject{padding:.75rem;gap:.75rem}
    .alevel-subject{grid-template-columns:1fr;gap:.6rem}
    .alevel-subject .subject-info{align-self:auto}
    .level-choices{grid-template-columns:1fr;gap:.45rem}
    .level-choice{padding:.65rem .75rem}
    .subject .level-select{width:100%;max-width:none}
}
@media(min-width:761px) and (max-width:980px){
    .alevel-subject{grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);gap:.75rem}
    .level-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
    .level-choices legend{grid-column:1/-1}
}
