/* HV-HONOR-CARD-V2 — visual-only refinement for V100.5
   Logic/data/filter remain untouched. */
:root{
  --hv2-navy:#173A5E;
  --hv2-navy-deep:#0F3150;
  --hv2-champagne:#B58A52;
  --hv2-cream:#FAF8F3;
  --hv2-border:#DDE4E8;
  --hv2-soft:#F7F9FA;
  --hv2-muted:#687C8B;
}

/* Keep typography Vietnamese-safe and restrained. */
.hv105-modal,
.hv105-profile{
  font-family:"Segoe UI","Be Vietnam Pro",Arial,Helvetica,sans-serif;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.hv105-modal *,.hv105-profile *{font-synthesis:none}
.hv105-summary h3,
.hv105-sheet-title,
.hv105-honor-sheet h3,
.hv105-sheet-item-year{
  font-family:Cambria,Georgia,"Times New Roman",serif;
}

/* Profile card: more reading width, less admin-table feeling. */
.hv105-profile{
  grid-template-columns:minmax(300px,39%) minmax(0,61%)!important;
  border:1px solid var(--hv2-border)!important;
  background:#fff!important;
  box-shadow:0 14px 34px rgba(15,49,80,.055)!important;
}
.hv105-summary{
  background:linear-gradient(180deg,#fff 0%,#FCFDFD 100%)!important;
  border-right:1px solid var(--hv2-border)!important;
}
.hv105-summary h3{color:var(--hv2-navy-deep)!important;letter-spacing:-.018em!important}
.hv105-summary p{color:var(--hv2-muted)!important;line-height:1.58!important}
.hv105-list{background:#fff!important}
.hv105-awards{overflow:visible!important;max-height:none!important}
.hv105-row{
  grid-template-columns:58px 44px minmax(0,1fr) 88px!important;
  gap:12px!important;
  min-height:66px!important;
  padding:9px 5px!important;
}
.hv105-row-main b{
  font-size:14px!important;
  line-height:1.28!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  color:var(--hv2-navy-deep)!important;
}
.hv105-row-main .hv105-event,
.hv105-row-main .hv105-division{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.hv105-icon{width:40px!important;height:40px!important;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(15,49,80,.10))}
.hv105-badge{
  background:#fff!important;
  border:1px solid #C9B393!important;
  color:#765633!important;
  box-shadow:none!important;
  font-size:10px!important;
  letter-spacing:.035em!important;
  padding:6px 9px!important;
}
.hv105-badge.cert{border-color:#B9CBD8!important;color:#355B76!important}

/* Modal shell */
.hv105-modal{
  background:rgba(15,49,80,.62)!important;
  backdrop-filter:blur(2px);
  opacity:0;
  visibility:hidden;
  display:flex!important;
  pointer-events:none;
  transition:opacity .18s ease,visibility .18s ease;
}
.hv105-modal.is-open{opacity:1;visibility:visible;pointer-events:auto}
.hv105-modal-card{
  width:min(1040px,calc(100vw - 40px))!important;
  max-height:calc(100vh - 36px)!important;
  overflow:auto!important;
  border-radius:14px;
  transform:translateY(8px);
  transition:transform .18s ease;
}
.hv105-modal.is-open .hv105-modal-card{transform:translateY(0)}
.hv105-close{
  right:18px!important;top:18px!important;
  width:36px!important;height:36px!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid #C8D5DE!important;
  color:var(--hv2-navy-deep)!important;
  box-shadow:0 4px 14px rgba(15,49,80,.08)!important;
  font-family:"Segoe UI",Arial,sans-serif!important;
}

/* Academic Honor Sheet */
.hv105-honor-sheet{
  min-height:0!important;
  background:var(--hv2-cream)!important;
  border:2px solid var(--hv2-navy)!important;
  border-radius:12px!important;
  padding:40px 54px 32px!important;
  box-shadow:0 24px 70px rgba(8,28,46,.18)!important;
  text-align:center!important;
  isolation:isolate;
}
.hv105-honor-sheet:before{
  inset:9px!important;
  border:1px solid rgba(181,138,82,.82)!important;
  border-radius:7px!important;
}
.hv105-honor-sheet:after{
  right:-24px!important;
  bottom:-24px!important;
  width:340px!important;
  height:235px!important;
  opacity:.035!important;
  filter:grayscale(.25) saturate(.8)!important;
  background-position:74% center!important;
  z-index:-1!important;
}
.hv105-sheet-brand{
  color:var(--hv2-navy)!important;
  font-size:12px!important;
  letter-spacing:.12em!important;
  margin-bottom:10px!important;
}
.hv105-sheet-title{
  color:var(--hv2-navy-deep)!important;
  font-size:36px!important;
  line-height:1.08!important;
  letter-spacing:-.016em!important;
  margin:0!important;
}
.hv105-sheet-period{
  color:#8A653A!important;
  font-size:14px!important;
  margin:8px 0 16px!important;
}
.hv105-honor-sheet h3{
  color:var(--hv2-navy-deep)!important;
  font-size:clamp(36px,4.4vw,52px)!important;
  line-height:1.03!important;
  letter-spacing:-.022em!important;
  margin:0 0 8px!important;
  text-transform:none!important;
}
.hv105-sheet-count{
  color:var(--hv2-navy)!important;
  font-size:14px!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.hv105-sheet-note{
  color:var(--hv2-muted)!important;
  font-size:12.5px!important;
  line-height:1.52!important;
  max-width:680px!important;
  margin:4px auto 18px!important;
}
.hv105-sheet-items{
  max-width:820px!important;
  background:rgba(255,255,255,.74)!important;
  border:1px solid var(--hv2-border)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  margin:0 auto!important;
}
.hv105-sheet-item{
  grid-template-columns:72px 46px minmax(0,1fr) 94px!important;
  gap:12px!important;
  align-items:center!important;
  min-height:68px!important;
  padding:9px 14px!important;
  border-bottom:1px solid #E8EDF0!important;
  background:transparent!important;
  transition:background-color .18s ease;
}
.hv105-sheet-item:hover{background:#F8FAFB!important}
.hv105-sheet-item-year{
  color:#8A653A!important;
  font-size:18px!important;
  letter-spacing:-.01em!important;
}
.hv105-sheet-item img{
  width:42px!important;height:42px!important;
  object-fit:contain!important;
  filter:drop-shadow(0 2px 3px rgba(15,49,80,.12));
}
.hv105-sheet-item-main{min-width:0!important}
.hv105-sheet-item-main b{
  color:var(--hv2-navy-deep)!important;
  font-size:13.5px!important;
  line-height:1.3!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  text-transform:none!important;
}
.hv105-sheet-item-main span{
  color:var(--hv2-muted)!important;
  font-size:12px!important;
  line-height:1.35!important;
  white-space:normal!important;
}
.hv105-sheet-more{color:#627786!important;font-size:12px!important;padding:10px 14px!important;background:#FBFCFC!important}
.hv105-sheet-foot{
  margin-top:17px!important;
  color:#687C8B!important;
  font-size:13px!important;
}
.hv105-modal-actions{padding:10px 0 0!important}

@media(max-width:1024px){
  .hv105-profile{grid-template-columns:minmax(280px,40%) minmax(0,60%)!important}
  .hv105-row{grid-template-columns:52px 40px minmax(0,1fr) 84px!important;gap:10px!important}
  .hv105-honor-sheet{padding:36px 38px 28px!important}
  .hv105-sheet-item{grid-template-columns:64px 42px minmax(0,1fr) 90px!important}
}
@media(max-width:768px){
  .hv105-profile{grid-template-columns:1fr!important}
  .hv105-summary{border-right:0!important;border-bottom:1px solid var(--hv2-border)!important}
  .hv105-modal{padding:12px!important}
  .hv105-modal-card{width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px)!important}
  .hv105-honor-sheet{padding:36px 24px 24px!important}
  .hv105-sheet-title{font-size:31px!important}
  .hv105-honor-sheet h3{font-size:36px!important}
  .hv105-sheet-item{grid-template-columns:56px 38px minmax(0,1fr)!important;gap:9px!important;padding:10px 10px!important}
  .hv105-sheet-item .hv105-badge{grid-column:3!important;justify-self:start!important;margin-top:2px!important}
  .hv105-sheet-item-year{align-self:start;padding-top:7px}
}
@media(max-width:430px){
  .hv105-modal{padding:6px!important}
  .hv105-modal-card{width:calc(100vw - 12px)!important;max-height:calc(100vh - 12px)!important;border-radius:10px!important}
  .hv105-honor-sheet{padding:34px 16px 20px!important;border-radius:9px!important}
  .hv105-honor-sheet:before{inset:6px!important}
  .hv105-close{right:10px!important;top:10px!important;width:34px!important;height:34px!important}
  .hv105-sheet-brand{font-size:10.5px!important;letter-spacing:.08em!important}
  .hv105-sheet-title{font-size:27px!important}
  .hv105-honor-sheet h3{font-size:31px!important}
  .hv105-sheet-note{font-size:11.5px!important;margin-bottom:14px!important}
  .hv105-sheet-item{grid-template-columns:48px 34px minmax(0,1fr)!important;min-height:64px!important;padding:9px 8px!important}
  .hv105-sheet-item img{width:34px!important;height:34px!important}
  .hv105-sheet-item-year{font-size:15px!important}
  .hv105-sheet-item-main b{font-size:12.5px!important}
  .hv105-sheet-item-main span{font-size:11px!important}
  .hv105-badge{font-size:9px!important;padding:5px 7px!important}
  .hv105-sheet-foot{font-size:11.5px!important}
}
@media(max-width:390px){
  .hv105-honor-sheet{padding-inline:13px!important}
  .hv105-sheet-item{grid-template-columns:44px 32px minmax(0,1fr)!important;gap:7px!important}
  .hv105-sheet-title{font-size:25px!important}
  .hv105-honor-sheet h3{font-size:29px!important}
}

@media(prefers-reduced-motion:reduce){
  .hv105-modal,.hv105-modal-card,.hv105-sheet-item{transition:none!important}
}

@media print{
  .hv105-honor-sheet{background:#fff!important;box-shadow:none!important}
  .hv105-honor-sheet:after{opacity:.025!important}
}
