/* Module tuyensinh - Cổng tuyển sinh (NukeViet tự nạp theo module_file) */
.ts-main .ts-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.ts-quick-links .btn{margin:2px 0}
.ts-intro{margin-bottom:12px}
.ts-filter{margin-bottom:16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.ts-lv-tabs>li>a{padding:6px 12px}
.ts-unit-filter label{margin-right:6px}
.ts-group{margin-bottom:24px}
.ts-group-title{font-size:20px;border-left:4px solid #088040;padding-left:10px;margin:0 0 14px}
.ts-group-title .ts-more{font-size:13px;font-weight:normal;margin-left:8px}
.ts-card{border:1px solid #e3e3e3;border-radius:6px;background:#fff;margin-bottom:20px;display:flex;flex-direction:column;height:calc(100% - 20px);overflow:hidden;transition:box-shadow .2s}
.ts-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.1)}
.ts-card-image img{width:100%;height:160px;object-fit:cover;display:block}
.ts-card-body{padding:12px 14px;display:flex;flex-direction:column;flex:1}
.ts-card-meta{margin-bottom:6px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.ts-card-title{font-size:16px;margin:0 0 8px;line-height:1.35}
.ts-card-title a{color:#1a1a1a}
.ts-card-desc{color:#555;font-size:13px}
.ts-card-info{font-size:13px;color:#444;margin-bottom:8px}
.ts-card-info li{margin-bottom:3px}
.ts-card-actions{margin-top:auto;padding-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.ts-card-open{border-top:3px solid #088040}
.ts-card-upcoming{border-top:3px solid #1565C0}
.ts-card-closed{opacity:.8;border-top:3px solid #999}
/* Lưới thẻ (đợt tuyển sinh, khóa học): hàng flex - thẻ cùng hàng cao bằng nhau, thẻ sau xuống đúng hàng mới (trước: cột float bị kẹt, xô lệch - 17/10/2026) */
.ts-group>.row{display:flex;flex-wrap:wrap}
.ts-group>.row::before,.ts-group>.row::after{display:none}
.ts-group>.row>[class*="col-"]{float:none;display:flex}
.ts-group>.row>[class*="col-"]>.ts-card{flex:1 1 auto;width:100%;height:auto}
.ts-card-khoahoc .ts-card-body>.btn{margin-top:auto;align-self:flex-start}
.ts-countdown{background:#f3f8f4;border-radius:4px;padding:6px 8px;font-size:13px;margin-bottom:8px}
.ts-countdown-value{font-weight:bold;color:#c62828;font-variant-numeric:tabular-nums}
.ts-countdown.ts-countdown-ended .ts-countdown-value{color:#777}
.ts-state-open{color:#088040}.ts-state-upcoming{color:#1565C0}.ts-state-closed{color:#777}
.ts-dot-header{margin-bottom:12px}
.ts-dot-image img{max-width:100%;height:auto;border-radius:6px;margin-bottom:12px}
.ts-dot-info dt{text-align:left;width:150px}
.ts-dot-info dd{margin-left:170px;margin-bottom:8px}
@media (max-width:767px){.ts-dot-info dt{width:auto;float:none}.ts-dot-info dd{margin-left:0}}
.ts-dot-section{margin:18px 0}
.ts-dot-section h2{font-size:18px;border-bottom:2px solid #088040;padding-bottom:4px}
.ts-dot-actions{margin:20px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ts-faq .ts-content h3{font-size:15px;margin-top:12px}
.ts-form fieldset{border:1px solid #ddd;border-radius:6px;padding:12px 16px;margin-bottom:16px}
.ts-form legend{font-size:16px;font-weight:bold;width:auto;padding:0 8px;margin-bottom:8px;border:0;color:#088040}
.ts-form .help-block{font-size:12px}
.ts-done .ts-code{font-size:16px}
.ts-code-value{font-size:26px;letter-spacing:2px;color:#c62828;font-family:Consolas,Menlo,monospace}
.ts-result dl dt{width:140px;text-align:left}
.ts-result dl dd{margin-left:160px}
.ts-ghichu{white-space:pre-line}
.ts-status-guide .label{display:inline-block;margin:2px 0}
.ts-form-panel .form-group{margin-bottom:10px}
.ts-captcha img{vertical-align:middle}
/* Khối trang chủ (trình bày lại 23/10/2026): đầu khối như khối Công khai (biểu tượng + tên + số đợt, nút bên phải, không gạch chân);
   lưới thẻ cao bằng nhau, khung hạn nộp (luôn 2 dòng: hạn nộp / đếm ngược hoặc trạng thái) và nút luôn ở đáy thẻ. Màn rộng: lưới 6 cột, mỗi thẻ 2 cột (3 thẻ/hàng), hàng cuối tự giãn kín:
   còn 2 thẻ → mỗi thẻ nửa hàng (5 = 3 + 2); tổng 3n+1 → 4 thẻ cuối thành 2 hàng × 2 (4 = 2 + 2, 7 = 3 + 2 + 2); 1 thẻ → cả hàng.
   Màn vừa (576-991px): 2 thẻ/hàng, thẻ lẻ cuối cả hàng. Điện thoại: 1 thẻ/hàng. */
.ts-home-block{margin:0 0 8px}
.ts-home-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:14px}
.ts-home-title{margin:0}
.ts-home-title a{color:inherit}
.ts-home-title a:hover,.ts-home-title a:focus{color:#088040;text-decoration:none}
.ts-home-title small{font-size:60%;font-weight:normal}
.ts-home-links{display:flex;flex-wrap:wrap;gap:6px}
/* Điện thoại: nút Đăng ký cả hàng, 2 nút còn lại chia đôi hàng dưới */
@media (max-width:575px){.ts-home-links{width:100%}.ts-home-links .btn{flex:1 1 0}.ts-home-links .btn-success{flex-basis:100%}}
.ts-home-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.ts-home-grid>.ts-card{height:auto;margin:0}
.ts-hcard .ts-card-body{padding:14px 16px}
.ts-hcard .ts-card-image img{height:140px}
.ts-hcard .ts-card-title{line-height:1.4;margin:2px 0 12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ts-card-deadline{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:#f3f8f4;border-radius:4px;padding:8px 10px;font-size:13px;color:#444}
.ts-card-deadline .ts-countdown{background:none;padding:0;margin:0;font-size:inherit}
.ts-card-deadline .ts-countdown>.fa{color:#c62828}
.ts-card-state{font-weight:600}
.ts-card-state>.fa{font-size:8px;vertical-align:2px}
.ts-hcard .ts-card-actions{margin-top:0;padding-top:12px}
@media (min-width:576px) and (max-width:991px){
.ts-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ts-home-grid>.ts-hcard:last-child:nth-child(odd){grid-column:1/-1}
}
@media (min-width:992px){
.ts-home-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.ts-home-grid>.ts-hcard{grid-column:span 2}
.ts-home-grid>.ts-hcard:only-child{grid-column:1/-1}
.ts-home-grid>.ts-hcard:nth-last-child(2):nth-child(3n+1),.ts-home-grid>.ts-hcard:last-child:nth-child(3n+2),
.ts-home-grid>.ts-hcard:nth-last-child(4):nth-child(3n+1),.ts-home-grid>.ts-hcard:nth-last-child(3):nth-child(3n+2),
.ts-home-grid>.ts-hcard:nth-last-child(2):nth-child(3n+3),.ts-home-grid>.ts-hcard:last-child:nth-child(3n+4){grid-column:span 3}
}
.ts-home-subtitle{font-size:16px;margin:8px 0}
.ts-home-khoahoc-list li{padding:4px 0;border-bottom:1px dotted #ddd}
.ts-cta{position:fixed;bottom:84px;z-index:1030;background:#c62828;color:#fff;padding:10px 16px;border-radius:30px;box-shadow:0 4px 12px rgba(0,0,0,.25);font-weight:bold;text-decoration:none;display:flex;align-items:center;gap:8px;animation:ts-cta-pulse 2.5s infinite}
.ts-cta:hover,.ts-cta:focus{background:#a51f1f;color:#fff;text-decoration:none}
.ts-cta-right{right:16px}.ts-cta-left{left:16px}
.ts-cta-count{background:#fff;color:#c62828;border-radius:12px;padding:0 7px;font-size:12px;line-height:20px}
@keyframes ts-cta-pulse{0%{box-shadow:0 4px 12px rgba(198,40,40,.4)}50%{box-shadow:0 4px 22px rgba(198,40,40,.7)}100%{box-shadow:0 4px 12px rgba(198,40,40,.4)}}
@media (max-width:480px){.ts-cta-text{display:none}.ts-cta{padding:12px 14px}}
@media (prefers-reduced-motion:reduce){.ts-cta{animation:none}}
@media print{.ts-cta,.ts-quick-links,.ts-filter,.ts-dot-actions .btn{display:none!important}}
