.page-heading{margin-bottom:20px}.page-heading h1{font-size:clamp(1.8rem,3vw,2.5rem);margin-bottom:8px}
.panel{padding:20px;margin-bottom:20px;min-width:0}.panel h2{font-size:1.1rem;margin:0 0 16px}.panel h3{font-size:1rem}
.options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:center}
.check{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.check input{flex-shrink:0}
.privacy-note,.muted,.guide{font-size:.88rem;line-height:1.7}.privacy-note{color:var(--muted)}
.semester-top,.action-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.semester-top h2{margin:0;flex:1}
.course{display:grid;grid-template-columns:minmax(100px,2fr) minmax(80px,1fr) minmax(85px,1fr) auto auto;gap:12px;align-items:end;padding:16px 0;border-top:1px solid var(--border)}
.field{min-width:0}.field input,.field select{width:100%;min-width:0;min-height:44px}.button{min-height:44px}.course .check{margin:0}
.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}.summary dt{color:var(--muted);font-size:.9rem}.summary dd{margin:8px 0;font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.results{border-top:3px solid #245bd6}
.mapping{display:flex;flex-wrap:wrap;gap:8px}.mapping span{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);font-variant-numeric:tabular-nums}
.status.error{color:var(--danger)}p,label,dt,h1,h2,button{overflow-wrap:anywhere}button,input,select{touch-action:manipulation}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #e9aa23;outline-offset:3px}
[dir=ltr]{unicode-bidi:isolate}.semester-result{font-variant-numeric:tabular-nums}
@media(max-width:760px){.course{grid-template-columns:repeat(2,minmax(0,1fr))}.course .field:first-child{grid-column:1/-1}.course button{grid-column:1/-1}.options-grid{grid-template-columns:1fr}}
@media(max-width:480px){.panel{padding:16px}.summary{grid-template-columns:1fr;gap:8px}.summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.summary dd{font-size:1.65rem}.action-row .button{width:100%}}
