body {
  background: #f4f6fb;
  font-family: 'Segoe UI', Arial, sans-serif;
}
#prm-voting-app, #prm-voting-candidates-list, #prm-voting-highlight, #prm-voting-search, #prm-voting-top7-nam, #prm-voting-top7-nu {
  max-width: 1200px;
  margin: 0 auto;
  background: transparent;
  border-radius: 12px;
  box-shadow: 0 4px 32px #0002;
  padding: 15px;
}
.prm-highlight {
  margin-bottom: 24px;
}
.prm-highlight .card {
  border: 2px solid #ffb300;
  background: linear-gradient(135deg, #fffde7 60%, #ffe082 100%);
}
.prm-highlight .card-header {
  background: linear-gradient(90deg, #ffe082 60%, #ffd54f 100%);
  font-size: 1.2em;
  border-bottom: 1px solid #ffb300;
}
.prm-candidate-card, .prm-top-card {
  border-radius: 12px;
  box-shadow: 0 2px 12px #2196f344;
  background: #f8fafc;
  border: 1.5px solid #e3e8ee;
  transition: box-shadow 0.2s, transform 0.2s;
}
.prm-candidate-card:hover, .prm-top-card:hover {
  box-shadow: 0 8px 32px #2196f3aa;
  transform: translateY(-6px) scale(1.04);
  border-color: #2196f3;
}
.prm-candidate-card img, .prm-top-card img {
  border-radius: 16px;
  box-shadow: 0 2px 8px #0001;
  border: none !important;
  min-height: 490px;
}
.prm-candidate-card .fw-bold a, .prm-top-card .fw-bold a {
  color: #1976d2;
  text-decoration: none;
  transition: color 0.2s;
}
.prm-candidate-card .fw-bold a:hover, .prm-top-card .fw-bold a:hover {
  color: #e91e63;
}
.btn, .btn-success, .btn-primary, .btn-outline-primary {
  border-radius: 6px;
  font-weight: 500;
  box-shadow: 0 2px 8px #2196f322;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.btn-success {
  background: linear-gradient(90deg, #fff 60%, #fff 100%);
  border: none;
}
.prm-voting-admin .btn-success{
  background: #198754;
}
.btn-success:hover {
  background: linear-gradient(90deg, #388e3c 60%, #43a047 100%);
  color: #fff;
}
.btn-primary {
  background: linear-gradient(90deg, #1976d2 60%, #42a5f5 100%);
  border: none;
}
.btn-primary:hover {
  background: linear-gradient(90deg, #1565c0 60%, #1976d2 100%);
  color: #fff;
}
.btn-outline-primary {
  border: 1.5px solid #1976d2;
  color: #1976d2;
  background: #fff;
}
.btn-outline-primary:hover {
  background: #1976d2;
  color: #fff;
}
.badge.bg-pink, .bg-pink {
  background: #e91e63!important;
  color: #fff!important;
}
.badge.bg-primary, .bg-primary {
  background: #1976d2!important;
  color: #fff!important;
}
.badge.bg-warning, .bg-warning {
  background: #ffe082!important;
  color: #b28704!important;
}
.badge.bg-success, .bg-success {
  background: #43a047 !important;
  color: #fff !important;
}
.badge.bg-secondary, .bg-secondary {
  display: none;
  background: #90a4ae !important;
  color: #fff !important;
}
.prm-rank-badge {
  background: transparent;
}
.prm-rank-badge span {
  position: relative !important;
  z-index: 1 !important;
  color: #e4e4e4 !important;
  font-size: 22px;
  font-weight: bold !important;
  line-height: 72px !important;
  display: inline-block !important;
  width: 72px !important;
  text-align: center !important;
}
.prm-candidate-card .prm-rank-badge img{
  top: 3px !important;
  width: 72px !important;
  height: 72px !important;
  max-width: 72px;
  min-height: auto !important;
  box-shadow: none;
}
.prm-list h2, .prm-top7 .card-header, .prm-highlight .card-header {
  font-weight: 700;
  letter-spacing: 0.5px;
}
.prm-list .card-title { font-size: 1.1em; }
.prm-list .row.g-3 { margin-bottom: 0; }
.prm-list .card { margin-bottom: 0; }
.prm-list .btn { margin-top: 0.5em; }
.prm-list .text-center.mt-3 { margin-top: 1.5em!important; }
.prm-search input { padding: 8px 12px; border-radius: 5px; border: 1.5px solid #b0bec5;height: 40px;line-height: normal;margin-bottom: 0;margin-right: 0;}
.prm-search button { padding: 8px 20px; border-radius: 5px; background: #1976d2; color: #fff; border: none; cursor: pointer !important; font-weight: 500;margin-bottom: 0;
  margin-right: 0; }
.prm-search button:hover { background: #1565c0; }
.prm-search-result { background: #e3f2fd; border: 1.5px solid #90caf9; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.prm-share a { margin: 0 4px; color: #1976d2; text-decoration: underline; font-weight: 500; }
.prm-share a:hover { color: #e91e63; }
.prm-chart { margin: 32px 0; background: #f8fafc; border-radius: 12px; box-shadow: 0 2px 12px #2196f322; }
.prm-chart .card-header { background: linear-gradient(90deg, #42a5f5 60%, #1976d2 100%); color: #fff; font-weight: 600; }
/* Modal chi tiết thí sinh */
#prmDetailModal .modal-content {
  border-radius: 14px;
  box-shadow: 0 8px 48px #1976d244;
  border: 2px solid #1976d2;
}
#prmDetailModal .modal-header {
  background: linear-gradient(90deg, #1976d2 60%, #42a5f5 100%);
  color: #fff;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  border-bottom: 1.5px solid #1976d2;
}
#prmDetailModal .modal-title {
  font-weight: 700;
  font-size: 1.3em;
  letter-spacing: 0.5px;
}
#prmDetailModal .modal-body {
  background: #f8fafc;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
}
#prmDetailModal img {
  border-radius: 12px;
  box-shadow: 0 2px 12px #0002;
  border: 2px solid #1976d2;
}
#prmDetailModal .btn-success {
  margin-top: 1em;
  font-size: 1.1em;
  padding: 10px 0;
}
#prmDetailModal .col-md-7 > div { font-size: 1.08em; }
#prmDetailModal .col-md-7 > div.fs-5 { font-size: 1.25em; font-weight: 600; }
#prmDetailModal .col-md-7 > div.fw-bold { font-size: 1.1em; }
#prmDetailModal .col-md-7 > div.mt-3 { margin-top: 1.5em!important; }
/* Global modal styling */
#prmDetailModalGlobal .modal-content {
  background-color: #000000b5;
  border-radius: 14px;
  box-shadow: 0 8px 48px #1976d244;
  border: 2px solid #b5b1b1;
}
#prmDetailModalGlobal .modal-header {
  background: linear-gradient(90deg, #a98a53 60%, #fff 100%);
  color: #fff;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  border-bottom: 1.5px solid #1976d2;
  padding: 10px;
}
#prmDetailModalGlobal .modal-title {
  color: #fff !important;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: capitalize;
}
#prmDetailModalGlobal .modal-body {
  background: transparent;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  padding: 15px 0;
}
#prmDetailModalGlobal img {
  border-radius: 12px !important;
  box-shadow: none !important;
  border: none !important;
}
#prmDetailModalGlobal .btn-success {
  background: #a98a53;
  font-size: 18px;
  border: none;
  border-radius: 30px;
  max-width: 320px;
  padding: 5px 0;
  margin: 15px auto 0 auto;
}
#prmDetailModalGlobal .btn-success:hover {
  background: #032f62;
}
#prmDetailModalGlobal .col-md-7 > div,
#prmDetailModalGlobal .col-md-7 > div > div{
  color: #fff !important;
  font-size: 18px;
  line-height: 1.5;
}
#prmDetailModalGlobal .col-md-7 > div.fs-5 { font-size: 1.25em; font-weight: 600; }
#prmDetailModalGlobal .col-md-7 > div.fw-bold {
  color: #fff !important;
  font-size: 18px;
}
#prmDetailModalGlobal .col-md-7 > div.mt-3 {
  margin-top: 5px !important;
}
/* Top 3 layout */
.prm-top3-row { --gap: 16px; }
.prm-top3-first { order: 2; }
.prm-top3-other:first-child { order: 1; }
.prm-top3-other:last-child { order: 3; }
.prm-top-card-first {
  border: 2px solid #43a047;
  background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
  transform: translateY(-6px);
}
.prm-top-card-first .fw-bold a { font-weight: 700; }
.prm-top-card-first .prm-rank-badge { box-shadow: 0 4px 16px #43a04755; }
.prm-top3-col { transition: transform 0.2s; }
.prm-top3-col:hover { transform: translateY(-6px); }
/* custom */
h2.prm-candidates-list-title {
  text-align: center;
  text-transform: uppercase;
}
#prm-voting-search .alert-success, #prm-voting-search .prm-no-results{
  background-color: transparent;
  font-size: 17px;
  color: #fff;
  border: none;
  padding: 10px;
}
#prm-voting-search .alert-success{
  text-align: left !important;
}
#prm-voting-search .prm-no-results{
  text-align: center !important;
}
#prm-voting-search .prm-top-card,
#prm-voting-search .card {
  padding: 16px;
  background-color: hsla(0, 0%, 87%, .15);
  border: 1px solid;
  border-color: hsla(0, 0%, 100%, 0) !important;
  border-radius: 24px;
}
#prm-voting-search .card:hover{
  background-color: #dedede33;
}
#prm-voting-search .card .card-body .row {
  background-color: hsla(0, 0%, 100%, .07);
  border-radius: 12px;
  padding: 5px 0 5px 0;
}
#prm-voting-search .card .card-body .row.align-items-center{
  background-color: transparent;
  align-items: flex-end !important;
}
#prm-voting-search .card .card-body .row .col-6.text-start.small,
#prm-voting-search .card .card-body .row .col-6.text-end.small,
#prm-voting-search .card .card-body .text-start a{
  color: #fff;
  font-size: 18px;
}
#prm-voting-search .card .card-body .fw-bold.text-start{
  padding-top: 10px;
}
#prm-voting-search .card .card-body .text-start a{
  font-size: 21px;
  text-transform: capitalize;
}
#prm-voting-search .card .card-body .row .col-6.text-start.small {
  border-right: 1px solid #94949e;
}
#prm-voting-search button.btn-success.w-100 {
  color: #4294d2;
  font-size: 16px;
  text-transform: capitalize;
  font-weight: 600;
  line-height: normal;
  border-radius: 16px;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 0;
}
#prm-voting-search button.btn-success.w-100:hover {
  color: #fff;
  background-color: #a98a53;
  background: linear-gradient(90deg, #a98a53 100%, #a98a53 100%);
}
#prmDetailModalGlobal .prm-rank-badge span{
  color: #4190cc !important;
}
#prmDetailModalGlobal .prm-detail-fullname {
  font-size: 28px !important;
  text-transform: capitalize;
  font-weight: bold;
}
#prmDetailModalGlobal .col-md-7 > div > div {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: space-between;
}
#prmDetailModalGlobal .col-md-7 > div > div a{
  margin-bottom: 15px;
}
#prmDetailModalGlobal .col-md-7 > div > div button {
  color: #fff;
  font-size: 14px;
  text-transform: capitalize;
  margin-bottom: 0;
}
.prm-detail-score {
  color: #4294d2;
  font-size: 32px;
  font-weight: bold;
}
#prmDetailModalGlobal .col-md-7 > div.align-items-center {
  background-color: #ffffff12;
  padding: 10px;
  border-radius: 15px;
}
/* top 35 */
.prm-voting-top35 .prm-top35-candidates-row {
  align-items: flex-end;
}
.prm-voting-top35 .prm-top35-card{
  background-color: transparent;
  box-shadow: none !important;
  border: none !important;
}
.prm-voting-top35 .prm-top35-header {
  background: linear-gradient(to right, #fff 0%, #c4c4ba6b 0%, #f1e1c44d 100%) !important;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  font-size: 46px;
  text-transform: uppercase;
  font-weight: bold;
  border-radius: 15px !important;
  border-bottom: none;
}
.prm-top35-body{
  padding: 10px !important;
}
/* top 35 */
/* top 3 */
.prm-voting-top3 .prm-top3-candidates-row {
  align-items: flex-end;
}
.prm-voting-top3 .prm-top3-card{
  background-color: transparent;
  box-shadow: none !important;
  border: none !important;
}
.prm-voting-top3 .prm-top3-header, .prm-voting-top3-custom .prm-top3-header {
  background: linear-gradient(to right, #fff 0%, #c4c4ba6b 0%, #f1e1c44d 100%) !important;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  font-size: 46px;
  text-transform: uppercase;
  font-weight: bold;
  border-radius: 15px !important;
  border-bottom: none;
}
.row-title-dai-su-cet{
  background-image: url("https://daisu2025.cet.edu.vn/wp-content/uploads/2025/09/top-3-thi-sinh-bg.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 20px;
}
.title-dai-su-cet-img p{
  text-align: center;
  margin: 0 auto;
}
.title-dai-su-cet-img img {
  max-width: 430px;
}
.prm-top3-body{
  padding: 10px !important;
}
/* hạng 1 */
.prm-voting-top3 .prm-top1-highlight img.prm-rank-icon {
  max-width: 100px !important;
  width: 100px !important;
  height: 100px !important;
  top: -10px !important;
  left: -13px !important;
}
/* hạng 1 */
/* top 3 */
/* top 3 custom */
.prm-voting-top3-custom .prm-top3-header {
  text-transform: inherit;
}
.prm-top3-custom-modal .modal-body .prm-rank-badge,
.prm-top3-custom-modal .modal-body .prm-detail-score-container,
.prm-top3-custom-modal .modal-body .prm-detail-exam-container,
.prm-top3-custom-modal .modal-body .prm-detail-info-container,
.prm-top3-custom-modal .prm-detail-vote-btn{
  display: none !important;
}
.prm-top3-custom-modal .modal-body .prm-detail-birthday-container{
  display: block !important;
}
.text-no-top3{
  color: #fff;
  font-size: 18px;
  line-height: 1.5;
}
/* top 3 custom */
/* chung */
.card {
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
.prm-candidate-card,
.prm-candidate-card.border-success{
  padding: 16px;
  background-color: hsla(0, 0%, 87%, .15) !important;
  border: 1px solid hsla(0, 0%, 100%, 0) !important;
  border-radius: 24px !important;
  transition: all 0.3s ease;
}
.prm-candidate-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(40,167,69,0.3);
}
.prm-candidate-header-row {
  background-color: hsla(0, 0%, 100%, .07);
  border-radius: 12px;
  padding: 5px 0 5px 0;
}
.prm-exam-number, .prm-total-score-value, .prm-total-score {
  color: #fff !important;
  font-size: 18px !important;
}
.prm-exam-number{
  border-right: 1px solid #94949e;
}
.prm-candidate-name {
  padding: 30px 0 0;
}
.prm-candidate-name-link {
  color: #fff !important;
  font-size: 21px;
  text-transform: capitalize;
}
.prm-candidate-name-link:hover{
  color: #f9ff00 !important;
}
.prm-candidate-actions, .align-items-center.prm-candidate-actions {
  background-color: transparent;
  align-items: flex-end !important;
  border-radius: 12px;
  padding: 5px 0 5px 0;
  margin-top: 0 !important;
}
.prm-vote-button {
  background: linear-gradient(90deg, #fff 60%, #fff 100%);
  color: #4294d2 !important;
  font-size: 16px !important;
  text-transform: capitalize;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  box-shadow: 0 2px 8px #2196f322;
  border-radius: 16px !important;
  border: none !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
}
.prm-vote-button:hover {
  color: #fff !important;
  background-color: #a98a53;
  background: linear-gradient(90deg, #a98a53 100%, #a98a53 100%);
}
.prm-rank-container img.prm-rank-icon{
  max-width: 72px !important;
  box-shadow: none !important;
}
.prm-show-more-container .prm-show-more-button {
  background-color: #a98a53 !important;
  color: #fff !important;
  border: 1px solid #a98a53 !important;
  font-weight: 600;
  line-height: normal;
  border-radius: 30px;
  padding: 15px 25px;
  margin: 0;
}
.prm-show-more-container .prm-show-more-button:hover {
  background-color: #4294d2 !important;
  border: none !important;
}
.col-12.prm-filter-col {
  text-align: center;
}
.prm-filter-btn {
  flex: inherit !important;
  color: #fff !important;
  border: 1px solid #fff !important;
  margin-bottom: 10px;
}
.prm-candidates-list-title .prm-candidates-count {
  background: #0069db !important;
  display: inline-block;
  color: #fff !important;
  width: 100px;
  height: 55px;
  line-height: 55px;
  text-align: center;
  border-radius: 100%;
  padding: 0;
}
.prm-reset-container {
  margin: 20px 0 0;
}
.prm-reset-container .prm-reset-button {
  color: #4294db;
  background-color: #fff;
  border: none;
  border-radius: 20px;
  padding: 5px 20px;
}
.prm-search-container .input-group.prm-search{
  margin: 0 !important;
}
.prm-search-button {
  color: #fff !important;
}
.prm-voting-search .prm-search-container{
  margin-bottom: 0 !important;
}
/* chung */
.prm-candidate-image-container, #prmDetailModalGlobal .prm-detail-watermask {
  position: relative;
}
.prm-candidate-image-container::after, #prmDetailModalGlobal .prm-detail-watermask::after {
  content: "";
  position: absolute;
  left: 5px;
  bottom: 10px;
  width: 110px;
  height: 110px;
  background-image: url(https://daisu2026.cet.edu.vn/wp-content/uploads/2026/10/watermask-cet.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  z-index: 10;
  pointer-events: none;
}
.section-top-3-daisu .prm-candidate-image-container::after{
  left: 17px;
}
#prmDetailModalGlobal .prm-detail-watermask::after{
  left: 15px;
}
.prm-detail-birthday-container {
  display: none !important;
}
/* custom */
@media (max-width: 850px){
  .prm-filter-container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-content: center;
    justify-content: center;
    align-items: center;
    flex-direction: column !important;
    gap: 10px;
  }
  .prm-filter-col {
    width: 100% !important;
  }
  .btn-group.prm-filter-buttons {
    display: flex;
  }
  .prm-search-col {
    width: 60% !important;
  }
  #prmDetailModalGlobal .btn-success {
    font-size: 17px;
    border-radius: 30px;
    max-width: 310px;
  }
}
@media (max-width: 820px){
  .prm-candidate-name-link{
    font-size: 20px;
  }
}
@media (max-width: 768px){
  .prm-vote-button{
    font-size: 15px !important;
  }
}
@media (max-width: 767px) {
  .prm-candidate-card img, .prm-top-card img{
    min-height: auto;
  }
  .prm-candidate-image-container img{
    width: 100% !important;
  }
  .prm-voting-top3 .prm-top3-candidates-row {
    flex-direction: column;
  }
  .prm-voting-top3 .prm-top3-col-1{
    order: 2;
  }
  .prm-voting-top3 .prm-top3-col-2{
    order: 1;
  }
  .prm-voting-top3 .prm-top3-col-3{
    order: 3;
  }
  .prm-voting-top3 .prm-top1-highlight img.prm-rank-icon {
    max-width: 72px !important;
    width: 72px !important;
    height: 72px !important;
    top: 3px !important;
    left: 0 !important;
  }
  .prm-rank-badge {
    margin-top: 20px;
  }
  .prm-search-col {
    width: 100% !important;
  }
}
@media (max-width: 700px) {
  #prm-voting-app, #prm-voting-candidates-list, #prm-voting-highlight, #prm-voting-search, #prm-voting-top7-nam, #prm-voting-top7-nu {
    padding: 6px;
  }
  #prmDetailModal .modal-dialog { max-width: 98vw; }
  #prmDetailModal img { width: 100px!important; height: 150px!important; }
}
@media (max-width: 576px) {
  .prm-top3-first { order: 1; }
}
@media (max-width: 499px) {
  h1 {
    font-size: 55px !important;
  }
  .prm-voting-top3 .prm-top3-header,
  .prm-voting-top3-custom .prm-top3-header{
    font-size: 35px !important;
  }
  .title-dai-su-cet-img img {
    max-width: 100% !important;
  }
  .prm-candidate-name {
    padding: 15px 0 0;
  }
  .prm-candidate-name-link {
    font-size: 21px;
  }
  .prm-rank-badge {
    margin-top: 0;
  }
  #prmDetailModalGlobal .prm-rank-badge{
    margin-top: 10px;
  }
  #prmDetailModalGlobal .prm-detail-fullname {
    font-size: 21px !important;
  }
  #prmDetailModalGlobal .col-md-7 > div, #prmDetailModalGlobal .col-md-7 > div > div{
    font-size: 16px;
  }
}
@media (max-width: 414px) {

}
@media (max-width: 390px) {
  h2, .styleCET h2 {
    font-size: 32px !important;
  }
  .prm-candidate-name-link {
    font-size: 20px;
  }
}
@media (max-width: 375px) {
  .prm-voting-top3 .prm-top3-header{
    font-size: 30px !important;
  }
}
@media (max-width: 360px){
  .prm-candidate-name-link {
    font-size: 19px;
  }
}