/* รอบ 84: มหาวิทยาลัย เฟส 4 — ผลการเรียน (ใบกรอกเกรด/อนุมัติ/ปิดภาค/ระบบเกรด/GPA ในแผงนักศึกษา)
   prefix ugr- · ใช้ตัวแปรสีของ app.css (รองรับโหมดมืด) · ใบกรอกใช้ .sgr-grid (school-grades.js: Enter = ลงคนถัดไป) · มือถือ ≤760px ไม่เลื่อนแนวนอน */

/* ---------- ป้ายสถานะ ---------- */
.uni-badge.ugs-none { background: var(--chip); color: var(--muted); }
.uni-badge.ugs-entering { background: var(--brand-soft); color: var(--ink); }
.uni-badge.ugs-submitted, .uni-badge.ugc-pending { background: var(--warn-soft); color: var(--ink); }
.uni-badge.ugs-approved { background: var(--brand-tint); color: var(--ink); }
.uni-badge.ugs-published, .uni-badge.ugc-approved, .uni-badge.ust-good { background: var(--ok-soft); color: var(--ok); }
.uni-badge.ugc-rejected { background: var(--chip); color: var(--muted); }
.uni-badge.ust-warning { background: var(--warn-soft); color: var(--ink); }
.uni-badge.ust-probation, .uni-badge.ust-dismissal { background: var(--danger-soft); color: var(--danger); }

/* ---------- GPA (แผงนักศึกษา / โต๊ะทะเบียน) ---------- */
.ugr-gpa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 10px; margin: 6px 0; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.ugr-gpa.compact { padding: 4px 8px; margin: 4px 0 0; }
.ugr-gpa-main { display: inline-flex; align-items: baseline; gap: 6px; }
.ugr-gpa-main strong { font-size: 1.25em; }
.ugr-gpa.compact .ugr-gpa-main strong { font-size: 1.05em; }
.ugr-gpa-sub { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.ugr-record h4 { margin: 0 0 4px; font-size: 1em; }
.ugr-rec-sum { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.ugr-rec-term { border-top: 1px solid var(--line); padding-top: 8px; }
.ugr-rec-table td { padding: 3px 6px; }
.ugr-rec-table tr.off td { color: var(--muted); }
.ugr-rec-name { width: 100%; overflow-wrap: anywhere; }
.ugr-rec-letter { white-space: nowrap; }
.ugr-rec-foot { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; margin: 4px 0 0; }
.ugr-tc-form .wide { grid-column: 1 / -1; }

/* ---------- ระบบเกรด ---------- */
.ugr-shead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ugr-sactions { margin-left: auto; display: inline-flex; gap: 6px; }
.ugr-scale { border-top: 1px solid var(--line); padding: 8px 0; }
.ugr-letters { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.ugr-letter { display: inline-flex; flex-direction: column; align-items: center; min-width: 44px; padding: 2px 6px; border-radius: var(--radius-sm); background: var(--chip); line-height: 1.25; }
.ugr-letter.k-letter { background: var(--ok-soft); }
.ugr-letter.k-fail, .ugr-letter.k-nopass { background: var(--danger-soft); }
.ugr-items input, .ugr-items select { width: 100%; min-width: 0; }
.ugr-in-letter { max-width: 64px; text-transform: uppercase; }

/* ---------- ใบกรอกเกรด ---------- */
.ugr-statusline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 8px; }
.ugr-statusline .ugr-mode { margin-left: auto; }
.ugr-return { margin-bottom: 8px; }
.ugr-grid th, .ugr-grid td { vertical-align: middle; }
.ugr-grid th small { font-weight: 400; }
.ugr-who { display: inline-block; min-width: 180px; max-width: 280px; overflow-wrap: anywhere; }
.ugr-cell { width: 64px; text-align: right; padding: 4px 6px; }
.ugr-cell.bad, .ugr-one-field input.bad { border-color: var(--danger); background: var(--danger-soft); }
.ugr-grid tr.ugr-dirty td:first-child { box-shadow: inset 3px 0 0 var(--brand); }
.ugr-grid tr.off td { color: var(--muted); }
.ugr-lt { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.ugr-lt-v { min-width: 26px; text-align: center; }
.ugr-lt-v.none { color: var(--muted); font-weight: 400; }
.ugr-lt-sel { width: auto; min-width: 64px; padding: 2px 4px; }
.ugr-lt-date { width: 140px; padding: 2px 4px; }
.ugr-one { max-width: 560px; }
.ugr-one-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.ugr-one-who { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; text-align: center; overflow-wrap: anywhere; }
.ugr-one-field input { font-size: 1.15em; padding: 8px 10px; }
.ugr-comp-row { display: grid; grid-template-columns: minmax(0, 1fr) 110px 110px auto; gap: 8px; align-items: end; }
.ugr-comp-row .field { margin: 0; }
.ugr-comp-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ---------- ปิดภาค ---------- */
.ugr-ready { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.ugr-ready-row { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.ugr-ready .actions { justify-content: flex-start; }
.ugr-counts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }

/* ---------- มือถือ (จุดเดียวกับทุกไฟล์: 760px) ---------- */
@media (max-width: 760px) {
  .ugr-who { min-width: 120px; max-width: 160px; }
  .ugr-cell { width: 56px; font-size: 16px; }
  .ugr-lt-sel, .ugr-lt-date { font-size: 16px; }
  .ugr-comp-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ugr-comp-row .field:first-child { grid-column: 1 / -1; }
  .ugr-sactions { margin-left: 0; }
  .ugr-statusline .ugr-mode { margin-left: 0; }
  .ugr-one { max-width: none; }
}
