:root { --brand: #1f3a8a; --brand-2: #e8eefc; }
body { font-family: 'Sarabun', 'Noto Sans Thai', 'Tahoma', sans-serif; font-size: 1rem; background: #f5f7fb; }
.app-nav { background: linear-gradient(90deg, #1f3a8a, #2b57c8); }
.card { border: 0; box-shadow: 0 1px 3px rgba(20, 30, 60, .08); }
.card-header { background: var(--brand-2); font-weight: 600; color: var(--brand); }
.form-label { font-weight: 500; margin-bottom: .2rem; }
.form-text { font-size: .82rem; }
textarea.form-control { min-height: 2.4rem; resize: vertical; overflow-y: hidden; }

/* ช่องข้อมูลจากระบบทะเบียน (readonly) */
#specForm .form-control[readonly], #specForm .form-select:disabled { background-color: #eceff4; color: #333; cursor: not-allowed; }
#specForm .form-control.clo-code[readonly] { cursor: default; }
#specForm .form-check-input:disabled ~ .form-check-label { opacity: .85; }

/* ช่องกรอกในตารางให้เต็มความกว้างเซลล์ */
.tbl-input .form-control, .tbl-input .form-select { width: 100%; }

/* หัวข้อของฟอร์ม */
.sec-title { font-weight: 600; color: var(--brand); margin: 1.5rem 0 .6rem; padding-bottom: .3rem; border-bottom: 2px solid var(--brand-2); }
.sec-title:first-child { margin-top: 0; }
.aun-tag { font-size: .75rem; background: #fff3cd; color: #7a5b00; padding: .1rem .45rem; border-radius: 999px; margin-left: .4rem; }

/* แท็บด้านข้าง */
.tab-side .nav-link { text-align: left; color: #333; border-radius: .5rem; padding: .6rem .9rem; }
.tab-side .nav-link small { display: block; color: #777; font-weight: 400; }
.tab-side .nav-link.active { background: var(--brand); color: #fff; }
.tab-side .nav-link.active small { color: #d5defa; }
@media (min-width: 992px) { .tab-side { position: sticky; top: 1rem; } }

/* ตารางกรอกข้อมูล */
.tbl-input th { background: #eef2fb; font-weight: 600; font-size: .9rem; vertical-align: middle; text-align: center; }
.tbl-input td { padding: .3rem; vertical-align: top; }
.tbl-input .form-control, .tbl-input .form-select { font-size: .92rem; }
.week-exam td { background: #fff8e1; }
.clo-item { border-left: 4px solid var(--brand); }
.sum-badge { font-size: .95rem; }
.sum-ok { color: #198754; font-weight: 600; }
.sum-bad { color: #dc3545; font-weight: 600; }

/* แถบบันทึกด้านล่าง */
.save-bar { position: sticky; bottom: 0; z-index: 20; background: #fff; border-top: 1px solid #dde3f0; padding: .6rem 1rem; box-shadow: 0 -2px 8px rgba(0,0,0,.06); }

/* เช็กลิสต์ */
.chk-item { display: flex; gap: .6rem; align-items: baseline; padding: .35rem 0; border-bottom: 1px dashed #e3e7f1; }
.chk-ico { width: 1.4rem; text-align: center; font-weight: 700; }
.chk-ok .chk-ico { color: #198754; } .chk-no .chk-ico { color: #dc3545; } .chk-warn .chk-ico { color: #e69500; }

/* login */
body.page-login { background: radial-gradient(1200px 600px at 50% -10%, #dfe8ff 0%, #f5f7fb 60%); min-height: 100vh; }
.login-wrap { max-width: 480px; margin: 5vh auto; }
.login-card { border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(31, 58, 138, .12); border-top: 5px solid #6cb33f; }
.login-brand { padding: 1.75rem 2rem 1rem; text-align: center; border-bottom: 1px solid #eef1f7; background: #fff; }
.login-logo { display: block; width: 100%; max-width: 360px; height: auto; margin: 0 auto; }
.login-uni { margin-top: .6rem; color: #6b7280; font-size: .95rem; }
.login-card .form-control-lg { font-size: 1.05rem; }

/* เลือกระบบ (อาจารย์ / ผู้บริหาร) */
.choose-wrap { max-width: 460px; margin: 6vh auto; }
.choose-card { border: 1px solid #a9c6ef; border-radius: 10px; overflow: hidden; }
.choose-card .card-header { background: linear-gradient(#eaf3ff, #c9defa); font-weight: 600; border-bottom: 1px solid #a9c6ef; }
.btn-choose { border: 1px solid #6cc3a0; border-radius: 12px; background: #f3f7f5; }
.btn-choose:hover { background: #e3f3eb; }
/* ผู้สอนหลายคนในกลุ่มเรียน */
.inst-list { font-size: .82rem; color: #555; }

/* dashboard */
.table td.term-head { --bs-table-bg: #e9ecef; font-weight: 600; }
.table td.track-head { --bs-table-bg: #f6f3d0; color: #7a2e0b; font-weight: 600; }

.dash-table .prog-line td { border-top: 0; padding-top: 0; color: #555; background: #fcfcf3; }
.dash-table .btn-group form:not(:last-child) .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; }

.copy-head { background: linear-gradient(#333, #111); }
#cpSections td, #cpResults td { font-size: .95rem; }
#cpResults tr.cp-picked td { background: #e8f0ff; }
#cpSections tr.cp-off td { color: #999; background: #fafafa; }

/* ---------- ตัวเลือกปีการศึกษา ◀ 2568 2569 2570 ▶ ---------- */
.year-nav-label { font-weight: 600; color: #b45309; }
.year-nav { display: inline-flex; align-items: center; gap: .35rem; }
.year-nav .yn-arrow { color: #1d4ed8; text-decoration: none; font-size: .9rem; padding: 0 .1rem; }
.year-nav .yn-arrow.disabled { color: #cbd5e1; cursor: default; }
.year-nav .yn-side { color: #1d4ed8; font-weight: 600; text-decoration: underline; }
.year-nav .yn-cur { font-size: 1.15rem; font-weight: 700; padding: 0 .25rem; }

/* หน้าต่างคัดลอก: เลื่อนเฉพาะเนื้อหา ปุ่มด้านล่างแสดงตลอด */
#copyModal .modal-body { overflow-y: auto; }
#copyModal .modal-footer { position: sticky; bottom: 0; background: #fff; }
