* { box-sizing: border-box; }
body { width: 540px; max-width: 100%; margin: 0; padding: 18px; font: 14px/1.5 'Microsoft YaHei',sans-serif; color: #192d29; background: #f6f8f7; }
header { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
h1 { font-size: 18px; margin: 0; }
p { overflow-wrap: anywhere; }
button,select,input,textarea { font: inherit; border: 1px solid #c4d2cd; border-radius: 5px; padding: 8px; min-width: 0; background: white; }
button { cursor: pointer; }
button:disabled { opacity: .5; cursor: not-allowed; }
.primary { background: #0f766e; color: white; border-color: #0f766e; }
label { display: grid; gap: 5px; margin: 10px 0; }
input,select,textarea { width: 100%; }
input[type=checkbox] { width: auto; }
summary { cursor: pointer; padding: 10px 0; }
#error { color: #a52218; }
#courseRows { max-height: 350px; overflow: auto; margin: 14px 0; }
.course-row { border-bottom: 1px solid #c4d2cd; padding: 12px 0; }
.course-group { border-top: 2px solid #879a94; padding: 10px 0 18px; }
.course-group > label { font-weight: 600; }
.course-group .course-row:last-child { border-bottom: 0; }
.course-row.invalid { border-left: 3px solid #b42318; padding-left: 8px; }
.fields { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.secondary { color: #5c7069; font-size: 12px; }
[hidden] { display: none !important; }
.bell-row { display: grid; grid-template-columns: 60px minmax(0,1fr) minmax(0,1fr); gap: 8px; align-items: center; }
.bell-row strong { font-size: 13px; }
#bellStatus { color: #8b4312; }
.unresolved { border-color:#ad650d; background:#fff8ec; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; font-family:inherit; font-size:12px; line-height:1.5; }
#missingWeeksLabel,#warningLabel { display:flex; align-items:flex-start; gap:8px; }
#missingWeeksLabel input,#warningLabel input { flex:none; margin-top:4px; }
@media(max-width:420px) { .fields { grid-template-columns: 1fr; } header { flex-wrap: wrap; } }
.identity-status { font-size: 12px; color: #6a5966; line-height: 1.5; margin: 8px 0; }
.version { color: #667780; font-size: 11px; }
.week-summary { color:#205a4c; font-size:12px; margin:6px 0; line-height:1.6; }
.review-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; border-bottom:1px solid #c4d2cd; }
.review-toolbar label { display:flex; align-items:center; gap:8px; }
