@font-face{font-family:QLL;src:url('../fonts/NotoSans-LatinVietnamese.woff2') format('woff2');font-weight:100 900;font-display:swap}*{box-sizing:border-box}body{margin:0;background:#faf8f3;color:#17334b;font:14px/1.65 QLL,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid #c66a0a;border-radius:11px;background:linear-gradient(110deg,#c66a0a,#e99a2e);color:white;padding:10px 16px;font-weight:700}button:disabled{opacity:.6;cursor:wait}.secondary{background:white;color:#17334b;border-color:#dce3e9}a{color:#a85308}label{display:block;font-weight:600;margin:14px 0 6px}input,textarea,select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #dce3e9;border-radius:10px;background:#fff;color:#17334b}input[type=checkbox]{width:auto;margin:0}textarea{resize:vertical}h1,h2,h3{line-height:1.3;letter-spacing:-.025em}h2{font-size:21px}h3{font-size:17px}.hw-header{display:flex;align-items:center;justify-content:space-between;padding:16px max(20px,calc((100% - 1160px)/2));background:#fff;border-bottom:1px solid #e5e9ec;gap:12px}.hw-header a{text-decoration:none}main{max-width:1200px;margin:auto;padding:28px 20px 60px}.hw-hero{background:linear-gradient(120deg,#fff0d4,#fffaf1);padding:30px;border:1px solid #eadfcf;border-radius:22px}.hw-hero>span{color:#a85308;font-size:11px;font-weight:800;letter-spacing:.1em}.hw-hero h1{font-size:clamp(26px,4vw,38px);margin:10px 0}.hw-hero p{margin:0;color:#64748b}.panel{background:white;border:1px solid #e5e9ec;border-radius:18px;padding:24px;min-width:0}.hw-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;margin-top:20px}.list-head{display:flex;gap:10px;justify-content:space-between;align-items:center}.list-head h2{margin:0}.list-head button{font-size:11px;padding:7px}.assignment{display:block;width:100%;text-align:left;background:#fff;color:#17334b;border:1px solid #e5e9ec;margin-top:12px;padding:14px}.assignment.selected{background:#fff5e4;border-color:#e99a2e}.assignment small{display:block;color:#64748b;font-weight:400;margin-top:5px}.instructions,.answer-text,.feedback{white-space:pre-wrap;overflow-wrap:anywhere}.instructions{padding:16px;background:#f8fafc;border-radius:12px}.muted{color:#64748b;font-size:12px}.badge{display:inline-block;font-size:11px;padding:4px 9px;background:#fff1d7;color:#a85308;border-radius:99px}.badge.reviewed{background:#e9f8f0;color:#177b55}.badge.needs_revision{background:#fff1f1;color:#b43232}.submission{border-top:1px solid #e5e9ec;margin-top:24px;padding-top:20px}.feedback{background:#f1f7fc;padding:14px;border-radius:12px}.empty{color:#64748b;padding:30px 0;text-align:center}.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto;margin:12px 0}.student-grid label{display:flex;align-items:center;gap:8px;font-size:12px;border:1px solid #e5e9ec;border-radius:8px;padding:9px;margin:0;font-weight:400}.file-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid #e5e9ec;padding:10px;border-radius:10px;margin:8px 0;overflow-wrap:anywhere}.file-row span{flex:1;min-width:0}.file-row button{font-size:11px;padding:6px 10px}.media-view{max-width:100%;max-height:420px;display:block;margin-top:12px}.media-view audio,audio.media-view{width:100%}.recorder{padding:14px;background:#fffaf2;border:1px dashed #e9cda4;border-radius:12px;margin:14px 0}.recorder p{margin:8px 0;font-size:12px;color:#64748b}.recording{background:#b43232;border-color:#b43232}.review-form{padding:16px;background:#f8fafc;border-radius:12px;margin-top:14px}.review-form label{font-size:12px}.review-form input{max-width:140px}.review-form select{max-width:260px}#status{min-height:24px;color:#a85308;white-space:pre-wrap}#status.error{color:#b43232}#teacher-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}#create-panel{margin-top:18px}[hidden]{display:none!important}:focus-visible{outline:3px solid #e99a2e;outline-offset:3px}@media(max-width:760px){main{padding:16px 14px 40px}.hw-layout{grid-template-columns:1fr}.hw-hero,.panel{padding:20px}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hw-header{padding:14px}.hw-header .brand{font-size:18px!important}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.picker-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.practice-options{grid-template-columns:repeat(2,minmax(0,1fr));max-height:300px}.picker-actions{display:flex;gap:10px}.practice-start{display:inline-block;background:linear-gradient(110deg,#ffb32c,#ff850b);color:#17334b;padding:12px 20px;border-radius:12px;font-weight:700;text-decoration:none;margin-top:16px}.practice-score{background:#fff4df;color:#a85308;padding:14px;border-radius:12px;font-size:18px;font-weight:700}.progress-table{margin:20px 0;border:1px solid #eddbc5;border-radius:14px;padding:16px}.progress-student{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:12px 0;border-top:1px solid #eee}.progress-student progress{width:100%;accent-color:#f59a25}.progress-student small{color:#64748b}.practice-review{margin:12px 0}#homework-notifications{margin-top:16px;background:#fff8eb;border-color:#edcfa6}@media(max-width:600px){.practice-options{grid-template-columns:1fr}.progress-student{grid-template-columns:1fr}}

.progress-student progress{height:8px;border:0;border-radius:99px;overflow:hidden;appearance:none;background:#f0e9de}.progress-student progress::-webkit-progress-bar{background:#f0e9de;border-radius:99px}.progress-student progress::-webkit-progress-value{background:linear-gradient(110deg,#ffb32c,#ff850b);border-radius:99px}.progress-student progress::-moz-progress-bar{background:#f59a25;border-radius:99px}
