.qrw-grid { display:grid; gap:16px; max-width:1120px; margin:auto; min-width:0; }
.qrw-controls, .qrw-output, .qrw-options, #qrwProgress { display:grid; gap:12px; min-width:0; }
.qrw-controls, .qrw-period, .qrw-options { padding:16px; border:1px solid #dce7df; border-radius:14px; background:#f5f8f5; }
.qrw-controls > label, .qrw-dates label { display:grid; gap:6px; }
.qrw-grid input:not([type="checkbox"]):not([type="radio"]), .qrw-grid select { min-width:0; max-width:100%; box-sizing:border-box; padding:9px; }
.qrw-period { display:flex; flex-wrap:wrap; gap:14px; margin:0; min-width:0; }
.qrw-period > label { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.qrw-grid input[type="checkbox"], .qrw-grid input[type="radio"] { width:18px; min-width:18px; height:18px; margin:0; flex:0 0 18px; }
.qrw-dates { display:grid; grid-template-columns:1fr 1fr; gap:12px; width:100%; }
.qrw-roster { max-height:420px; overflow:auto; display:grid; gap:8px; }
.qrw-student { display:flex; align-items:center; gap:12px; padding:12px; background:white; border:1px solid #dce7df; border-radius:10px; }
.qrw-student > span { flex:1; min-width:0; display:grid; gap:5px; overflow-wrap:anywhere; }
.qrw-student > span > span { font-size:13px; color:#46564d; }
.qrw-student:has(input:checked) { border-color:#2c7452; background:#edf7ef; }
.qrw-summary, .qrw-volume { display:grid; gap:10px; padding:16px; border:1px solid #dce7df; border-radius:12px; background:#fff; overflow-wrap:anywhere; }
.qrw-summary { background:#f5f8f5; margin-bottom:14px; }
.qrw-grid p { margin:0; }
.qrw-grid summary, .qrw-grid button, .qrw-download { cursor:pointer; }
.qrw-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.qrw-grid button, .qrw-download { min-height:42px; padding:8px 12px; font:inherit; border:1px solid #b7c9bd; border-radius:8px; }
.qrw-download { display:inline-flex; align-items:center; box-sizing:border-box; background:#e8f3ec; color:#164a31; text-decoration:none; }
.qrw-excluded { display:grid; gap:8px; padding:12px 0; }
.qrw-excluded label { display:grid; grid-template-columns:1fr 1fr; gap:8px; align-items:center; }
#qrwHeartbeat { background:#edf4ee; padding:12px; border-radius:10px; }
@media (max-width:600px) { .qrw-student { flex-wrap:wrap; } .qrw-student > span { flex-basis:calc(100% - 40px); } .qrw-student > button { margin-left:30px; } .qrw-excluded label { grid-template-columns:1fr; } }
@media (max-width:420px) { .qrw-dates { grid-template-columns:1fr; } .qrw-controls, .qrw-period, .qrw-options, .qrw-summary { padding:12px; } }
