@charset "utf-8";
/* =====================================================================
 * 경북보건대학교 모바일 앱 공통 테마
 *  - 기존 CSS(base/skin/button/...) 뒤에 로드되어 화면 전체 톤을 통일한다.
 *  - 색 : 캠퍼스 네이비(헤더·제목) + 보건 청록(주요 동작) 2색 체계
 *  - 글꼴 : 번들된 NanumSquare 단일 패밀리, 굵기 대비로 위계 표현
 * ===================================================================== */
:root {
  --hs-navy:      #1B3A7A;
  --hs-navy-2:    #24508F;
  --hs-teal:      #0E9AA7;
  --hs-teal-600:  #0B7F8A;
  --hs-teal-50:   #E7F6F7;
  --hs-paper:     #F5F7FA;
  --hs-ink:       #1D2433;
  --hs-muted:     #69728A;
  --hs-line:      #E2E6EE;
  --hs-coral:     #E5484D;
  --hs-radius:    12px;
  --hs-radius-sm: 8px;
  --hs-bar-h:     60px;
}

/* ---------- 기본 타이포그래피 ---------- */
html { overflow-y: auto; -webkit-text-size-adjust: 100%; }
body {
  font-family: 'NanumSquare', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  font-size: 11px;
  line-height: 1.55;
  color: var(--hs-ink);
  background: #FFFFFF;
  word-break: keep-all;
}
td, th, input, select, textarea, button { font-family: inherit; }
td { font-size: 11px; }
a:link, a:visited, a:hover, a:active { font-family: inherit; font-size: inherit; }
a:link, a:visited { color: var(--hs-navy-2); }
a:hover, a:active { color: var(--hs-teal-600); }

/* 기본 글자 11px : 10px 이하 인라인 글자는 11px 로 올림 */
[style*="font-size:10px"], [style*="font-size: 10px"], [style*="font-size:9px"], [style*="font-size: 9px"] { font-size: 11px !important; }

:focus-visible { outline: 2px solid var(--hs-teal); outline-offset: 2px; }

/* ---------- 상단 앱바 ---------- */
#topgrad1 {
  height: var(--hs-bar-h);
  background-color: var(--hs-navy);
  background: var(--hs-navy);
  background-image: linear-gradient(115deg, #1B3A7A 0%, #1F4A8C 72%, #1B6693 100%);
  border-radius: 0;
  transition: none;
  box-shadow: 0 2px 10px rgba(16, 32, 72, .12);
}
#topgrad1::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 3px;
  background: var(--hs-teal);
}
.hs-appbar {
  height: var(--hs-bar-h);
  display: flex; align-items: center;
  padding: 0 6px 3px;
  box-sizing: border-box;
}
.hs-appbar__logo { display: flex; align-items: center; height: 44px; padding: 0 8px; }
.hs-appbar__logo img { height: 30px; width: auto; display: block; }
.hs-appbar__spacer { flex: 1; }
.hs-iconbtn {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; background: transparent; color: #FFFFFF;
  border-radius: 50%; cursor: pointer; padding: 0;
  -webkit-tap-highlight-color: transparent;
}
.hs-iconbtn:active { background: rgba(255, 255, 255, .14); }
/* 링크(<a>)로 된 아이콘 버튼도 흰색 유지 (전역 a:link 색상 덮어쓰기 방지) */
a.hs-iconbtn:link, a.hs-iconbtn:visited, a.hs-iconbtn:hover, a.hs-iconbtn:active { color: #FFFFFF; }
.hs-iconbtn svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* 각 화면의 제목 (<div id="subtitle"><p>제목</p></div>) */
/* iOS 26 Safari 는 화면 맨 위(top:0)에 붙은 고정 요소의 배경색으로 상태표시줄 영역을 칠한다.
   투명한 #subtitle 이 top:0 에 있으면 흰색 블러로 처리되므로, 위에서 띄워 앱바(#topgrad1)가 기준이 되게 한다. */
#subtitle {
  top: 8px; left: 52px;
  width: calc(100% - 150px);
  height: calc(var(--hs-bar-h) - 19px);
  display: flex; align-items: center;
  padding: 0; box-sizing: border-box;
  background: transparent;
  pointer-events: none;
}
/* 화면 제목 아래 첫 여백 : 홈 학사일정 박스와 같은 간격(앱바 아래 10px)으로 통일 */
#subtitle + table > tbody > tr[height="65"], #subtitle + table > tr[height="65"] { height: calc(var(--hs-bar-h) + 10px); }
#subtitle p, #subtitle p * {
  font-size: 14.5px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  letter-spacing: -0.3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin: 0;
}

/* ---------- 사이드 메뉴 (드로어) ---------- */
.sidetop, .sidenav {
  width: 0;
  left: 0;
  overflow-x: hidden;
  transition: width .25s ease;
  box-shadow: none;
}
.sidetop {
  top: var(--hs-bar-h); height: 52px;
  background: #FFFFFF;
  border-bottom: 1px solid var(--hs-line);
}
.sidenav {
  top: calc(var(--hs-bar-h) + 52px);
  height: calc(100vh - var(--hs-bar-h) - 52px);
  background: #FFFFFF;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.sidetop.hs-open, .sidenav.hs-open { width: min(300px, 84vw); box-shadow: 6px 0 24px rgba(16, 32, 72, .16); }
.hs-nav-backdrop {
  position: fixed; inset: 0; z-index: 94;
  background: rgba(16, 24, 40, .38);
  opacity: 0; visibility: hidden;
  transition: opacity .2s ease;
}
.hs-nav-backdrop.hs-open { opacity: 1; visibility: visible; }

.hs-navhead { width: min(300px, 84vw); height: 52px; display: flex; align-items: center; padding: 0 8px 0 18px; box-sizing: border-box; }
.hs-navhead__name { flex: 1; font-size: 12.5px; font-weight: 800; color: var(--hs-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hs-navhead__role { font-size: 10px; font-weight: 400; color: var(--hs-muted); margin-left: 6px; }
.hs-navhead .hs-iconbtn { color: var(--hs-muted); }

.hs-nav { width: min(300px, 84vw); margin: 0; padding: 6px 0 90px; list-style: none; box-sizing: border-box; }
.hs-nav li { list-style: none; }
.sidenav .hs-nav__item {
  display: flex; align-items: center; gap: 12px;
  min-height: 50px; padding: 0 18px;
  font-size: 12.5px !important; font-weight: 700; color: var(--hs-ink) !important;
  text-decoration: none; cursor: pointer;
  border-bottom: 1px solid #F0F2F6;
  -webkit-tap-highlight-color: transparent;
}
.hs-nav__text { font-style: normal; }
.sidenav .hs-nav__item img { width: 26px; height: 26px; object-fit: contain; flex: none; }
.sidenav .hs-nav__item:active { background: var(--hs-teal-50); }
.hs-nav__chev { margin-left: auto; width: 18px; height: 18px; stroke: var(--hs-muted); fill: none; stroke-width: 2; transition: transform .2s ease; }
.hs-nav__toggle { display: none !important; }
.hs-nav__toggle:checked + .hs-nav__item .hs-nav__chev { transform: rotate(90deg); }
.hs-nav__sub { display: none; background: var(--hs-paper); padding: 4px 0; border-bottom: 1px solid #F0F2F6; }
.hs-nav__toggle:checked ~ .hs-nav__sub { display: block; }
.sidenav .hs-nav__sub a {
  display: block; padding: 11px 18px 11px 56px;
  font-size: 11.5px !important; font-weight: 400; color: #3A4256 !important;
  text-decoration: none;
}
.sidenav .hs-nav__sub a:active { background: var(--hs-teal-50); }

/* ---------- 홈 ---------- */
#home_iljung {
  top: calc(var(--hs-bar-h) + 10px);
  height: auto;           /* 일정 줄 수에 맞춰 늘어남 (최대 8줄) */
  min-height: 236px;
  padding-bottom: 16px;   /* 마지막 일정 아래 여백 */
  border: 1px solid var(--hs-line);
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(16, 32, 72, .08);
  overflow: hidden;
}
#home_iljung::before {
  content: "";
  display: block; height: 4px;
  background: linear-gradient(90deg, var(--hs-navy), var(--hs-teal));
}

/* ---------- 카드 박스 (textbox01~03) ---------- */
.textbox01, .textbox02, .textbox03, .textbox03_line_height_off {
  background-color: #FFFFFF;
  background-image: none;
  border: 1px solid var(--hs-line);
  border-radius: var(--hs-radius);
  box-shadow: none;
  color: var(--hs-ink);
}
.textbox03, .textbox03_line_height_off { font-size: 11px; }

/* ---------- 버튼 ---------- */
[class*="btn_type"], [class*="btn_w35"], [class*="btn_w40"] {
  font-family: inherit;
  font-weight: 700;
  line-height: 1.2;
  border-radius: var(--hs-radius-sm) !important;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color .15s ease, border-color .15s ease;
  box-shadow: none !important;
  white-space: nowrap;
}
/* 주 동작 (blue → 청록 단색) */
[class*="btn_type"][class*="_blue"], [class*="btn_w35"][class*="_blue"], [class*="btn_w40"][class*="_blue"] {
  background: var(--hs-teal) !important;
  border: 1px solid var(--hs-teal) !important;
  color: #FFFFFF !important;
}
[class*="btn_type"][class*="_blue"]:active, [class*="btn_w35"][class*="_blue"]:active { background: var(--hs-teal-600) !important; }
[class*="btn_type"][class*="_blue"] *, [class*="btn_w35"][class*="_blue"] * { color: #FFFFFF !important; }
/* 보조 동작 (gray → 흰 바탕 외곽선) */
[class*="btn_type"][class*="_gray"], [class*="btn_type"][class*="_gray2"], [class*="btn_w35"][class*="_gray"] {
  background: #FFFFFF !important;
  border: 1px solid #CBD2DE !important;
  color: #3A4256 !important;
}
[class*="btn_type"][class*="_gray"]:active, [class*="btn_w35"][class*="_gray"]:active { background: var(--hs-paper) !important; }
/* 상태 색은 의미를 유지하되 채도를 맞춤 */
[class*="btn_type"][class*="_green"], [class*="btn_w35"][class*="_green"] { background: #E5F5EC !important; border: 1px solid #9ED4B5 !important; color: #17663C !important; }
[class*="btn_type"][class*="_orange"], [class*="btn_w35"][class*="_orang"], [class*="btn_w35"][class*="_orange"] { background: #FFF1E6 !important; border: 1px solid #F5C39B !important; color: #9A4A0E !important; }
[class*="btn_type"][class*="_yellow"] { background: #FFF8DB !important; border: 1px solid #EED77C !important; color: #7A5D00 !important; }
[class*="btn_type"][class*="_red"] { background: #FDECEC !important; border: 1px solid #F3AEB0 !important; color: #A51D22 !important; }
[class*="btn_type"][class*="_plum"], [class*="btn_type"][class*="_brown"] { background: #F2EEF8 !important; border: 1px solid #CDBFE3 !important; color: #4E3A78 !important; }

/* ---------- 입력 요소 ---------- */
textarea, select, input[type="text"], input[type="tel"], input[type="number"], input[type="date"], input[type="email"], input[type="password"], input[type="search"] {
  font-size: 14px !important;   /* iOS 확대 방지 */
  color: var(--hs-ink);
}
select {
  border: 1px solid #CBD2DE;
  border-radius: var(--hs-radius-sm);
  background-color: #FFFFFF;
  padding: 6px 8px;
  min-height: 34px;
}
textarea { border-radius: var(--hs-radius-sm); line-height: 1.6; }
::placeholder { color: #9AA2B3; }

/* 체크박스·라디오 강조색 통일 (base.css 의 핑크 → 청록) */
input[type="checkbox"]:checked + label, input[type="radio"]:checked + label { color: var(--hs-teal-600); }
input[type="checkbox"]:checked + label span::before { color: var(--hs-teal-600); }
input[type="checkbox"] + label span, input[type="radio"] + label span { border-color: #A9B1C1; background: #FFFFFF; }

/* ---------- 로딩 ---------- */
.loading { top: 40vh; height: auto; }
.loading span { width: 10px; height: 10px; margin: 0 3px; }
.loading span:nth-child(1) { background-color: var(--hs-navy); }
.loading span:nth-child(2) { background-color: var(--hs-navy-2); }
.loading span:nth-child(3) { background-color: var(--hs-teal); }

/* =====================================================================
 * 로그인·계정 화면 (body.hs-auth)
 *  login / loginpro / idfind / passwd / useradd / *pro 화면의
 *  .login_box, .login_btn_box 를 같은 모양으로 맞춘다.
 * ===================================================================== */
body.hs-auth {
  margin: 0; min-height: 100vh;
  background: var(--hs-navy);
  background-image:
    radial-gradient(120% 60% at 100% 0%, rgba(14, 154, 167, .45) 0%, rgba(14, 154, 167, 0) 60%),
    linear-gradient(180deg, #1B3A7A 0%, #142C5E 100%);
  background-attachment: fixed;
  color: #FFFFFF;
}
body.hs-auth td { color: rgba(255, 255, 255, .86); font-size: 11.5px; }
body.hs-auth font { color: rgba(255, 255, 255, .86) !important; }
body.hs-auth font[color="#FF0000"], body.hs-auth font[color="#ff0000"] { color: #FFB4B6 !important; font-weight: 700; }
body.hs-auth a:link, body.hs-auth a:visited, body.hs-auth a font { color: #FFFFFF !important; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(255, 255, 255, .35); }
/* 로고 : 남색 배경에 맞춰 흰색 단색으로 표시 (배경 타일 없음) */
body.hs-auth img[src*="/login/img/logo.png"] {
  height: 88px; width: auto;
  filter: brightness(0) invert(1);
  opacity: .96;
}

body.hs-auth .login_box {
  box-sizing: border-box;
  height: 50px !important;
  padding: 0 8px !important;
  display: flex; align-items: center;
  background: rgba(255, 255, 255, .10) !important;
  border: 1px solid rgba(255, 255, 255, .22) !important;
  border-radius: var(--hs-radius) !important;
  text-align: left !important;
  margin-bottom: 10px !important;
}
body.hs-auth .login_box:focus-within { border-color: #7FD9E0 !important; background: rgba(255, 255, 255, .14) !important; }
body.hs-auth .login_box table { width: 100%; }
body.hs-auth .login_box input {
  width: 100% !important;
  color: #FFFFFF !important;
  font-size: 15px !important;
  background: transparent !important;
}
body.hs-auth .login_box input::placeholder { color: rgba(255, 255, 255, .55); }

body.hs-auth .login_btn_box {
  box-sizing: border-box;
  height: 50px !important;
  padding: 0 !important;
  display: flex; align-items: center; justify-content: center;
  background: var(--hs-teal) !important;
  border: 0 !important;
  border-radius: var(--hs-radius) !important;
  margin-top: 6px !important;
  cursor: pointer;
}
body.hs-auth .login_btn_box:active { background: var(--hs-teal-600) !important; }
body.hs-auth .login_btn_box table { width: 100%; height: 50px; }
body.hs-auth .login_btn_box td, body.hs-auth .login_btn_box font { color: #FFFFFF !important; font-size: 12.5px; font-weight: 800; letter-spacing: 0; }
/* 예전 알림 말풍선 이미지 제거 */
body.hs-auth td[background*="ifm.png"] { background: none !important; padding: 12px 0; }
body.hs-auth img[src*="/login/img/ifl.png"], body.hs-auth img[src*="/login/img/ifr.png"] { display: none; }

/* 새 마크업용 구성요소 */
.hs-auth__wrap { max-width: 400px; margin: 0 auto; padding: 56px 24px 40px; box-sizing: border-box; }
.hs-auth__brand { text-align: center; margin-bottom: 32px; }
.hs-auth__brand img { cursor: pointer; }
.hs-auth__heading { margin: 0 0 6px; font-size: 18.5px; font-weight: 800; letter-spacing: -0.4px; color: #FFFFFF; }
.hs-auth__sub { margin: 0 0 24px; font-size: 11.5px; color: rgba(255, 255, 255, .72); }
.hs-auth__field { display: block; margin-bottom: 12px; }
.hs-auth__label { display: block; margin: 0 0 6px 2px; font-size: 10.5px; font-weight: 700; color: rgba(255, 255, 255, .78); }
.hs-auth__input {
  box-sizing: border-box; width: 100%; height: 50px;
  padding: 0 14px;
  font-family: inherit; font-size: 15px !important; color: #FFFFFF !important;
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--hs-radius);
  outline: none;
}
.hs-auth__input:focus { border-color: #7FD9E0; background: rgba(255, 255, 255, .14); }
.hs-auth__input::placeholder { color: rgba(255, 255, 255, .5); }
.hs-auth__card {
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 16px;
  padding: 22px 20px;
  margin-bottom: 20px;
}
.hs-auth__title { margin: 0 0 6px; font-size: 14.5px; font-weight: 800; color: #FFFFFF; }
.hs-auth__msg { margin: 0 0 18px; font-size: 12px; color: rgba(255, 255, 255, .8); }
.hs-auth__links { display: flex; justify-content: center; gap: 12px; margin-top: 22px; font-size: 11.5px; color: rgba(255, 255, 255, .4); }
.hs-auth__links a:link, .hs-auth__links a:visited { color: rgba(255, 255, 255, .88) !important; text-decoration: none; }
.hs-auth__foot { text-align: center; margin: 14px 0 0; font-size: 11.5px; color: rgba(255, 255, 255, .64); }
.hs-auth__foot a:link, .hs-auth__foot a:visited { color: #8FE3EA !important; font-weight: 700; text-decoration: none; }

/* 공통 버튼 */
.hs-btn {
  display: inline-flex; align-items: center; justify-content: center;
  box-sizing: border-box; height: 48px; padding: 0 20px;
  font-family: inherit; font-size: 12.5px; font-weight: 800;
  border-radius: var(--hs-radius); border: 0; cursor: pointer;
  text-decoration: none !important;
}
/* 버튼 규격 통일 : 엔클랙스 '신청서 제출' 기준 (높이 48px · 글자 12.5px · 모서리 12px)
   링크(<a>)로 만든 버튼도 전역 a:link 글자 크기에 덮이지 않게 고정 */
a.hs-btn:link, a.hs-btn:visited, a.hs-btn:hover, a.hs-btn:active,
button.hs-btn, .hs-btn.hs-bd__btn, .hs-btn.hs-jb__btn {
  height: 48px; font-size: 12.5px; font-weight: 800; line-height: 1; border-radius: var(--hs-radius);
}
.hs-btn--primary, a.hs-btn--primary:link, a.hs-btn--primary:visited { background: var(--hs-teal); color: #FFFFFF !important; }
.hs-btn--primary:active { background: var(--hs-teal-600); }
.hs-btn--block { display: flex; width: 100%; }
.hs-auth .hs-btn { margin-top: 8px; }

/* 단독 안내 화면 (로그인 필요 / 접속 거부) */
body.hs-plain { margin: 0; min-height: 100vh; background: var(--hs-paper); font-family: 'NanumSquare', 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif; color: var(--hs-ink); display: flex; align-items: center; justify-content: center; }
.hs-notice { max-width: 320px; padding: 32px 24px; text-align: center; }
.hs-notice__icon { width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 50%; background: var(--hs-teal-50); color: var(--hs-teal-600); font-size: 22px; font-weight: 800; line-height: 52px; }
.hs-auth .hs-notice__icon { background: rgba(255, 255, 255, .12); color: #FFFFFF; }
.hs-notice__title { margin: 0 0 6px; font-size: 15px; font-weight: 800; }
.hs-notice__desc { margin: 0 0 22px; font-size: 12px; color: var(--hs-muted); line-height: 1.6; }
.hs-auth .hs-notice__desc { color: rgba(255, 255, 255, .75); }

@media (prefers-reduced-motion: reduce) {
  .sidetop, .sidenav, .hs-nav-backdrop, .hs-nav__chev { transition: none; }
}

/* =====================================================================
 * 시간표 (annae/siganpyo_view.php)
 * ===================================================================== */
.hs-tt { --tt-row: 54px; --tt-time: 34px; margin: 0 12px; }
.hs-tt__head { display: flex; align-items: baseline; justify-content: space-between; margin: 0 2px 10px; }
.hs-tt__term { font-size: 12.5px; font-weight: 800; color: var(--hs-ink); letter-spacing: -0.2px; }
.hs-tt__count { font-size: 10px; color: var(--hs-muted); }

.hs-tt__grid {
  display: grid;
  grid-template-columns: var(--tt-time) repeat(5, minmax(0, 1fr));
  column-gap: 3px;
  background: #FFFFFF;
  border: 1px solid var(--hs-line);
  border-radius: 14px;
  padding: 0 6px 6px 0;
  position: relative;
}
.hs-tt__grid--d6 { grid-template-columns: var(--tt-time) repeat(6, minmax(0, 1fr)); column-gap: 2px; }

.hs-tt__corner { grid-row: 1; grid-column: 1; }
.hs-tt__day {
  grid-row: 1;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; color: #3A4256;
  border-bottom: 1px solid var(--hs-line);
}
.hs-tt__day.is-sat { color: #3B6FD4; }
.hs-tt__day.is-today { color: var(--hs-teal-600); position: relative; }
.hs-tt__day.is-today::after {
  content: ""; position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%);
  width: 22px; height: 3px; border-radius: 3px; background: var(--hs-teal);
}

.hs-tt__time {
  grid-column: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
  padding-top: 6px;
  border-top: 1px dashed #EDF0F5;
}
.hs-tt__time b { font-size: 11px; font-weight: 800; color: #3A4256; line-height: 1.1; }
.hs-tt__time span { font-size: 9px; color: #9AA2B3; margin-top: 2px; letter-spacing: -0.2px; }
.hs-tt__time.is-night b { color: #6B5BB0; }

.hs-tt__slot { border-top: 1px dashed #EDF0F5; }
.hs-tt__slot.is-today { background: rgba(14, 154, 167, .045); }

.hs-tt__class {
  z-index: 1;
  margin: 3px 0;
  padding: 5px 5px 5px 6px;
  border-left: 3px solid;
  border-radius: 8px;
  overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-start;
  box-sizing: border-box;
  min-width: 0;
}
.hs-tt__name {
  font-size: 10px; font-weight: 800; line-height: 1.3; letter-spacing: -0.4px;
  word-break: keep-all; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
.hs-tt__room {
  margin-top: auto; padding-top: 3px;
  font-size: 9px; font-weight: 400; line-height: 1.25; opacity: .78; letter-spacing: -0.3px;
  word-break: keep-all; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.hs-tt__grid--d6 .hs-tt__name { font-size: 9.5px; }
.hs-tt__grid--d6 .hs-tt__class { padding: 4px 3px 4px 4px; }

.hs-tt__empty {
  padding: 36px 16px; text-align: center;
  font-size: 12px; color: var(--hs-muted);
  background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 14px;
}
.hs-tt__empty small { display: block; margin-top: 6px; font-size: 10px; color: #9AA2B3; }
.hs-tt__updated { margin: 10px 14px 0; text-align: right; font-size: 9.5px; color: #9AA2B3; }

/* =====================================================================
 * 전화번호부 (annae/phone.php : 교내 전화번호, annae/jeonhwa.php : 비상연락망)
 * ===================================================================== */
.hs-dir { margin: 0 12px; }
.hs-dir__form { display: flex; gap: 8px; }
.hs-dir__search {
  flex: 1; display: flex; align-items: center; gap: 8px;
  height: 48px; padding: 0 14px;
  background: var(--hs-paper); border: 1px solid var(--hs-line); border-radius: 12px;
  box-sizing: border-box;
}
.hs-dir__search:focus-within { border-color: var(--hs-teal); background: #FFFFFF; }
.hs-dir__search svg { width: 18px; height: 18px; flex: none; stroke: var(--hs-muted); fill: none; stroke-width: 2; stroke-linecap: round; }
.hs-dir__search input {
  flex: 1; min-width: 0; height: 100%;
  border: 0; outline: none; background: transparent;
  font-family: inherit; font-size: 15px !important; color: var(--hs-ink);
  -webkit-appearance: none; appearance: none;
}
.hs-dir__btn {
  height: 48px; padding: 0 18px; border: 0; border-radius: 12px;
  background: var(--hs-teal); color: #FFFFFF;
  font-family: inherit; font-size: 12.5px; font-weight: 800; cursor: pointer;
}
.hs-dir__btn:active { background: var(--hs-teal-600); }
.hs-dir__meta { margin: 14px 4px 8px; font-size: 10.5px; color: var(--hs-muted); }

.hs-dir__group { margin-top: 18px; }
.hs-dir__gtitle {
  display: flex; align-items: center; gap: 6px;
  margin: 0 4px 8px; font-size: 12px; font-weight: 800; color: var(--hs-navy);
}
.hs-dir__gtitle span {
  font-size: 9.5px; font-weight: 700; color: var(--hs-teal-600);
  background: var(--hs-teal-50); border-radius: 10px; padding: 1px 7px;
}

.hs-dir__list {
  list-style: none; margin: 0; padding: 0;
  background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden;
}
.hs-dir__item {
  display: flex; align-items: center; gap: 10px;
  min-height: 60px; padding: 10px 12px 10px 16px;
  border-top: 1px solid #EEF1F5; box-sizing: border-box;
}
.hs-dir__item:first-child { border-top: 0; }
.hs-dir__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-dir__name { font-size: 12.5px; font-weight: 700; color: var(--hs-ink); line-height: 1.35; }
.hs-dir__note { font-size: 10px; color: var(--hs-muted); line-height: 1.35; }

.hs-dir__calls { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
a.hs-dir__call, a.hs-dir__call:link, a.hs-dir__call:visited {
  flex: none;
  display: inline-flex; align-items: center; gap: 6px;
  height: 36px; padding: 0 12px 0 10px;
  border-radius: 18px;
  background: var(--hs-teal-50); color: var(--hs-teal-600);
  font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
a.hs-dir__call:active { background: #CDEDEF; }
.hs-dir__call svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linejoin: round; }
.hs-dir__call em { font-style: normal; font-weight: 400; font-size: 9.5px; color: var(--hs-muted); margin-right: 4px; }

.hs-dir__empty {
  margin-top: 14px; padding: 32px 16px; text-align: center;
  font-size: 12px; color: var(--hs-muted); line-height: 1.6;
  background: #FFFFFF; border: 1px dashed #D5DBE5; border-radius: 14px;
}

/* =====================================================================
 * 대학 연혁 (annae/yeonhyeok.php)
 *  연도 라벨이 스크롤 중 상단에 붙어 현재 위치를 알려준다.
 * ===================================================================== */
.hs-yh { margin: 0 14px; padding-bottom: 20px; }
.hs-yh__list, .hs-yh__items { list-style: none; margin: 0; padding: 0; }
.hs-yh__year { position: relative; padding-left: 26px; }
.hs-yh__year::before {                       /* 세로 줄 */
  content: ""; position: absolute; left: 7px; top: 14px; bottom: 0;
  width: 2px; background: linear-gradient(var(--hs-line), var(--hs-line));
}
.hs-yh__year:last-child::before { bottom: 14px; }
.hs-yh__ylabel {
  position: sticky; top: calc(var(--hs-bar-h) + 4px); z-index: 2;
  margin-left: -26px; padding: 6px 0 10px 26px;
  background: linear-gradient(#FFFFFF 75%, rgba(255, 255, 255, 0));
  font-size: 20.5px; font-weight: 800; letter-spacing: -0.5px; color: var(--hs-navy);
  font-variant-numeric: tabular-nums;
}
.hs-yh__ylabel::before {                     /* 연도 점 */
  content: ""; position: absolute; left: 1px; top: 15px;
  width: 10px; height: 10px; border-radius: 50%;
  background: #FFFFFF; border: 3px solid var(--hs-teal);
}
.hs-yh__items { padding-bottom: 18px; }
.hs-yh__item {
  position: relative;
  margin-bottom: 8px; padding: 12px 14px;
  background: var(--hs-paper); border-radius: 12px;
}
.hs-yh__item::before {                       /* 항목 연결점 */
  content: ""; position: absolute; left: -22px; top: 19px;
  width: 6px; height: 6px; border-radius: 50%; background: #B9C2D1;
}
.hs-yh__date {
  display: block; margin-bottom: 3px;
  font-size: 10px; font-weight: 700; color: var(--hs-teal-600);
  font-variant-numeric: tabular-nums;
}
.hs-yh__text { font-size: 12px; line-height: 1.6; color: var(--hs-ink); word-break: keep-all; overflow-wrap: anywhere; }
.hs-yh__text p { margin: 0; }
.hs-yh__empty {
  padding: 32px 16px; text-align: center; font-size: 12px; color: var(--hs-muted);
  border: 1px dashed #D5DBE5; border-radius: 14px;
}

/* =====================================================================
 * 신청서 접수 (jubsu/*)
 * ===================================================================== */
.hs-jb { margin: 0 12px; padding-bottom: 24px; }
.hs-jb__card {
  background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 16px;
  padding: 16px; margin-bottom: 12px;
}
.hs-jb__card.is-open { border-color: #A9DDE1; box-shadow: 0 6px 18px rgba(14, 154, 167, .08); }
.hs-jb__chead { margin-bottom: 10px; }
.hs-jb__title { margin: 6px 0 0; font-size: 13.5px; font-weight: 800; line-height: 1.4; color: var(--hs-ink); letter-spacing: -0.3px; }
.hs-jb__badge {
  display: inline-flex; align-items: center; height: 24px; padding: 0 10px;
  border-radius: 12px; font-size: 10px; font-weight: 800;
}
.hs-jb__badge.is-open   { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-jb__badge.is-open::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--hs-teal); margin-right: 6px; }
.hs-jb__badge.is-wait   { background: #FFF4DB; color: #8A6100; }
.hs-jb__badge.is-closed { background: #EEF1F5; color: #6B7383; }
.hs-jb__badge.is-none   { background: #F5F0FA; color: #6B4E99; }
.hs-jb__desc { font-size: 11.5px; line-height: 1.65; color: #3A4256; margin-bottom: 12px; word-break: keep-all; overflow-wrap: anywhere; }

.hs-jb__meta, .hs-jb__rows { margin: 0; padding: 0; }
.hs-jb__meta > div, .hs-jb__rows > div { display: flex; gap: 12px; padding: 7px 0; border-top: 1px solid #F0F2F6; }
.hs-jb__meta > div:first-child, .hs-jb__rows > div:first-child { border-top: 0; }
.hs-jb__meta dt, .hs-jb__rows dt { flex: none; width: 64px; font-size: 10.5px; color: var(--hs-muted); padding-top: 1px; }
.hs-jb__meta dd, .hs-jb__rows dd { margin: 0; flex: 1; min-width: 0; font-size: 11.5px; color: var(--hs-ink); line-height: 1.5; font-variant-numeric: tabular-nums; }
.hs-jb__meta dd a:link, .hs-jb__meta dd a:visited { color: var(--hs-teal-600); font-weight: 700; }
.hs-jb__hint { margin: 12px 0 0; font-size: 10.5px; color: #8A6100; }
.hs-jb__btn { margin-top: 14px; }
a.hs-jb__btn--ghost, .hs-jb__btn--ghost {
  display: flex; width: 100%;
  background: #FFFFFF; color: #3A4256 !important; border: 1px solid #CBD2DE;
}
.hs-jb__actions { display: flex; gap: 8px; }
.hs-jb__actions .hs-btn { flex: 1; margin-top: 4px; }
.hs-jb__actions .hs-jb__btn--ghost { flex: 0 0 34%; }
.hs-jb__actions .hs-btn--primary[disabled] { opacity: .6; }

.hs-jb__notice {
  margin-bottom: 12px; padding: 12px 14px;
  background: #FFF8E6; border: 1px solid #F3DFA6; border-radius: 12px;
  font-size: 11px; line-height: 1.55; color: #6E5300;
}
.hs-jb__notice b { display: block; margin-bottom: 2px; font-size: 12px; color: #5A4300; }

/* 입력 */
.hs-jb__field { display: block; margin-top: 14px; }
.hs-jb__field:first-child { margin-top: 0; }
.hs-jb__label { display: block; margin-bottom: 6px; font-size: 11px; font-weight: 700; color: #3A4256; }
.hs-jb__label small { font-weight: 400; color: var(--hs-muted); margin-left: 4px; }
.hs-jb__input {
  box-sizing: border-box; width: 100%; height: 48px; padding: 0 14px;
  border: 1px solid #CBD2DE; border-radius: 12px; background: #FFFFFF;
  font-family: inherit; font-size: 15px !important; color: var(--hs-ink); outline: none;
  -webkit-appearance: none; appearance: none;
}
.hs-jb__input:focus { border-color: var(--hs-teal); box-shadow: 0 0 0 3px rgba(14, 154, 167, .15); }
.hs-jb__textarea { height: auto; min-height: 104px; padding: 12px 14px; line-height: 1.6; resize: vertical; }
.hs-jb__seg { display: flex; gap: 8px; }
.hs-jb__seg input { display: none !important; }
.hs-jb__seg label {
  flex: 1; display: flex; align-items: center; justify-content: center;
  height: 48px; border: 1px solid #CBD2DE; border-radius: 12px;
  font-size: 12.5px; font-weight: 700; color: #3A4256 !important; cursor: pointer;
}
.hs-jb__seg input:checked + label { border-color: var(--hs-teal); background: var(--hs-teal-50); color: var(--hs-teal-600) !important; }
.hs-jb__file {
  display: block; width: 100%; box-sizing: border-box; margin-bottom: 6px;
  padding: 8px; border: 1px dashed #CBD2DE; border-radius: 10px; background: var(--hs-paper);
  font-family: inherit; font-size: 13px !important; color: #3A4256;
}
.hs-jb__file::file-selector-button {
  margin-right: 10px; padding: 6px 12px; border: 0; border-radius: 8px;
  background: #FFFFFF; color: var(--hs-teal-600); font-family: inherit; font-weight: 700;
  box-shadow: inset 0 0 0 1px #CBD2DE;
}
.hs-jb__files { list-style: none; margin: 0; padding: 0; }
.hs-jb__files li { padding: 3px 0; }
.hs-jb__files a { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
.hs-jb__files .is-empty { color: var(--hs-muted); font-size: 13px; }

/* 결과 화면 */
.hs-jb__result {
  margin-top: 8px; padding: 32px 20px 24px; text-align: center;
  background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 18px;
}
.hs-jb__ricon {
  width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.hs-jb__ricon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.is-ok   .hs-jb__ricon { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.is-wait .hs-jb__ricon { background: #FFF4DB; color: #B07D00; }
.is-no   .hs-jb__ricon { background: #FDECEC; color: #C0343A; }
.is-info .hs-jb__ricon { background: #EEF2FA; color: var(--hs-navy-2); }
.hs-jb__rtitle { margin: 0 0 8px; font-size: 16px; font-weight: 800; letter-spacing: -0.4px; color: var(--hs-ink); }
.hs-jb__rbody { font-size: 12px; line-height: 1.65; color: #3A4256; word-break: keep-all; }
.hs-jb__rbody p { margin: 0 0 6px; }
.hs-jb__rsub { font-weight: 700; color: var(--hs-muted); font-size: 11px; }
.hs-jb__empty {
  padding: 36px 16px; text-align: center; font-size: 12px; color: var(--hs-muted);
  border: 1px dashed #D5DBE5; border-radius: 14px;
}

/* =====================================================================
 * 게시판 (board/*) : 공지사항 · Q&A · FAQ · 서식자료실 · 기숙사/교직/LMS 공지
 * ===================================================================== */
.hs-bd { margin: 0 12px; padding-bottom: 24px; }
.hs-bd__tools { display: flex; gap: 8px; margin-bottom: 4px; }
a.hs-bd__write, a.hs-bd__write:link, a.hs-bd__write:visited {
  flex: none; display: inline-flex; align-items: center; gap: 4px;
  height: 48px; padding: 0 14px; border-radius: 12px;
  background: var(--hs-teal); color: #FFFFFF; font-size: 12.5px; font-weight: 800; text-decoration: none;
}
.hs-bd__write svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.4; stroke-linecap: round; }
.hs-bd__meta { margin: 10px 4px 0; font-size: 10.5px; color: var(--hs-muted); }
.hs-bd__meta a { margin-left: 6px; font-weight: 700; }

/* 목록 */
.hs-bd__list { list-style: none; margin: 12px 0 0; padding: 0; border-top: 1px solid var(--hs-line); }
.hs-bd__row { border-bottom: 1px solid var(--hs-line); }
.hs-bd__row a, .hs-bd__row a:link, .hs-bd__row a:visited {
  display: block; padding: 14px 4px; color: var(--hs-ink); text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.hs-bd__row a:active { background: var(--hs-paper); }
.hs-bd__row.is-pin { background: #F4FAFB; }
.hs-bd__row.is-pin a { padding-left: 10px; padding-right: 10px; }
.hs-bd__rtitle {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
  font-size: 12.5px; font-weight: 700; line-height: 1.45; letter-spacing: -0.2px;
  word-break: keep-all; overflow-wrap: anywhere;
}
.hs-bd__row.is-pin .hs-bd__rtitle { font-weight: 800; }
.hs-bd__rmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 6px; font-size: 10px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-bd__rmeta .is-cm, .hs-bd__rmeta .is-file { display: inline-flex; align-items: center; gap: 3px; color: var(--hs-teal-600); font-weight: 700; }
.hs-bd__rmeta svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.hs-bd__tag {
  display: inline-flex; align-items: center; height: 19px; padding: 0 6px; margin-right: 4px;
  border-radius: 5px; font-style: normal; font-size: 9.5px; font-weight: 800; vertical-align: 2px;
}
.hs-bd__tag.is-pin { background: var(--hs-navy); color: #FFFFFF; }
.hs-bd__tag.is-new { background: #FDECEC; color: #C0343A; padding: 0 5px; }
.hs-bd__tag.is-writer { background: var(--hs-teal-50); color: var(--hs-teal-600); }

.hs-bd__pager { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 18px; }
.hs-bd__pbtn {
  width: 40px; height: 40px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid #CBD2DE; color: #3A4256 !important; background: #FFFFFF;
}
.hs-bd__pbtn.is-off { opacity: .35; }
.hs-bd__pbtn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hs-bd__pnum { font-size: 12px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-bd__pnum b { color: var(--hs-ink); font-weight: 800; }
.hs-bd__empty {
  margin-top: 14px; padding: 36px 16px; text-align: center; font-size: 12px; color: var(--hs-muted);
  border: 1px dashed #D5DBE5; border-radius: 14px;
}

/* 본문 */
.hs-bd__article { padding-top: 2px; }
.hs-bd__ahead { padding-bottom: 14px; border-bottom: 1px solid var(--hs-line); }
.hs-bd__atitle { margin: 0 0 10px; font-size: 16px; font-weight: 800; line-height: 1.4; letter-spacing: -0.4px; color: var(--hs-ink); word-break: keep-all; overflow-wrap: anywhere; }
.hs-bd__ameta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: 10.5px; color: var(--hs-muted); }
.hs-bd__ameta img, .hs-bd__chead img { width: 18px; height: 18px; object-fit: contain; }
.hs-bd__aname { font-weight: 700; color: #3A4256; margin-left: -4px; }
.hs-bd__attach { margin-top: 12px; padding: 12px 14px; background: var(--hs-paper); border-radius: 12px; }
.hs-bd__label { margin: 0 0 6px; font-size: 10px; font-weight: 700; color: var(--hs-muted); }
.hs-bd__files { list-style: none; margin: 0; padding: 0; }
.hs-bd__files li { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.hs-bd__files a { display: inline-flex; align-items: center; gap: 6px; min-width: 0; font-size: 11.5px; font-weight: 700; }
.hs-bd__files a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-bd__ficon { width: 16px; height: 16px; flex: none; }
.hs-bd__fdel {
  margin-left: auto; flex: none; height: 28px; padding: 0 10px; border-radius: 8px;
  border: 1px solid #F3AEB0; background: #FFFFFF; color: #C0343A; font-family: inherit; font-size: 10px; font-weight: 700;
}
.hs-bd__body {
  padding: 18px 2px 8px; font-size: 12.5px; line-height: 1.75; color: #262D3B;
  word-break: keep-all; overflow-wrap: anywhere;
}
.hs-bd__body img { max-width: 100%; height: auto; }
.hs-bd__body table { max-width: 100%; }
.hs-bd__images img { display: block; width: 100%; height: auto; margin-top: 10px; border-radius: 10px; }

.hs-bd__actions { display: flex; gap: 8px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--hs-line); }
.hs-bd__actions .hs-bd__btn { flex: 1; }
.hs-bd__btn { height: 48px; font-size: 12.5px; }
a.hs-bd__btn--ghost, .hs-bd__btn--ghost { background: #FFFFFF; color: #3A4256 !important; border: 1px solid #CBD2DE; display: flex; }
.hs-bd > .hs-bd__btn--ghost { margin-top: 12px; width: 100%; }
.hs-bd__btn--danger { background: #FFFFFF; color: #C0343A !important; border: 1px solid #F3AEB0; }
.hs-bd__writer { margin: 0; padding: 12px 14px; background: var(--hs-paper); border-radius: 12px; font-size: 12.5px; color: #3A4256; }
.hs-bd__textarea { min-height: 240px; }

/* 댓글 */
.hs-bd__comments { margin-top: 26px; }
.hs-bd__ctitle { margin: 0 0 10px; font-size: 12.5px; font-weight: 800; color: var(--hs-ink); }
.hs-bd__ctitle span { color: var(--hs-teal-600); }
.hs-bd__cform {
  border: 1px solid #CBD2DE; border-radius: 14px; background: #FFFFFF; overflow: hidden;
}
.hs-bd__cform:focus-within { border-color: var(--hs-teal); box-shadow: 0 0 0 3px rgba(14, 154, 167, .12); }
.hs-bd__cform textarea {
  display: block; width: 100%; box-sizing: border-box; min-height: 64px;
  padding: 12px 14px; border: 0; outline: none; resize: vertical;
  font-family: inherit; font-size: 15px !important; line-height: 1.55; color: var(--hs-ink); background: transparent;
}
.hs-bd__cbar { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 10px; border-top: 1px solid #F0F2F6; }
.hs-bd__attachbtn {
  display: inline-flex; align-items: center; gap: 4px; min-width: 0; max-width: 55%;
  height: 32px; padding: 0 8px; border-radius: 8px; cursor: pointer;
  font-size: 10.5px; color: var(--hs-muted);
}
.hs-bd__attachbtn input { display: none; }
.hs-bd__attachbtn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-bd__attachbtn svg { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; }
.hs-bd__chk { display: none !important; }
.hs-bd__chk + label {
  height: 30px; padding: 0 10px; display: inline-flex; align-items: center;
  border: 1px solid #CBD2DE; border-radius: 15px; font-size: 10.5px; font-weight: 700; color: var(--hs-muted) !important; cursor: pointer;
}
.hs-bd__chk:checked + label { border-color: var(--hs-navy); background: var(--hs-navy); color: #FFFFFF !important; }
.hs-bd__csend {
  margin-left: auto; height: 34px; padding: 0 16px; border: 0; border-radius: 10px;
  background: var(--hs-teal); color: #FFFFFF; font-family: inherit; font-size: 12px; font-weight: 800; cursor: pointer;
}
.hs-bd__csend[disabled] { opacity: .6; }
.hs-bd__cempty { margin: 14px 2px; font-size: 11.5px; color: var(--hs-muted); }
.hs-bd__clist { list-style: none; margin: 8px 0 0; padding: 0; }
.hs-bd__comment { padding: 14px 2px; border-bottom: 1px solid #EEF1F5; }
.hs-bd__comment.is-pin { background: #F4FAFB; padding-left: 10px; padding-right: 10px; border-radius: 10px; border-bottom: 0; margin-bottom: 4px; }
.hs-bd__comment.lv1 { margin-left: 18px; }
.hs-bd__comment.lv2 { margin-left: 32px; }
.hs-bd__comment.lv3 { margin-left: 44px; }
.hs-bd__comment.lv1, .hs-bd__comment.lv2, .hs-bd__comment.lv3 { padding-left: 12px; border-left: 2px solid #E1E6EE; }
.hs-bd__chead { display: flex; align-items: center; gap: 6px; font-size: 11px; }
.hs-bd__chead b { font-weight: 800; color: var(--hs-ink); }
.hs-bd__chead time { margin-left: auto; font-size: 9.5px; color: #9AA2B3; font-variant-numeric: tabular-nums; }
.hs-bd__ctext { margin: 6px 0 0; font-size: 12.5px; line-height: 1.6; color: #262D3B; word-break: keep-all; overflow-wrap: anywhere; }
.hs-bd__ctext.is-del { color: #9AA2B3; font-style: italic; }
.hs-bd__cfoot { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 6px; }
a.hs-bd__cfile { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; font-size: 10.5px; font-weight: 700; }
a.hs-bd__cfile span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-bd__clink {
  border: 0; background: none; padding: 4px 0; cursor: pointer;
  font-family: inherit; font-size: 10.5px; font-weight: 700; color: var(--hs-muted);
  list-style: none;
}
.hs-bd__clink::-webkit-details-marker { display: none; }
.hs-bd__reply { width: 100%; }
.hs-bd__reply[open] > summary { color: var(--hs-teal-600); }
.hs-bd__reply .hs-bd__cform { margin-top: 6px; }

/* =====================================================================
 * 엔클랙스 해외 민원 (nclex/*)  ※ 기본 11px 체계에 맞춘 크기
 * ===================================================================== */
.hs-nx__hero {
  margin-bottom: 12px; padding: 18px 16px;
  border-radius: 16px; color: #FFFFFF;
  background: var(--hs-navy);
  background-image: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 60%, #0E7F8A 100%);
}
.hs-nx__htitle { margin: 0 0 6px; font-size: 16px; font-weight: 800; letter-spacing: -0.3px; line-height: 1.35; }
.hs-nx__hsub { margin: 0; font-size: 11.5px; line-height: 1.6; color: rgba(255, 255, 255, .82); }

.hs-nx__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
a.hs-nx__tile, .hs-nx__tile {
  display: flex; flex-direction: column; gap: 2px;
  padding: 14px; border-radius: 14px;
  background: #FFFFFF; border: 1px solid var(--hs-line);
  color: var(--hs-ink) !important; text-decoration: none;
}
.hs-nx__tile b { font-size: 13px; font-weight: 800; }
.hs-nx__tile small { font-size: 10.5px; color: var(--hs-muted); }
.hs-nx__ticon { width: 34px; height: 34px; margin-bottom: 6px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-nx__ticon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
a.hs-nx__tile.is-primary { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF !important; }
.hs-nx__tile.is-primary small { color: rgba(255, 255, 255, .8); }
.hs-nx__tile.is-primary .hs-nx__ticon { background: rgba(255, 255, 255, .18); color: #FFFFFF; }
.hs-nx__tile.is-off { opacity: .6; }
.hs-nx__tile.is-off .hs-nx__ticon { background: #EEF1F5; color: var(--hs-muted); }

.hs-nx__stitle { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; font-size: 12.5px; font-weight: 800; color: var(--hs-navy); }
.hs-nx__stitle span {
  width: 18px; height: 18px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--hs-navy); color: #FFFFFF; font-size: 10px;
}
.hs-nx__stitle small { font-size: 10px; font-weight: 400; color: var(--hs-muted); }
.hs-nx__mt { margin-top: 14px; }
.hs-nx__guide { font-size: 11.5px; line-height: 1.7; color: #3A4256; word-break: keep-all; overflow-wrap: anywhere; }
.hs-nx__guide img { max-width: 100%; height: auto; }
.hs-nx__note { margin: 10px 0 0; font-size: 10.5px; color: var(--hs-muted); }
.hs-nx__muted { color: var(--hs-muted); font-size: 11px; }
.hs-jb__label small.is-req { color: #C0343A; font-weight: 700; }

.hs-nx__docs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-nx__doc { display: none !important; }
.hs-nx__doc + label {
  display: flex; flex-direction: column; gap: 2px;
  padding: 10px 12px; border: 1px solid #CBD2DE; border-radius: 12px; cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.hs-nx__doc + label b { font-size: 11.5px; font-weight: 700; color: var(--hs-ink); }
.hs-nx__doc + label small { font-size: 10.5px; color: var(--hs-muted); }
.hs-nx__doc:checked + label { border-color: var(--hs-teal); background: var(--hs-teal-50); }
.hs-nx__doc:checked + label b { color: var(--hs-teal-600); }
.hs-nx__doc:checked + label b::before { content: "✓ "; }

.hs-nx__grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-nx__grid2 .hs-jb__field { margin-top: 14px; }

.hs-nx__fee {
  margin-bottom: 8px; padding: 12px 16px;
  background: var(--hs-paper); border-radius: 14px;
}
.hs-nx__fee > div { display: flex; justify-content: space-between; padding: 4px 0; font-size: 11.5px; color: #3A4256; font-variant-numeric: tabular-nums; }
.hs-nx__fee > div.is-total { margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--hs-line); font-size: 13px; }
.hs-nx__fee > div.is-total b { color: var(--hs-teal-600); font-weight: 800; }

.hs-nx__account {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 12px; padding: 12px 14px;
  border: 1px dashed #A9DDE1; border-radius: 14px; background: #FFFFFF;
}
.hs-nx__account > div { flex: 1; min-width: 0; }
.hs-nx__alabel { margin: 0 0 2px; font-size: 10.5px; color: var(--hs-muted); }
.hs-nx__anum { margin: 0; font-size: 12.5px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-nx__copy {
  flex: none; height: 32px; padding: 0 12px; border-radius: 9px;
  border: 1px solid var(--hs-teal); background: #FFFFFF; color: var(--hs-teal-600);
  font-family: inherit; font-size: 11.5px; font-weight: 800;
}

.hs-nx__list { list-style: none; margin: 0 0 12px; padding: 0; }
.hs-nx__list li { margin-bottom: 8px; }
a.hs-nx__item, a.hs-nx__item:link, a.hs-nx__item:visited {
  position: relative; display: flex; flex-direction: column; gap: 4px;
  padding: 14px 40px 14px 16px; border-radius: 14px;
  background: #FFFFFF; border: 1px solid var(--hs-line);
  color: var(--hs-ink); text-decoration: none;
}
a.hs-nx__item:active { background: var(--hs-paper); }
.hs-nx__ihead { display: flex; align-items: center; gap: 8px; }
.hs-nx__ihead time { font-size: 10.5px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-nx__ititle { font-size: 13px; font-weight: 800; }
.hs-nx__ifee { font-size: 11px; color: var(--hs-muted); }
.hs-nx__ifee b { color: var(--hs-ink); }
.hs-nx__chev { position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; fill: none; stroke: #9AA2B3; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.hs-nx__chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.hs-nx__chips li { padding: 6px 10px; border-radius: 14px; background: #F0F2F6; color: #9AA2B3; font-size: 11px; font-weight: 700; }
.hs-nx__chips li.is-on { background: var(--hs-teal-50); color: var(--hs-teal-600); }

/* =====================================================================
 * 휴·복학 신청 (hyubokhak/*)
 * ===================================================================== */
.hs-hb__state {
  display: inline-flex; align-items: center; margin-top: 10px; height: 24px; padding: 0 10px;
  border-radius: 12px; background: rgba(255, 255, 255, .16); font-size: 10.5px; font-weight: 800; color: #FFFFFF;
}
.hs-hb__state.is-open::before { content: ""; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: #7FE7C4; }
a.hs-hb__link, a.hs-hb__link:link, a.hs-hb__link:visited {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px; padding: 0 14px; height: 48px; box-sizing: border-box;
  border: 1px solid var(--hs-line); border-radius: 12px; background: #FFFFFF;
  font-size: 12.5px; font-weight: 800; color: var(--hs-ink); text-decoration: none;
}
.hs-hb__link svg { width: 18px; height: 18px; fill: none; stroke: #9AA2B3; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

.hs-hb__notes { margin: 0 0 14px; padding-left: 18px; }
.hs-hb__notes li { margin-bottom: 8px; font-size: 11.5px; line-height: 1.65; color: #3A4256; word-break: keep-all; }
.hs-hb__notes li b { color: var(--hs-navy-2); }
.hs-nx__doc + label.hs-hb__agree { padding: 14px; flex-direction: row; align-items: center; }
.hs-nx__doc + label.hs-hb__agree b { font-size: 12.5px; }
.hs-nx__doc:not(:checked) + label.hs-hb__agree b::before { content: "□ "; color: #9AA2B3; }

.hs-hb__types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hs-hb__type {
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px;
  min-height: 72px; padding: 12px; box-sizing: border-box; text-align: left;
  border: 1px solid var(--hs-teal); border-radius: 12px; background: var(--hs-teal-50);
  font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.hs-hb__type b { font-size: 12.5px; font-weight: 800; color: var(--hs-teal-600); }
.hs-hb__type small { font-size: 10px; line-height: 1.4; color: var(--hs-muted); }
.hs-hb__type:active { background: #CDEDEF; }
.hs-hb__type.is-off { border-color: var(--hs-line); background: #F5F6F8; cursor: default; }
.hs-hb__type.is-off b { color: #9AA2B3; }

.hs-hb__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.hs-hb__chips input { display: none !important; }
.hs-hb__chips label {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px;
  border: 1px solid #CBD2DE; border-radius: 18px; cursor: pointer;
  font-size: 11.5px; font-weight: 700; color: #3A4256 !important;
}
.hs-hb__chips input:checked + label { border-color: var(--hs-teal); background: var(--hs-teal-50); color: var(--hs-teal-600) !important; }
.hs-jb__seg label { font-size: 12px; }
.hs-hb__short { max-width: 140px; }
.hs-hb__addr { min-height: 64px; }
.hs-hb__grid3 { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 8px; }
.hs-hb__grid3 label { position: relative; display: block; }
.hs-hb__grid3 .hs-jb__input { padding-right: 46px; text-align: right; }
.hs-hb__grid3 span { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 11px; color: var(--hs-muted); }
.hs-hb__warn { color: #C0343A; }

.hs-hb__signhead { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.hs-hb__signhead .hs-jb__label { margin: 0; }
.hs-hb__clear {
  height: 30px; padding: 0 12px; border: 1px solid #CBD2DE; border-radius: 8px; background: #FFFFFF;
  font-family: inherit; font-size: 11px; font-weight: 700; color: #3A4256;
}
.hs-hb__sign {
  position: relative; height: 150px;
  border: 1px dashed #A9B1C1; border-radius: 12px; background: #FAFBFC;
  -webkit-user-select: none; user-select: none; touch-action: none;
}
.hs-hb__sign canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hs-hb__signhint {
  position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%);
  text-align: center; font-size: 11px; color: #B3BAC7; pointer-events: none;
}

.hs-hb__timeline { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--hs-line); }
.hs-hb__timeline li { position: relative; margin: 0 0 10px; padding: 12px 14px; background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 12px; }
.hs-hb__timeline li::before {
  content: ""; position: absolute; left: -26px; top: 17px; width: 10px; height: 10px; border-radius: 50%;
  background: #FFFFFF; border: 3px solid #B9C2D1;
}
.hs-hb__timeline li.is-on::before { border-color: var(--hs-teal); }
.hs-hb__timeline li.is-hyu::before { border-color: #E0A100; }
.hs-hb__timeline li.is-bok::before { border-color: #2FA35B; }
.hs-hb__tlhead { display: flex; align-items: center; justify-content: space-between; }
.hs-hb__tlhead time { font-size: 11px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-hb__tag { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: 11px; font-size: 11px; font-weight: 800; background: #EEF1F5; color: #6B7383; }
.hs-hb__tag.is-on { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-hb__tag.is-hyu { background: #FFF4DB; color: #8A6100; }
.hs-hb__tag.is-bok { background: #E5F5EA; color: #17663C; }
.hs-hb__tlsub { margin: 6px 0 0; font-size: 12px; font-weight: 700; color: var(--hs-ink); }
.hs-hb__tlnote { margin: 4px 0 0; font-size: 11px; color: var(--hs-muted); }
.hs-hb__tlnote b { color: #3A4256; }

/* =====================================================================
 * 기존(레거시) 화면 공통 정리 — 아직 개별 재구성하지 않은 화면용
 *  PHP 는 그대로 두고, 기존 클래스·인라인 스타일·bgcolor 를 새 규칙에 맞춘다.
 * ===================================================================== */

/* 1. 버튼 : 큰 버튼(btn_type3)은 표준 48px, 중간(btn_type4)은 36px */
[class*="btn_type3_"] {
  display: inline-flex !important; align-items: center; justify-content: center;
  box-sizing: border-box; min-height: 48px; padding: 0 20px !important;
  font-size: 12.5px !important; font-weight: 800; border-radius: var(--hs-radius) !important;
}
[class*="btn_type4_"] {
  display: inline-flex !important; align-items: center; justify-content: center;
  box-sizing: border-box; min-height: 36px; padding: 0 12px !important;
  font-size: 11.5px !important; border-radius: 10px !important;
}
[class*="btn_type1_"], [class*="btn_type2_"] { padding: 6px 10px !important; font-size: 11px !important; }

/* 이미지 스프라이트 버튼(button btn_colorN) → 일반 버튼 */
span.button { background: none !important; font-size: inherit; line-height: normal; vertical-align: middle; }
span.button > a, span.button > a:link, span.button > a:visited {
  display: inline-flex !important; align-items: center; justify-content: center;
  height: 40px !important; padding: 0 16px !important; box-sizing: border-box;
  background: var(--hs-teal) !important; color: #FFFFFF !important;
  border-radius: 10px; font-size: 12px !important; font-weight: 800 !important; line-height: 1 !important;
  text-decoration: none !important;
}
span.button.btn_color6 > a { height: 48px !important; padding: 0 22px !important; font-size: 12.5px !important; border-radius: var(--hs-radius); }
span.button.btn_color3 > a, span.button.btn_color11 > a { background: #FFFFFF !important; color: #3A4256 !important; box-shadow: inset 0 0 0 1px #CBD2DE; }
span.button.btn_color9 > a { background: #EEF1F5 !important; color: #9AA2B3 !important; }

/* 페이지 이동 원형 버튼 */
.btn_circle_arrow, .btn_circle_arrow_off, .btn_box_arrow, .btn_box_arrow_off {
  width: 40px !important; height: 40px !important; padding: 0 !important; box-sizing: border-box;
  display: inline-flex !important; align-items: center; justify-content: center;
  border: 1px solid #CBD2DE !important; border-radius: 50% !important; background: #FFFFFF !important;
}
.btn_circle_arrow_off, .btn_box_arrow_off { opacity: .4; }

/* 탭 */
.tab_btn, .tab_s50_btn, .tab_s90_btn, .tab_btn_off, .tab_s50_btn_off, .tab_s90_btn_off {
  height: auto !important; min-height: 34px; padding: 0 12px !important; box-sizing: border-box;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 17px !important; font-size: 11.5px; font-weight: 700;
}
.tab_btn, .tab_s50_btn, .tab_s90_btn { background: var(--hs-teal) !important; border: 1px solid var(--hs-teal) !important; color: #FFFFFF !important; }
.tab_btn_off, .tab_s50_btn_off, .tab_s90_btn_off { background: #FFFFFF !important; border: 1px solid #CBD2DE !important; color: #6B7383 !important; }

/* 노란 꼬리표 버튼 */
.btn_w55, .btn_w65, .btn_w100 {
  height: auto !important; padding: 4px 8px !important; box-sizing: border-box;
  background: #FFF4DB !important; border: 1px solid #EED77C !important; border-radius: 8px !important; color: #7A5D00;
}

/* 2. 입력창 : 테두리 없는 기존 입력칸(border: 0)에 테두리·여백을 줘서 보이게 */
body:not(.hs-auth) input[type="text"][style*="border: 0"],
body:not(.hs-auth) input[type="tel"][style*="border: 0"],
body:not(.hs-auth) input[type="number"][style*="border: 0"],
body:not(.hs-auth) input[type="email"][style*="border: 0"],
body:not(.hs-auth) input[type="password"][style*="border: 0"],
body:not(.hs-auth) input:not([type])[style*="border: 0"],
body:not(.hs-auth) textarea[style*="border: 0"] {
  box-sizing: border-box; max-width: 100%;
  min-height: 38px; height: auto !important; padding: 7px 10px !important;
  border: 1px solid #CBD2DE !important; border-radius: 10px !important;
  background: #FFFFFF !important; color: var(--hs-ink) !important;
  font-size: 14px !important; outline: none !important;
}
body:not(.hs-auth) textarea[style*="border: 0"] { width: 100% !important; line-height: 1.6; }
body:not(.hs-auth) input[style*="border: 0"]:focus,
body:not(.hs-auth) textarea[style*="border: 0"]:focus { border-color: var(--hs-teal) !important; box-shadow: 0 0 0 3px rgba(14, 154, 167, .15); }
body:not(.hs-auth) input[style*="border: 0"][readonly] { background: var(--hs-paper) !important; color: #3A4256 !important; }

/* 파일 선택 버튼 */
input[type="file"] { max-width: 100%; font-size: 12px !important; color: #3A4256; }
input[type="file"]::file-selector-button {
  margin-right: 8px; padding: 6px 12px; border: 0; border-radius: 8px;
  background: #FFFFFF; color: var(--hs-teal-600); font-family: inherit; font-weight: 700;
  box-shadow: inset 0 0 0 1px #CBD2DE;
}

/* 기존 체크박스 */
.custom-checkbox .checkmark, .custom-checkbox_green .checkmark, .custom-checkbox_yellow .checkmark {
  width: 18px; height: 18px; border-radius: 5px; box-sizing: border-box;
}
.custom-checkbox .checkmark { background-color: #FFFFFF; border-color: #A9B1C1; }
.custom-checkbox input[type="checkbox"]:checked + .checkmark { background-color: var(--hs-teal); border-color: var(--hs-teal); }
.custom-checkbox .checkmark:after { border-color: #FFFFFF; left: 5px; top: 1px; }

/* 3. 표 : PHP 설정 색($tb_head_bg 등)으로 칠해진 칸을 새 색으로 */
[bgcolor="#ADC5E7"] { background-color: #EEF2FA !important; color: var(--hs-navy) !important; font-weight: 700; }
[bgcolor="#0196AF"] { background-color: #C9D3E3 !important; }
[bgcolor="#D9DADA"], [bgcolor="#D9D9D9"], [bgcolor="#a5aaa3"], [bgcolor="#BDC3C7"] { background-color: #E6EAF0 !important; }
[bgcolor="#FFFFF0"] { background-color: #F4FAFB !important; }
[bgcolor="#E6E6FA"] { background-color: #F3F0F9 !important; }
[bgcolor="#EFF1F2"] { background-color: var(--hs-paper) !important; }
[bgcolor="#019AAE"] { background-color: var(--hs-teal) !important; }
[bgcolor="#94D8F6"] { background-color: #DDF1F3 !important; }
[bgcolor="#BDC3C7"] { background-color: #E6EAF0 !important; }

/* 기존 안내문의 빨강·파랑 강조 글자 톤 맞춤 */
font[color="red"], font[color="#ff0000"], font[color="#FF0000"] { color: #C0343A; }
font[color="blue"], font[color="#0000ff"], font[color="#0000FF"] { color: var(--hs-navy-2); }

/* 4. 기존 화면 본문 폭 : 화면 끝에 붙지 않게 최소 여백 */
#appcontent > table[width="100%"] { padding: 0 6px; }

/* 기존 화면의 '취소·뒤로·목록' 버튼은 보조 버튼(흰 바탕 테두리)으로 */
[class*="btn_type"][onclick*="history.back"], [class*="btn_type"][onclick*="mukey=list"],
[class*="btn_type"][OnClick*="history.back"], [class*="btn_type"][OnClick*="mukey=list"] {
  background: #FFFFFF !important; border: 1px solid #CBD2DE !important; color: #3A4256 !important;
}
[class*="btn_type"][onclick*="history.back"] *, [class*="btn_type"][onclick*="mukey=list"] * { color: #3A4256 !important; }

/* =====================================================================
 * 모바일 학생증 · 신분증 (card/*)
 *  배경 이미지(354×548)의 사진 칸 위치에 맞춰 배치
 * ===================================================================== */
.hs-cd { display: flex; flex-direction: column; align-items: center; padding: 0 12px 24px; }
.hs-cd__card {
  position: relative; width: 354px; height: 548px; flex: none; overflow: hidden;
  background: #FFFFFF; border-radius: 18px;
  box-shadow: 0 1px 0 rgba(16, 32, 72, .04), 0 14px 34px rgba(16, 32, 72, .18);
  --cd-a: #0A9DA6; --cd-b: #18B8B3;
}
.hs-cd__card.is-staff { --cd-a: #0B5DB3; --cd-b: #1F7FD6; }
/* 위쪽 색 띠 (사진 칸 가운데 높이까지) */
.hs-cd__band {
  position: absolute; left: 0; top: 0; right: 0; height: 205px;
  background: linear-gradient(135deg, var(--cd-a) 0%, var(--cd-b) 100%);
}
.hs-cd__band::after {                         /* 띠 아래쪽의 가는 선 */
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255, 255, 255, .25);
}
.hs-cd__wm { position: absolute; right: -36px; top: 22px; width: 190px; opacity: .12; }
.hs-cd__wm svg, .hs-cd__corner svg, .hs-cd__brand svg { display: block; width: 100%; height: auto; }
.hs-cd__wm svg *, .hs-cd__corner svg * { fill: #FFFFFF; }
.hs-cd__corner { position: absolute; right: 16px; top: 14px; display: flex; flex-direction: column; align-items: center; gap: 3px; width: 64px; }
.hs-cd__corner svg { width: 22px; }
.hs-cd__corner b { font-size: 8.5px; font-weight: 800; color: rgba(255, 255, 255, .9); letter-spacing: -0.2px; white-space: nowrap; }
.hs-cd__brand { position: absolute; left: 0; right: 0; bottom: 22px; display: flex; align-items: center; justify-content: center; gap: 8px; }
.hs-cd__brand svg { width: 24px; }
.hs-cd__brand b { font-size: 19px; font-weight: 800; color: #0070C0; letter-spacing: -0.5px; }
.hs-cd__card::after {                          /* 아래 테두리 안쪽 선 */
  content: ""; position: absolute; inset: 0; border-radius: 18px; box-shadow: inset 0 0 0 1px rgba(16, 32, 72, .06); pointer-events: none;
}
@media (max-width: 370px) { .hs-cd__card { transform: scale(.9); transform-origin: top center; margin-bottom: -55px; } }
.hs-cd__title { z-index: 1; position: absolute; left: 0; right: 0; top: 34px; margin: 0; text-align: center; font-size: 20px; font-weight: 800; letter-spacing: 6px; color: #FFFFFF; }
.hs-cd__photo { position: absolute; left: 29px; top: 100px; width: 133px; height: 172px; object-fit: cover; background: #FFFFFF; z-index: 1; border: 4px solid #FFFFFF; box-sizing: border-box; border-radius: 6px; box-shadow: 0 6px 16px rgba(16, 32, 72, .18); }
.hs-cd__who { z-index: 1; position: absolute; left: 178px; top: 140px; right: 16px; color: #FFFFFF; }
.hs-cd__who b { display: block; font-size: 21px; font-weight: 800; letter-spacing: -0.3px; line-height: 1.25; word-break: keep-all; }
.hs-cd__who span { display: block; margin-top: 6px; font-size: 16px; font-weight: 700; letter-spacing: 1px; font-variant-numeric: tabular-nums; opacity: .95; }
.hs-cd__info { position: absolute; left: 29px; top: 318px; width: 150px; margin: 0; }
.hs-cd__info > div { margin-bottom: 12px; }
.hs-cd__info dt { font-size: 10.5px; color: #8A93A6; margin-bottom: 1px; }
.hs-cd__info dd { margin: 0; font-size: 15px; font-weight: 800; color: #1D2433; line-height: 1.3; word-break: keep-all; }
.hs-cd__qr { position: absolute; right: 22px; top: 300px; width: 140px; height: 140px; image-rendering: pixelated; }
.hs-cd__timer { width: 330px; max-width: 100%; margin-top: 16px; text-align: center; }
.hs-cd__bar { height: 6px; border-radius: 3px; background: #E6EAF0; overflow: hidden; }
.hs-cd__bar i { display: block; height: 100%; width: 100%; background: var(--hs-teal); transition: width 1s linear; }
.hs-cd__timer p { margin: 8px 0 0; font-size: 11.5px; color: var(--hs-muted); }
.hs-cd__timer p span { font-weight: 800; color: var(--hs-coral); font-variant-numeric: tabular-nums; }
.hs-cd__steps { margin: 0 0 10px; padding-left: 20px; text-align: left; }
.hs-cd__steps li { margin-bottom: 4px; }

/* =====================================================================
 * 교내식당 (sikdang/*)
 * ===================================================================== */
.hs-sd__tabs { display: flex; gap: 6px; margin-bottom: 12px; }
.hs-sd__tabs a, .hs-sd__tabs a:link, .hs-sd__tabs a:visited {
  flex: 1; display: flex; align-items: center; justify-content: center; height: 40px;
  border-radius: 20px; border: 1px solid #CBD2DE; background: #FFFFFF;
  font-size: 12px; font-weight: 800; color: #3A4256; text-decoration: none;
}
.hs-sd__tabs a.is-on { background: var(--hs-navy); border-color: var(--hs-navy); color: #FFFFFF; }
.hs-sd__day { margin-bottom: 14px; background: #FFFFFF; border: 1px solid var(--hs-line); border-radius: 16px; overflow: hidden; }
.hs-sd__day.is-today { border-color: #A9DDE1; }
.hs-sd__date { display: flex; align-items: center; gap: 6px; margin: 0; padding: 12px 16px; background: var(--hs-paper); font-size: 13px; font-weight: 800; color: var(--hs-navy); }
.hs-sd__day.is-today .hs-sd__date { background: var(--hs-teal-50); }
.hs-sd__date em { font-style: normal; font-size: 10.5px; padding: 2px 8px; border-radius: 10px; background: var(--hs-teal); color: #FFFFFF; }
.hs-sd__meal { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "head act" "menu act"; column-gap: 10px; padding: 12px 16px; border-top: 1px solid #F0F2F6; }
.hs-sd__meal:first-of-type { border-top: 0; }
.hs-sd__mhead { grid-area: head; display: flex; align-items: baseline; gap: 6px; }
.hs-sd__mhead b { font-size: 13px; font-weight: 800; color: var(--hs-ink); }
.hs-sd__mhead span { font-size: 10.5px; color: var(--hs-muted); }
.hs-sd__menu { grid-area: menu; list-style: none; margin: 6px 0 0; padding: 0; font-size: 11.5px; line-height: 1.65; color: #3A4256; }
.hs-sd__act { grid-area: act; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-width: 96px; }
.hs-sd__act small { font-size: 10px; color: var(--hs-muted); white-space: nowrap; }
.hs-sd__book {
  height: 36px; padding: 0 14px; border: 0; border-radius: 10px; background: var(--hs-teal); color: #FFFFFF;
  font-family: inherit; font-size: 11.5px; font-weight: 800; cursor: pointer;
}
.hs-sd__step { display: flex; align-items: center; border: 1px solid #CBD2DE; border-radius: 10px; overflow: hidden; }
.hs-sd__step button { width: 34px; height: 34px; border: 0; background: #FFFFFF; font-size: 17px; font-weight: 700; color: var(--hs-teal-600); cursor: pointer; }
.hs-sd__step button[disabled] { color: #C8CED8; cursor: default; }
.hs-sd__step b { min-width: 28px; text-align: center; font-size: 13px; font-weight: 800; }
.hs-sd__off { font-size: 11px; font-weight: 800; color: #9AA2B3; }
.hs-sd__count { font-size: 12px; color: var(--hs-muted); }
.hs-sd__count b { font-size: 17px; color: var(--hs-navy); font-weight: 800; }

.hs-sd__ticket { margin-bottom: 14px; border: 1px solid var(--hs-line); border-radius: 16px; background: #FFFFFF; overflow: hidden; }
.hs-sd__ticket header { padding: 14px 16px; background: var(--hs-navy); color: #FFFFFF; }
.hs-sd__tlabel { display: block; font-size: 10.5px; opacity: .75; }
.hs-sd__ticket header b { display: block; margin: 2px 0; font-size: 17px; font-weight: 800; }
.hs-sd__ticket header span:last-child { font-size: 12px; opacity: .9; }
.hs-sd__tbody { display: flex; align-items: center; justify-content: space-between; padding: 16px; border-bottom: 2px dashed var(--hs-line); }
.hs-sd__tqty span { display: block; font-size: 11px; color: var(--hs-muted); }
.hs-sd__tqty b { font-size: 36px; font-weight: 800; color: var(--hs-teal-600); line-height: 1.1; }
.hs-sd__tqr { width: 140px; height: 140px; image-rendering: pixelated; }
.hs-sd__ticket footer { display: flex; justify-content: space-between; gap: 8px; padding: 10px 16px; font-size: 10.5px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }

/* =====================================================================
 * 안내문자 (ums/*) · 환경설정 / 사진변경 (user/*)
 * ===================================================================== */
.hs-um__list { list-style: none; margin: 0 0 4px; padding: 0; }
.hs-um__list li { margin-bottom: 8px; }
a.hs-um__item, a.hs-um__item:link, a.hs-um__item:visited {
  display: flex; flex-direction: column; gap: 4px; padding: 12px 14px;
  border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; color: var(--hs-ink); text-decoration: none;
}
.hs-um__head { display: flex; justify-content: space-between; gap: 8px; }
.hs-um__head b { font-size: 12.5px; font-weight: 800; }
.hs-um__head time { flex: none; font-size: 10.5px; color: var(--hs-muted); }
.hs-um__text { font-size: 12px; line-height: 1.55; color: #3A4256; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; word-break: keep-all; overflow-wrap: anywhere; }
.hs-um__from { font-size: 10.5px; color: #9AA2B3; }
.hs-um__chead { padding-bottom: 10px; margin-bottom: 12px; border-bottom: 1px solid var(--hs-line); }
.hs-um__chead b { display: block; font-size: 15px; font-weight: 800; }
.hs-um__chead span { font-size: 11px; color: var(--hs-muted); }
.hs-um__body { font-size: 13px; line-height: 1.75; color: #262D3B; word-break: keep-all; overflow-wrap: anywhere; }

.hs-us__notes { margin: 14px 0 0; padding-left: 18px; }
.hs-us__notes li { margin-bottom: 6px; font-size: 11.5px; line-height: 1.6; color: #3A4256; }
.hs-us__notes b { color: #C0343A; }
.hs-us__status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; padding: 12px 14px; border-radius: 12px; background: var(--hs-paper); }
.hs-us__status time { font-size: 11px; color: var(--hs-muted); }
.hs-us__status p { width: 100%; margin: 4px 0 0; font-size: 11.5px; color: #3A4256; }
.hs-us__photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hs-us__photos figure { margin: 0; text-align: center; }
.hs-us__photos img { width: 100%; aspect-ratio: 133 / 172; object-fit: cover; border-radius: 10px; background: var(--hs-paper); border: 1px solid var(--hs-line); }
.hs-us__photos img.is-new { border-color: var(--hs-teal); }
.hs-us__photos figcaption { margin-top: 6px; font-size: 11px; color: var(--hs-muted); }
.hs-us__done { width: 120px; aspect-ratio: 133 / 172; object-fit: cover; margin: 0 auto 10px; display: block; border-radius: 10px; }

/* =====================================================================
 * 취득성적 (sungjuk/*)
 * ===================================================================== */
.hs-sj__total { margin-bottom: 14px; padding: 16px; border-radius: 16px; color: #FFFFFF; background: var(--hs-navy); background-image: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 60%, #0E7F8A 100%); }
.hs-sj__tlabel { margin: 0 0 10px; font-size: 11px; opacity: .8; }
.hs-sj__tgrid { display: grid; grid-template-columns: 1.3fr repeat(4, 1fr); gap: 6px; }
.hs-sj__tgrid > div { display: flex; flex-direction: column; align-items: center; padding: 8px 0; border-radius: 10px; background: rgba(255, 255, 255, .1); }
.hs-sj__tgrid > div.is-all { background: rgba(255, 255, 255, .2); }
.hs-sj__tgrid b { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-sj__tgrid > div.is-all b { font-size: 21px; }
.hs-sj__tgrid span { font-size: 10.5px; opacity: .85; }
.hs-sj__terms { list-style: none; margin: 0; padding: 0; }
.hs-sj__terms li { margin-bottom: 8px; }
.hs-sj__terms a, .hs-sj__terms a:link, .hs-sj__terms a:visited {
  position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "term gpa" "meta gpa";
  gap: 2px 10px; padding: 12px 40px 12px 16px; border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; color: var(--hs-ink); text-decoration: none;
}
.hs-sj__terms svg { position: absolute; right: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; fill: none; stroke: #9AA2B3; stroke-width: 2; stroke-linecap: round; }
.hs-sj__term { grid-area: term; font-size: 12px; color: #3A4256; }
.hs-sj__term b { font-size: 14px; font-weight: 800; color: var(--hs-ink); margin-right: 4px; }
.hs-sj__gpa { grid-area: gpa; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; }
.hs-sj__gpa b { font-size: 19px; font-weight: 800; color: var(--hs-teal-600); font-variant-numeric: tabular-nums; line-height: 1.1; }
.hs-sj__gpa small { font-size: 10px; color: var(--hs-muted); }
.hs-sj__meta { grid-area: meta; font-size: 10.5px; color: var(--hs-muted); }
.hs-sj__head { margin: 0 0 4px; font-size: 15px; font-weight: 800; color: var(--hs-navy); }
.hs-sj__sum { margin: 0 2px 10px; font-size: 11.5px; color: var(--hs-muted); }
.hs-sj__sum b { color: var(--hs-ink); }
.hs-sj__courses { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.hs-sj__courses li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-top: 1px solid #F0F2F6; }
.hs-sj__courses li:first-child { border-top: 0; }
.hs-sj__courses li.is-fail { background: #FFF6F6; }
.hs-sj__grade { flex: none; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; }
.hs-sj__grade.is-a { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-sj__grade.is-b { background: #EEF2FA; color: var(--hs-navy-2); }
.hs-sj__grade.is-c { background: #FFF4DB; color: #8A6100; }
.hs-sj__grade.is-p { background: #E5F5EA; color: #17663C; }
.hs-sj__grade.is-f { background: #FDECEC; color: #C0343A; }
.hs-sj__cinfo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-sj__cinfo b { font-size: 12.5px; font-weight: 700; word-break: keep-all; overflow-wrap: anywhere; }
.hs-sj__cinfo small { font-size: 10.5px; color: var(--hs-muted); }
.hs-sj__score { flex: none; font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-sj__score small { font-size: 10px; font-weight: 400; color: var(--hs-muted); margin-left: 1px; }
.hs-sj__foot { display: flex; justify-content: space-between; gap: 8px; margin: 10px 4px 0; font-size: 10.5px; color: var(--hs-muted); }

/* =====================================================================
 * 과목 게시판 (gwamok/*) — 게시판 엔진(board) 화면 사용, 과목 목록만 별도
 * ===================================================================== */
.hs-gw__list { list-style: none; margin: 8px 0 0; padding: 0; }
.hs-gw__list li { margin-bottom: 8px; }
.hs-gw__list a, .hs-gw__list a:link, .hs-gw__list a:visited {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; color: var(--hs-ink); text-decoration: none;
}
.hs-gw__icon { flex: none; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--hs-teal-50); color: var(--hs-teal-600); font-size: 15px; font-weight: 800; }
.hs-gw__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-gw__info b { font-size: 13px; font-weight: 800; word-break: keep-all; overflow-wrap: anywhere; }
.hs-gw__info small { font-size: 10.5px; color: var(--hs-muted); }
.hs-gw__cnt { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.hs-gw__cnt em { font-style: normal; font-size: 10px; font-weight: 800; padding: 2px 7px; border-radius: 9px; background: #FDECEC; color: #C0343A; }
.hs-gw__cnt small { font-size: 10.5px; color: var(--hs-muted); }
a.hs-gw__crumb, a.hs-gw__crumb:link, a.hs-gw__crumb:visited { display: inline-flex; align-items: center; gap: 4px; margin-bottom: 10px; font-size: 11.5px; font-weight: 700; color: var(--hs-muted); text-decoration: none; }
.hs-gw__crumb svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* =====================================================================
 * 출석현황 (suup/chulseok*) · LMS 기존 화면 색 맞춤
 * ===================================================================== */
.hs-cs__head { display: flex; justify-content: space-between; align-items: baseline; margin: 0 2px 10px; }
.hs-cs__head b { font-size: 15px; font-weight: 800; color: var(--hs-navy); }
.hs-cs__head span { font-size: 11px; color: var(--hs-muted); }
.hs-cs__sum { margin-bottom: 12px; padding: 16px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-cs__title { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 12px; }
.hs-cs__title b { font-size: 15px; font-weight: 800; color: var(--hs-ink); word-break: keep-all; }
.hs-cs__title span { flex: none; font-size: 11px; color: var(--hs-muted); }
.hs-cs__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hs-cs__stats > div { display: flex; flex-direction: column; align-items: center; padding: 10px 0; border-radius: 12px; }
.hs-cs__stats b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-cs__stats span { font-size: 10.5px; }
.hs-cs__stats .is-ok { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-cs__stats .is-late { background: #FFF4DB; color: #8A6100; }
.hs-cs__stats .is-abs { background: #FDECEC; color: #C0343A; }
.hs-cs__list { list-style: none; margin: 0 0 4px; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.hs-cs__list li { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid #F0F2F6; }
.hs-cs__list li:first-child { border-top: 0; }
.hs-cs__list li.is-hyu { background: var(--hs-paper); }
.hs-cs__date { flex: none; width: 44px; display: flex; flex-direction: column; align-items: center; }
.hs-cs__date b { font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-cs__date small { font-size: 10px; color: var(--hs-muted); }
.hs-cs__time { flex: 1; display: flex; flex-direction: column; font-size: 12px; font-variant-numeric: tabular-nums; }
.hs-cs__time small { font-size: 10.5px; color: var(--hs-muted); }
.hs-cs__badge { flex: none; min-width: 48px; height: 26px; padding: 0 10px; box-sizing: border-box; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; }
.hs-cs__badge.is-ok { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-cs__badge.is-late { background: #FFF4DB; color: #8A6100; }
.hs-cs__badge.is-abs { background: #FDECEC; color: #C0343A; }
.hs-cs__badge.is-wait { background: #EEF1F5; color: #6B7383; }
.hs-cs__badge.is-none { background: transparent; color: #9AA2B3; }

/* LMS 기존 화면 : 보라 → 학교 색 */
.lmscircle1 { background: var(--hs-teal) !important; box-shadow: 0 4px 10px rgba(14, 154, 167, .25); }
.lmscircle2 { background: #E07A3F !important; }
.lmscircle3 { background: #D5DBE5 !important; }
font[color="#5F14D2"], font[color="#702DD6"] { color: var(--hs-navy) !important; }

/* =====================================================================
 * 장학금 수혜내역 (janghak/suhyelist)
 * ===================================================================== */
.hs-jh__total { margin: 0; font-size: 13px; }
.hs-jh__total b { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; margin-right: 2px; }
.hs-jh__term { margin-bottom: 12px; border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; overflow: hidden; }
.hs-jh__term header { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 14px; background: var(--hs-paper); }
.hs-jh__term header b { font-size: 12.5px; font-weight: 800; color: var(--hs-navy); }
.hs-jh__term header span { font-size: 12.5px; font-weight: 800; color: var(--hs-teal-600); font-variant-numeric: tabular-nums; }
.hs-jh__term ul { list-style: none; margin: 0; padding: 0; }
.hs-jh__term li { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid #F0F2F6; }
.hs-jh__term li.is-pre { background: #FFFBEA; }
.hs-jh__term li > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-jh__term li b { font-size: 12.5px; font-weight: 700; word-break: keep-all; }
.hs-jh__term li small { font-size: 10.5px; color: var(--hs-muted); }
.hs-jh__term li > span { flex: none; font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; }

/* =====================================================================
 * 스터디룸 예약내역 (study_room/paper)
 * ===================================================================== */
.hs-sr__card { margin-bottom: 12px; border: 1px solid var(--hs-line); border-radius: 16px; background: #FFFFFF; overflow: hidden; }
.hs-sr__card.is-past { opacity: .7; }
.hs-sr__card header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 12px 14px; background: var(--hs-paper); }
.hs-sr__card header b { font-size: 14px; font-weight: 800; color: var(--hs-ink); }
.hs-sr__when { width: 100%; font-size: 11.5px; color: #3A4256; font-variant-numeric: tabular-nums; }
.hs-sr__mem { list-style: none; margin: 0; padding: 0; }
.hs-sr__mem li { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid #F0F2F6; }
.hs-sr__mem li.is-del { opacity: .5; text-decoration: line-through; }
.hs-sr__who { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.hs-sr__who b { font-size: 12.5px; font-weight: 700; }
.hs-sr__who em { font-style: normal; font-size: 10px; font-weight: 800; padding: 1px 6px; border-radius: 8px; background: var(--hs-navy); color: #FFFFFF; }
.hs-sr__who small { width: 100%; font-size: 10.5px; color: var(--hs-muted); }
.hs-sr__cancel { flex: none; height: 32px; padding: 0 12px; border-radius: 9px; border: 1px solid #F3AEB0; background: #FFFFFF; color: #C0343A; font-family: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.hs-sr__deltxt { flex: none; font-size: 10.5px; color: #9AA2B3; }

/* 기존 화면 보조 규칙 : 라디오 선택색 · 비활성 버튼 · '취소/처음으로' 이동 버튼 */
input[type="radio"]:checked + label span { background-image: none !important; background: var(--hs-teal) !important; border-color: var(--hs-teal) !important; box-shadow: inset 0 0 0 3px #FFFFFF; }
input[type="radio"] + label span { width: 16px !important; height: 16px !important; box-sizing: border-box; background: #FFFFFF; border-color: #A9B1C1; }
[class*="btn_type"][class*="_gray"]:not([onclick]):not([OnClick]) { background: #EEF1F5 !important; border-color: #E1E6EE !important; color: #9AA2B3 !important; cursor: default; }
[class*="btn_type"][onclick*="mukey=notify"], [class*="btn_type"][OnClick*="mukey=notify"] { background: #FFFFFF !important; border: 1px solid #CBD2DE !important; color: #3A4256 !important; }

/* 임상실습 면역서류 (seoryu_is/list) */
.hs-is__docs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
a.hs-is__doc, a.hs-is__doc:link, a.hs-is__doc:visited {
  display: flex; flex-direction: column; gap: 3px; padding: 10px; min-height: 58px; box-sizing: border-box;
  border: 1px solid var(--hs-teal); border-radius: 12px; background: #FFFFFF; text-decoration: none;
}
.hs-is__doc b { font-size: 12px; font-weight: 800; color: var(--hs-ink); word-break: keep-all; }
.hs-is__doc small { font-size: 10px; color: var(--hs-teal-600); font-weight: 700; }
a.hs-is__doc.is-done { border-color: var(--hs-line); background: var(--hs-teal-50); }
.hs-is__doc.is-done small { color: #17663C; }
.hs-is__final { background: #EEF1F5; color: #6B7383 !important; cursor: default; }

/* 교직이수 선발결과 (gyojik/hapgyeok) */
.hs-gj__rank { display: inline-block; margin: 0 0 10px; padding: 6px 14px; border-radius: 16px; background: #FFF4DB; color: #8A6100; font-size: 15px; font-weight: 800; }
.hs-gj__info { margin-top: 12px; }

/* 적성검사 및 교육이수현황 (gyojik/isu) */
.hs-gi__sum { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.hs-gi__sum > div { flex: 1 1 90px; display: flex; flex-direction: column; align-items: center; padding: 10px 6px; border-radius: 12px; background: var(--hs-teal-50); }
.hs-gi__sum b { font-size: 18px; font-weight: 800; color: var(--hs-teal-600); font-variant-numeric: tabular-nums; }
.hs-gi__sum span { font-size: 10.5px; color: #3A4256; text-align: center; word-break: keep-all; }
.hs-gi__list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.hs-gi__list li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-top: 1px solid #F0F2F6; }
.hs-gi__list li:first-child { border-top: 0; }
.hs-gi__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-gi__info b { font-size: 12.5px; font-weight: 700; color: var(--hs-ink); word-break: keep-all; }
.hs-gi__info small { font-size: 10.5px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-gi__badge { flex: none; min-width: 52px; height: 26px; padding: 0 10px; box-sizing: border-box; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; }
.hs-gi__badge.is-ok { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-gi__badge.is-no { background: #FDECEC; color: #C0343A; }
.hs-gi__badge.is-none { background: #EEF1F5; color: #6B7383; }
.hs-gi__sum b small { font-size: 11px; font-weight: 700; margin-left: 1px; }
/* 성인지교육 묶음 카드 (대면·온라인) */
.hs-gi__sum > div.is-group { flex: 1 1 100%; flex-direction: row; align-items: center; gap: 12px; padding: 10px 14px; }
.hs-gi__gname { flex: none; font-size: 12px; font-weight: 800; color: var(--hs-navy); }
.hs-gi__subs { flex: 1; display: flex; justify-content: space-around; gap: 8px; }
.hs-gi__subs > div { display: flex; flex-direction: column; align-items: center; }

/* 교육이수 요약 카드 : 위 2칸(검사·심폐소생술) + 아래 성인지교육(대면·온라인) */
.hs-gi__sum { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.hs-gi__sum > .hs-gi__card {
  display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: space-between;
  gap: 10px; padding: 14px !important; border-radius: 14px; text-align: left;
  background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 2px 8px rgba(16, 32, 72, .04);
}
.hs-gi__title { font-size: 12px; font-weight: 800; color: var(--hs-ink); line-height: 1.4; word-break: keep-all; }
.hs-gi__num { margin: 0; line-height: 1; }
.hs-gi__num b { font-size: 26px; font-weight: 800; color: var(--hs-teal-600); font-variant-numeric: tabular-nums; letter-spacing: -0.5px; }
.hs-gi__num small { font-size: 12px; font-weight: 700; color: var(--hs-muted); margin-left: 2px; }
/* 성인지교육 */
.hs-gi__sum > .hs-gi__card.is-group { grid-column: 1 / -1; align-items: stretch !important; gap: 10px; background: linear-gradient(135deg, #F2FAFB 0%, #FFFFFF 70%); }
.hs-gi__ghead { display: flex; align-items: baseline; justify-content: space-between; }
.hs-gi__total { font-size: 11px; color: var(--hs-muted); }
.hs-gi__total b { font-size: 13px; color: var(--hs-ink); font-weight: 800; }
.hs-gi__subs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-gi__sub { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 12px; background: #FFFFFF; border: 1px solid #DCEFF1; }
.hs-gi__sname { display: flex; flex-direction: column; font-size: 12px; font-weight: 800; color: var(--hs-navy); }
.hs-gi__sname small { font-size: 10px; font-weight: 400; color: var(--hs-muted); margin-top: 1px; }
.hs-gi__sub .hs-gi__num b { font-size: 22px; }
.hs-gi__subs > .hs-gi__sub { flex-direction: row; align-items: center; justify-content: space-between; }
.hs-gi__sub .hs-gi__sname { align-items: flex-start; }

/* =====================================================================
 * 학적변동내역 (hyubokhak/byendong) — 현재 학적 카드 + 날짜 타임라인
 * ===================================================================== */
.hs-bd2__now {
  position: relative; margin-bottom: 18px; padding: 16px 18px; border-radius: 16px; color: #FFFFFF;
  background: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 60%, #0E7F8A 100%);
}
.hs-bd2__now.is-hyu { background: linear-gradient(135deg, #7A5A00 0%, #B07D00 100%); }
.hs-bd2__now.is-bok { background: linear-gradient(135deg, #17663C 0%, #2FA35B 100%); }
.hs-bd2__label { margin: 0; font-size: 11px; opacity: .8; }
.hs-bd2__state { margin: 2px 0 6px; font-size: 24px; font-weight: 800; letter-spacing: -0.5px; }
.hs-bd2__meta { margin: 0; font-size: 11.5px; opacity: .9; font-variant-numeric: tabular-nums; }
.hs-bd2__meta b { font-weight: 800; }
.hs-bd2__count { position: absolute; right: 16px; top: 16px; padding: 3px 10px; border-radius: 12px; background: rgba(255, 255, 255, .18); font-size: 11px; font-weight: 700; }

.hs-bd2__tl { list-style: none; margin: 0; padding: 0; }
.hs-bd2__tl li { display: grid; grid-template-columns: 56px 20px 1fr; align-items: stretch; }
.hs-bd2__when { display: flex; flex-direction: column; align-items: flex-end; padding-top: 12px; font-variant-numeric: tabular-nums; }
.hs-bd2__when span { font-size: 10.5px; font-weight: 800; color: var(--hs-navy); margin-bottom: 1px; }
.hs-bd2__when b { font-size: 13px; font-weight: 800; color: #3A4256; }
.hs-bd2__dot { position: relative; }
.hs-bd2__dot::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; background: var(--hs-line); }
.hs-bd2__tl li:first-child .hs-bd2__dot::before { top: 18px; }
.hs-bd2__tl li:last-child .hs-bd2__dot::before { bottom: auto; height: 18px; }
.hs-bd2__dot::after {
  content: ""; position: absolute; left: 50%; top: 14px; width: 10px; height: 10px; margin-left: -5px;
  border-radius: 50%; background: #FFFFFF; border: 3px solid #B9C2D1; box-sizing: content-box; margin-left: -8px;
}
.hs-bd2__tl li.is-on .hs-bd2__dot::after { border-color: var(--hs-teal); }
.hs-bd2__tl li.is-hyu .hs-bd2__dot::after { border-color: #E0A100; }
.hs-bd2__tl li.is-bok .hs-bd2__dot::after { border-color: #2FA35B; }
.hs-bd2__tl li.is-latest .hs-bd2__dot::after { background: var(--hs-teal); box-shadow: 0 0 0 4px rgba(14, 154, 167, .15); }
.hs-bd2__body {
  margin: 4px 0 10px; padding: 12px 14px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--hs-line);
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px;
}
.hs-bd2__tl li.is-latest .hs-bd2__body { border-color: #A9DDE1; box-shadow: 0 4px 12px rgba(14, 154, 167, .08); }
.hs-bd2__body > b { font-size: 13.5px; font-weight: 800; color: var(--hs-ink); }
.hs-bd2__body .hs-hb__tag { height: 20px; padding: 0 8px; font-size: 10.5px; }
.hs-bd2__body small { width: 100%; font-size: 11px; color: var(--hs-muted); }

/* =====================================================================
 * 학사일정 (annae/calendar) — 월 달력 + 일정 목록
 * ===================================================================== */
.hs-cal { padding: 14px 12px 12px; border: 1px solid var(--hs-line); border-radius: 18px; background: #FFFFFF; box-shadow: 0 4px 14px rgba(16, 32, 72, .05); }
.hs-cal__head { position: relative; display: flex; align-items: center; justify-content: center; gap: 18px; margin-bottom: 10px; }
a.hs-cal__nav, a.hs-cal__nav:link, a.hs-cal__nav:visited { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--hs-paper); color: #3A4256; }
.hs-cal__nav svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.hs-cal__title { display: flex; flex-direction: column; align-items: center; line-height: 1.1; min-width: 72px; }
.hs-cal__title span { font-size: 11px; font-weight: 700; color: var(--hs-muted); }
.hs-cal__title b { font-size: 22px; font-weight: 800; color: var(--hs-navy); letter-spacing: -0.5px; }
a.hs-cal__today, a.hs-cal__today:link, a.hs-cal__today:visited { position: absolute; right: 2px; top: 50%; margin-top: -14px; height: 28px; padding: 0 10px; border-radius: 14px; display: inline-flex; align-items: center; border: 1px solid var(--hs-teal); color: var(--hs-teal-600); font-size: 11px; font-weight: 800; text-decoration: none; }
.hs-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); row-gap: 2px; text-align: center; }
.hs-cal__wd { padding: 6px 0; font-size: 11px; font-weight: 800; color: #6B7383; }
.hs-cal__wd.is-sun, .hs-cal__day.is-sun b { color: #D9363E; }
.hs-cal__wd.is-sat, .hs-cal__day.is-sat b { color: #2E6BD6; }
.hs-cal__day { position: relative; height: 40px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 4px; box-sizing: border-box; }
.hs-cal__day b { width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-size: 13px; font-weight: 700; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-cal__day.is-today b { background: var(--hs-teal); color: #FFFFFF !important; }
.hs-cal__day i { width: 5px; height: 5px; margin-top: 2px; border-radius: 50%; background: var(--hs-teal); }
.hs-cal__lt { margin-top: 16px; }
.hs-cal__list { list-style: none; margin: 0; padding: 0; }
.hs-cal__list li { position: relative; display: flex; gap: 12px; margin-bottom: 8px; padding: 12px 14px 12px 16px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--hs-line); overflow: hidden; }
.hs-cal__list li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--hs-teal); }
.hs-cal__list li.g5::before { background: #D9363E; }
.hs-cal__list li.g6::before { background: var(--hs-navy-2); }
.hs-cal__list li.g1::before, .hs-cal__list li.g2::before, .hs-cal__list li.g3::before { background: #8E99AB; }
.hs-cal__list li.is-now { border-color: #A9DDE1; background: #F6FCFC; }
.hs-cal__when { flex: none; width: 74px; display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.hs-cal__when b { font-size: 12.5px; font-weight: 800; color: var(--hs-ink); }
.hs-cal__when small { font-size: 11px; color: var(--hs-muted); margin-top: 1px; }
.hs-cal__what { flex: 1; min-width: 0; }
.hs-cal__what p { margin: 0 0 4px; font-size: 12.5px; line-height: 1.45; color: #262D3B; word-break: keep-all; overflow-wrap: anywhere; }
.hs-cal__what p.is-bold { font-weight: 800; }
.hs-cal__list li.g5 .hs-cal__what p { color: #C0343A; }
.hs-cal__tag { display: inline-flex; align-items: center; height: 18px; padding: 0 7px; margin-right: 4px; border-radius: 9px; font-size: 10px; font-weight: 800; background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-cal__list li.g5 .hs-cal__tag { background: #FDECEC; color: #C0343A; }
.hs-cal__list li.g6 .hs-cal__tag { background: #EEF2FA; color: var(--hs-navy-2); }
.hs-cal__list li.g1 .hs-cal__tag, .hs-cal__list li.g2 .hs-cal__tag, .hs-cal__list li.g3 .hs-cal__tag { background: #EEF1F5; color: #6B7383; }
.hs-cal__tag.is-now { background: var(--hs-teal) !important; color: #FFFFFF !important; }

/* =====================================================================
 * 사이버토익 (suup/cybertoeic)
 * ===================================================================== */
.hs-ct__head { display: flex; justify-content: space-between; align-items: baseline; }
.hs-ct__head .hs-nx__stitle { margin-bottom: 0; }
.hs-ct__head span { font-size: 11px; color: var(--hs-muted); }
.hs-ct__head span b { font-size: 15px; font-weight: 800; color: var(--hs-teal-600); }
.hs-ct__steps { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); position: relative; }
.hs-ct__steps::before { content: ""; position: absolute; left: 8%; right: 8%; top: 15px; height: 2px; background: var(--hs-line); }
.hs-ct__steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.hs-ct__steps li span { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #FFFFFF; border: 2px solid #CBD2DE; font-size: 12px; font-weight: 800; color: #9AA2B3; box-sizing: border-box; }
.hs-ct__steps li.is-done span { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF; }
.hs-ct__steps li small { font-size: 10px; color: var(--hs-muted); }
.hs-ct__steps li.is-done small { color: var(--hs-teal-600); font-weight: 800; }
.hs-ct__final { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; padding: 12px 14px; border-radius: 12px; background: var(--hs-teal-50); }
.hs-ct__final span { font-size: 11.5px; font-weight: 700; color: #3A4256; }
.hs-ct__final b { font-size: 18px; font-weight: 800; color: var(--hs-teal-600); }
.hs-ct__notes { margin: 14px 0 0; padding-left: 16px; }
.hs-ct__notes li { margin-bottom: 4px; font-size: 11px; line-height: 1.55; color: #3A4256; }
.hs-ct__notes li.is-red { color: #C0343A; }

/* =====================================================================
 * GCH사회봉사 (suup/200325_*)
 * ===================================================================== */
.hs-sv__files { list-style: none; margin: 0; padding: 0; }
.hs-sv__files li { border-top: 1px solid #F0F2F6; }
.hs-sv__files li:first-child { border-top: 0; }
.hs-sv__files a, .hs-sv__files a:link, .hs-sv__files a:visited { display: flex; align-items: center; gap: 8px; padding: 10px 2px; color: var(--hs-ink); text-decoration: none; }
.hs-sv__fname { flex: 1; min-width: 0; font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-sv__files time { flex: none; font-size: 10.5px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-sv__result { display: flex; gap: 14px; align-items: center; }
.hs-sv__photo { flex: none; width: 76px; height: 100px; object-fit: cover; border-radius: 10px; background: var(--hs-paper); border: 1px solid var(--hs-line); }
.hs-sv__rinfo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.hs-sv__term { margin: 0; font-size: 13px; font-weight: 800; color: var(--hs-navy); word-break: keep-all; }
.hs-sv__rrow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hs-sv__rrow span { font-size: 11.5px; color: #3A4256; }
.hs-sv__view img { display: block; width: 100%; height: auto; border-radius: 10px; }
/* 누를 수 없는 버튼 (이수완료·기간 종료 등) */
.hs-btn[disabled], .hs-btn--primary[disabled] { background: #EEF1F5 !important; color: #9AA2B3 !important; border: 1px solid #E1E6EE !important; cursor: default; }

/* =====================================================================
 * 휴·보강 강좌목록 (suup/hyubogang)
 * ===================================================================== */
.hs-hg__card { margin-bottom: 10px; padding: 14px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-hg__card.is-pending { border-color: #F3DFA6; background: #FFFDF6; }
.hs-hg__card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.hs-hg__title { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hs-hg__title b { font-size: 14px; font-weight: 800; color: var(--hs-ink); word-break: keep-all; }
.hs-hg__title small { font-size: 11px; color: var(--hs-muted); }
.hs-hg__swap { display: grid; grid-template-columns: 1fr 22px 1fr; align-items: stretch; gap: 4px; }
.hs-hg__slot { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; font-variant-numeric: tabular-nums; }
.hs-hg__slot.is-hyu { background: #F3F4F7; }
.hs-hg__slot.is-bo { background: var(--hs-teal-50); }
.hs-hg__slot.is-today { box-shadow: inset 0 0 0 2px var(--hs-teal); }
.hs-hg__lbl { font-size: 10.5px; font-weight: 800; color: #6B7383; }
.hs-hg__slot.is-bo .hs-hg__lbl { color: var(--hs-teal-600); }
.hs-hg__slot b { font-size: 15px; font-weight: 800; color: var(--hs-ink); }
.hs-hg__slot.is-hyu b { color: #6B7383; text-decoration: line-through; text-decoration-color: rgba(107, 115, 131, .5); }
.hs-hg__slot b small { font-size: 11px; font-weight: 700; }
.hs-hg__slot > small { font-size: 11px; color: #3A4256; }
.hs-hg__arrow { align-self: center; width: 18px; height: 18px; fill: none; stroke: #9AA2B3; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.hs-hg__why { display: flex; gap: 8px; margin: 10px 0 0; font-size: 11.5px; color: #3A4256; line-height: 1.5; }
.hs-hg__why span { flex: none; font-weight: 800; color: var(--hs-muted); }
.hs-hg__upd { margin: 6px 0 0; text-align: right; font-size: 10px; color: #9AA2B3; }

/* =====================================================================
 * 비교과 프로그램 이수내역 (annae/isujeung)
 * ===================================================================== */
.hs-ij__total { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.hs-ij__total > div { display: flex; flex-direction: column; align-items: center; padding: 10px 0; border-radius: 10px; background: rgba(255, 255, 255, .12); }
.hs-ij__total b { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-ij__total span { font-size: 10.5px; opacity: .85; }
.hs-ij__year { margin-bottom: 14px; }
.hs-ij__year h3 { display: flex; align-items: baseline; justify-content: space-between; margin: 0 2px 8px; }
.hs-ij__year h3 b { font-size: 16px; font-weight: 800; color: var(--hs-navy); }
.hs-ij__year h3 span { font-size: 11px; font-weight: 400; color: var(--hs-muted); }
.hs-ij__year ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; overflow: hidden; }
.hs-ij__year li { display: flex; gap: 12px; padding: 12px 14px; border-top: 1px solid #F0F2F6; }
.hs-ij__year li:first-child { border-top: 0; }
.hs-ij__date { flex: none; width: 48px; display: flex; flex-direction: column; align-items: center; padding: 6px 0; border-radius: 10px; background: var(--hs-teal-50); align-self: flex-start; font-variant-numeric: tabular-nums; }
.hs-ij__date b { font-size: 13px; font-weight: 800; color: var(--hs-teal-600); }
.hs-ij__date small { font-size: 10px; color: var(--hs-muted); }
.hs-ij__body { flex: 1; min-width: 0; }
.hs-ij__body > b { display: block; font-size: 13px; font-weight: 800; color: var(--hs-ink); line-height: 1.4; word-break: keep-all; overflow-wrap: anywhere; }
.hs-ij__body p { margin: 4px 0 0; font-size: 11.5px; line-height: 1.55; color: #3A4256; word-break: keep-all; overflow-wrap: anywhere; }
.hs-ij__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.hs-ij__meta span { font-size: 10.5px; color: var(--hs-muted); }
.hs-ij__meta em { font-style: normal; font-size: 10.5px; font-weight: 800; padding: 1px 8px; border-radius: 9px; background: #EEF2FA; color: var(--hs-navy-2); }
.hs-ij__skip { margin: 10px 0 0; font-size: 10.5px; opacity: .8; }

/* =====================================================================
 * 공동교육과정 (suup/sc_lms · sc_notify)
 * ===================================================================== */
.hs-sc__items { margin: 0; }
.hs-sc__items dt { margin-top: 12px; font-size: 12px; font-weight: 800; color: var(--hs-ink); }
.hs-sc__items dt:first-child { margin-top: 0; }
.hs-sc__items dd { margin: 4px 0 0; font-size: 11.5px; line-height: 1.65; color: #3A4256; word-break: keep-all; }
.hs-sc__items dd b { color: var(--hs-teal-600); }
.hs-sc__items ul { margin: 0; padding-left: 16px; }
.hs-sc__note { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--hs-paper); font-size: 11px; line-height: 1.6; color: #3A4256; }
.hs-sc__q { margin: 16px 0 8px; padding-top: 14px; border-top: 1px dashed var(--hs-line); font-size: 12.5px; font-weight: 800; color: var(--hs-navy); }
.hs-hb__signhead .hs-jb__label b { display: inline-flex; width: 18px; height: 18px; margin-right: 4px; border-radius: 50%; align-items: center; justify-content: center; background: var(--hs-navy); color: #FFFFFF; font-size: 10px; }

/* =====================================================================
 * 임상실습기숙사 신청내역 (sinchung/paper)
 * ===================================================================== */
.hs-gs__card { margin-bottom: 14px; padding: 16px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-gs__card header { margin-bottom: 12px; }
.hs-gs__card header h2 { margin: 6px 0 2px; font-size: 15px; font-weight: 800; color: var(--hs-ink); line-height: 1.4; word-break: keep-all; }
.hs-gs__card header small { font-size: 11px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-gs__fee { padding: 12px 14px; border-radius: 12px; background: var(--hs-teal-50); }
.hs-gs__fee > div { display: flex; align-items: baseline; justify-content: space-between; }
.hs-gs__fee span { font-size: 11.5px; font-weight: 700; color: #3A4256; }
.hs-gs__fee b { font-size: 22px; font-weight: 800; color: var(--hs-teal-600); font-variant-numeric: tabular-nums; }
.hs-gs__fee b small { font-size: 12px; margin-left: 1px; }
.hs-gs__fee p { margin: 2px 0 0; font-size: 10.5px; color: var(--hs-muted); text-align: right; }
.hs-gs__acc { margin: 10px 0 0; }
.hs-gs__weeks { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 12px; overflow: hidden; }
.hs-gs__weeks li { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid #F0F2F6; font-variant-numeric: tabular-nums; }
.hs-gs__weeks li:first-child { border-top: 0; }
.hs-gs__weeks em { flex: none; width: 34px; font-style: normal; font-size: 11px; font-weight: 800; color: var(--hs-navy); }
.hs-gs__weeks div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.hs-gs__weeks b { font-size: 12px; font-weight: 700; }
.hs-gs__weeks small { font-size: 10.5px; color: var(--hs-muted); }
.hs-gs__weeks span { flex: none; font-size: 12px; font-weight: 700; }
.hs-gs__weeks li.is-sum { background: var(--hs-paper); }
.hs-gs__weeks li.is-sum span { font-size: 13px; font-weight: 800; color: var(--hs-teal-600); }
.hs-gs__who { margin-top: 12px; }

/* =====================================================================
 * 임상실습기숙사 접수·신청서 (sinchung/list2 · form_app)
 * ===================================================================== */
.hs-sa__week { padding: 14px; }
.hs-sa__whead { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.hs-sa__no { flex: none; width: 30px; height: 30px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--hs-navy); color: #FFFFFF; font-size: 13px; font-weight: 800; }
.hs-sa__whead div { display: flex; flex-direction: column; }
.hs-sa__whead b { font-size: 13px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-sa__whead small { font-size: 10.5px; color: var(--hs-muted); }
.hs-sa__week .hs-hb__chips label { min-height: 40px; padding: 0 14px; font-size: 12px; }
.hs-sa__paper { margin: 8px 0 0 !important; }
.hs-gs__weeks em { width: 44px; }

/* 취득성적 : 학기석차 */
.hs-sj__terms a { grid-template-areas: "term gpa" "meta gpa" "rank gpa" !important; }
.hs-sj__rank { grid-area: rank; justify-self: start; margin-top: 4px; padding: 2px 9px; border-radius: 10px; background: #EEF2FA; font-size: 10.5px; color: var(--hs-navy-2); font-variant-numeric: tabular-nums; }
.hs-sj__rank b { font-weight: 800; }
.hs-sj__tsum { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 4px 0 12px; }
.hs-sj__tsum > div { display: flex; flex-direction: column; align-items: center; padding: 10px 0; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-sj__tsum b { font-size: 16px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-sj__tsum b small { font-size: 10.5px; font-weight: 700; color: var(--hs-muted); margin-left: 1px; }
.hs-sj__tsum span { font-size: 10.5px; color: var(--hs-muted); }
.hs-sj__tsum > div.is-rank { background: var(--hs-teal-50); border-color: #CDEDEF; }
.hs-sj__tsum > div.is-rank b { color: var(--hs-teal-600); }
.hs-sj__tsum.is-3 { grid-template-columns: repeat(3, 1fr); }

/* =====================================================================
 * 교직이수신청 (gyojik/sinchung_*)
 * ===================================================================== */
.hs-gj__notice { max-height: 320px; overflow-y: auto; padding-right: 4px; }
.hs-gj__notice table { width: 100% !important; }
.hs-gj__privacy { margin-bottom: 12px; padding: 12px 14px; border-radius: 12px; background: var(--hs-paper); }
.hs-gj__privacy p { margin: 0 0 6px; font-size: 11.5px; line-height: 1.6; color: #3A4256; word-break: keep-all; }
.hs-gj__privacy p:last-child { margin-bottom: 0; }
.hs-gj__privacy b { display: block; font-size: 11.5px; color: var(--hs-ink); }
a.hs-gj__file, a.hs-gj__file:link, a.hs-gj__file:visited {
  display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px;
  border: 1px solid var(--hs-line); background: #FFFFFF; color: var(--hs-ink); text-decoration: none;
}
.hs-gj__file svg { flex: none; width: 20px; height: 20px; fill: none; stroke: #C0343A; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hs-gj__file span { flex: 1; min-width: 0; font-size: 12px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-gj__file em { flex: none; font-style: normal; font-size: 11px; font-weight: 800; color: var(--hs-teal-600); }
.hs-gj__back { margin-top: 8px; }
/* 면접 번호표 */
.hs-mj { margin-bottom: 12px; border-radius: 18px; overflow: hidden; background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 8px 22px rgba(16, 32, 72, .08); }
.hs-mj header { padding: 16px 18px; color: #FFFFFF; background: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 60%, #0E7F8A 100%); }
.hs-mj header span { display: block; font-size: 11px; opacity: .8; }
.hs-mj header b { font-size: 15px; font-weight: 800; }
.hs-mj__big { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 16px; border-bottom: 2px dashed var(--hs-line); }
.hs-mj__big > div { display: flex; flex-direction: column; align-items: center; padding: 12px 6px; border-radius: 14px; background: var(--hs-teal-50); }
.hs-mj__big > div.is-time { grid-column: 1 / -1; background: #EEF2FA; }
.hs-mj__big small { font-size: 11px; color: #3A4256; }
.hs-mj__big b { font-size: 32px; font-weight: 800; color: var(--hs-teal-600); line-height: 1.15; font-variant-numeric: tabular-nums; }
.hs-mj__big .is-time b { font-size: 20px; color: var(--hs-navy); }
.hs-mj__big b em { font-style: normal; font-size: 14px; margin-left: 2px; }
.hs-mj dl { margin: 0; padding: 8px 18px; }
.hs-mj dl > div { display: flex; justify-content: space-between; padding: 6px 0; border-top: 1px solid #F0F2F6; }
.hs-mj dl > div:first-child { border-top: 0; }
.hs-mj dt { font-size: 11.5px; color: var(--hs-muted); }
.hs-mj dd { margin: 0; font-size: 12.5px; font-weight: 700; }
.hs-mj footer { padding: 10px 18px 14px; font-size: 11px; color: var(--hs-muted); text-align: center; }

/* 교원자격무시험검정 (gyojik/seoryu_step1) */
a.hs-sr1__go, a.hs-sr1__go:link, a.hs-sr1__go:visited {
  display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding: 16px; border-radius: 16px;
  background: var(--hs-teal); color: #FFFFFF; text-decoration: none; box-shadow: 0 6px 16px rgba(14, 154, 167, .25);
}
.hs-sr1__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.hs-sr1__txt b { font-size: 14px; font-weight: 800; }
.hs-sr1__txt small { font-size: 11px; opacity: .9; }
.hs-sr1__bar { display: flex; gap: 4px; margin-top: 6px; }
.hs-sr1__bar i { flex: 1; height: 5px; border-radius: 3px; background: rgba(255, 255, 255, .3); }
.hs-sr1__bar i.on { background: #FFFFFF; }
.hs-sr1__go svg { flex: none; width: 20px; height: 20px; fill: none; stroke: #FFFFFF; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* 임상실습 면역서류 - 실습생정보 : 전화번호·주소 입력칸 글자 작게 */
#hsIs0 input[style*="border: 0"] { font-size: 12px !important; min-height: 34px; padding: 5px 10px !important; }

/* =====================================================================
 * 교원자격무시험 자가검정 (gyojik/qual*)
 * ===================================================================== */
.hs-qv__wait { padding-top: 28px; }
.hs-qv__spin { width: 46px; height: 46px; margin: 0 auto 14px; border-radius: 50%; border: 4px solid var(--hs-teal-50); border-top-color: var(--hs-teal); animation: hsQvSpin .9s linear infinite; }
@keyframes hsQvSpin { to { transform: rotate(360deg); } }
.hs-qv__sum { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; padding: 16px; border-radius: 16px; color: #FFFFFF; background: linear-gradient(135deg, #7A5A00 0%, #B07D00 100%); }
.hs-qv__sum.is-ok { background: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 55%, #0E7F8A 100%); }
.hs-qv__ring { flex: none; width: 72px; height: 72px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: radial-gradient(closest-side, rgba(0,0,0,.18) 78%, transparent 80% 100%), conic-gradient(#FFFFFF calc(var(--p) * 1%), rgba(255,255,255,.25) 0); }
.hs-qv__ring b { font-size: 24px; font-weight: 800; }
.hs-qv__ring small { font-size: 12px; opacity: .85; }
.hs-qv__state { margin: 0 0 4px; font-size: 15px; font-weight: 800; }
.hs-qv__meta { margin: 0; font-size: 11px; opacity: .85; }
.hs-qv__sec ul { list-style: none; margin: 0; padding: 0; }
.hs-qv__sec li { padding: 10px 0; border-top: 1px solid #F0F2F6; }
.hs-qv__sec li:first-child { border-top: 0; padding-top: 0; }
.hs-qv__row { display: flex; align-items: center; gap: 8px; }
.hs-qv__name { flex: 1; min-width: 0; font-size: 12px; font-weight: 700; color: var(--hs-ink); word-break: keep-all; }
.hs-qv__val { flex: none; font-size: 11px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-qv__val b { font-size: 14px; font-weight: 800; color: var(--hs-ink); }
.hs-qv__sec li.is-no .hs-qv__val b { color: #C0343A; }
.hs-qv__mark { flex: none; min-width: 38px; height: 22px; padding: 0 8px; box-sizing: border-box; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; font-size: 10.5px; font-weight: 800; }
.hs-qv__sec li.is-ok .hs-qv__mark { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-qv__sec li.is-no .hs-qv__mark { background: #FDECEC; color: #C0343A; }
.hs-qv__bar { display: block; height: 5px; margin-top: 7px; border-radius: 3px; background: #EEF1F5; overflow: hidden; }
.hs-qv__bar > i { display: block; height: 100%; border-radius: 3px; background: var(--hs-teal); }
.hs-qv__sec li.is-no .hs-qv__bar > i { background: #E07A7F; }
.hs-qv__gw { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; background: #FFFFFF; overflow: hidden; }
.hs-qv__gw li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-top: 1px solid #F0F2F6; }
.hs-qv__gw li:first-child { border-top: 0; }
.hs-qv__gw li.is-no { background: #FFF8F8; }
.hs-qv__gmark { flex: none; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }
.hs-qv__gw li.is-ok .hs-qv__gmark { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-qv__gw li.is-no .hs-qv__gmark { background: #FDECEC; color: #C0343A; }
.hs-qv__gw li > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-qv__gw b { font-size: 12.5px; font-weight: 700; word-break: keep-all; }
.hs-qv__gw small { font-size: 10.5px; color: var(--hs-muted); }
.hs-qv__gw small.is-red { color: #C0343A; font-weight: 800; }
.hs-qv__gw em { flex: none; font-style: normal; font-size: 11.5px; font-weight: 800; color: var(--hs-ink); }
/* 자가검정 원형 진행 : 가운데 숫자가 가려지지 않도록 안쪽 원을 따로 그림 */
.hs-qv__ring { position: relative; background: conic-gradient(#FFFFFF calc(var(--p) * 1%), rgba(255,255,255,.28) 0) !important; }
.hs-qv__ring::before { content: ""; position: absolute; inset: 7px; border-radius: 50%; background: #946C00; }
.hs-qv__sum.is-ok .hs-qv__ring::before { background: #1E4688; }
.hs-qv__ring b, .hs-qv__ring small { position: relative; z-index: 1; }

/* =====================================================================
 * 스터디룸 예약 신청 (study_room/sr_form)
 * ===================================================================== */
.hs-srf__date { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; }
.hs-cal__nav.is-off { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--hs-paper); color: #C8CED8; }
.hs-cal__nav.is-off svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.hs-srf__day { display: flex; flex-direction: column; align-items: center; }
.hs-srf__day b { font-size: 17px; font-weight: 800; color: var(--hs-navy); }
.hs-srf__day small { font-size: 11px; color: var(--hs-muted); }
.hs-srf__rooms { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.hs-srf__rooms a, .hs-srf__rooms a:link, .hs-srf__rooms a:visited {
  display: flex; align-items: center; justify-content: center; height: 44px; border-radius: 12px;
  border: 1px solid #CBD2DE; background: #FFFFFF; color: #3A4256; font-size: 12.5px; font-weight: 800; text-decoration: none;
}
.hs-srf__rooms a.is-on { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF; }
.hs-srf__thead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px; margin-bottom: 12px; }
.hs-srf__thead span { font-size: 10.5px; color: var(--hs-muted); }
.hs-srf__thead b { color: var(--hs-teal-600); font-size: 13px; }
.hs-srf__slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.hs-srf__slots input { display: none !important; }
.hs-srf__slots label {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; height: 52px; border-radius: 12px;
  border: 1px solid #CBD2DE; background: #FFFFFF; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.hs-srf__slots label b { font-size: 13px; font-weight: 800; color: var(--hs-ink); }
.hs-srf__slots label small { font-size: 9.5px; color: var(--hs-muted); }
.hs-srf__slots input:checked + label { background: var(--hs-teal); border-color: var(--hs-teal); }
.hs-srf__slots input:checked + label b, .hs-srf__slots input:checked + label small { color: #FFFFFF; }
.hs-srf__slots label.is-taken { background: #E5F5EA; border-color: #C8E8D2; cursor: default; }
.hs-srf__slots label.is-taken b, .hs-srf__slots label.is-taken small { color: #6E9C7E; }
.hs-srf__slots label.is-holi { background: #FFF8E1; border-color: #F3DFA6; cursor: default; }
.hs-srf__slots label.is-holi b, .hs-srf__slots label.is-holi small { color: #A08530; }
.hs-srf__slots input:disabled:not(:checked) + label:not(.is-taken):not(.is-holi) { background: #F3F4F7; border-color: #E6EAF0; cursor: default; }
.hs-srf__mates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hs-srf__add { margin-top: 8px; }

/* 국가근로 신청서 (janghak/sinchung) */
.hs-gr__seg { margin-bottom: 10px; }
.hs-gr__places { display: grid; gap: 6px; }
.hs-gr__places input { display: none !important; }
.hs-gr__places label { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 10px 12px; border: 1px solid #CBD2DE; border-radius: 12px; background: #FFFFFF; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.hs-gr__places label b { font-size: 12.5px; font-weight: 800; color: var(--hs-ink); }
.hs-gr__places label em { font-style: normal; white-space: nowrap; font-size: 10.5px; font-weight: 700; color: var(--hs-navy-2); align-self: center; }
.hs-gr__places label small { grid-column: 1 / -1; font-size: 10.5px; color: var(--hs-muted); }
.hs-gr__places input:checked + label { border-color: var(--hs-teal); background: var(--hs-teal-50); box-shadow: inset 0 0 0 1px var(--hs-teal); }
.hs-gr__places input:checked + label b { color: var(--hs-teal-600); }
/* 국가근로 신청결과 : 배정 근로지 */
.hs-gr__assign { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0 0 12px; padding: 18px 16px; border-radius: 16px; background: var(--hs-teal-50); border: 1px solid #CDEDEF; text-align: center; }
.hs-gr__alabel { margin: 0; font-size: 11px; color: var(--hs-teal-600); font-weight: 700; }
.hs-gr__assign b { font-size: 20px; font-weight: 800; color: var(--hs-ink); word-break: keep-all; }
.hs-jb__result + .hs-jb__card, .hs-jb__result + .hs-gr__assign, .hs-jb__result + section { margin-top: 12px; }

/* =====================================================================
 * 생활관 입사 배정표 · 입사서류 (gisuksa/gs1_*)
 * ===================================================================== */
.hs-gs1__grid { grid-template-columns: 1fr 1fr; }
.hs-gs1__me { margin: 0; }
.hs-gs1__me > div { display: flex; gap: 8px; padding: 2px 0; font-size: 11.5px; }
.hs-gs1__me dt { flex: none; width: 34px; color: var(--hs-muted); }
.hs-gs1__me dd { margin: 0; font-weight: 700; color: var(--hs-ink); }
.hs-gs1__room { margin-bottom: 10px; border-radius: 16px; overflow: hidden; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-gs1__room header { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; background: var(--hs-navy); color: #FFFFFF; }
.hs-gs1__room header span { font-size: 12.5px; font-weight: 800; }
.hs-gs1__room header small { font-size: 11px; opacity: .85; font-variant-numeric: tabular-nums; }
.hs-gs1__rbody { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px; }
.hs-gs1__rbody > div { display: flex; flex-direction: column; align-items: center; padding: 12px 6px; border-radius: 12px; background: var(--hs-paper); text-align: center; }
.hs-gs1__rbody > div.is-room { background: var(--hs-teal-50); }
.hs-gs1__rbody small { font-size: 11px; color: var(--hs-muted); }
.hs-gs1__rbody b { font-size: 16px; font-weight: 800; color: var(--hs-ink); word-break: keep-all; }
.hs-gs1__rbody .is-room b { font-size: 24px; color: var(--hs-teal-600); }
.hs-gs1__pt { display: flex; flex-direction: column; align-items: center; margin-bottom: 12px; padding: 18px; border-radius: 16px; background: var(--hs-paper); border: 1px solid var(--hs-line); }
.hs-gs1__pt.is-on { background: #FDECEC; border-color: #F3C3C5; }
.hs-gs1__pt small { font-size: 11px; color: var(--hs-muted); }
.hs-gs1__pt b { font-size: 32px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; line-height: 1.2; }
.hs-gs1__pt.is-on b { color: #C0343A; }
.hs-gs1__pt b em { font-style: normal; font-size: 14px; margin-left: 2px; }
.hs-gs1__pt span { font-size: 11px; color: var(--hs-muted); }
.hs-gs1__prev { width: 100%; max-height: 260px; object-fit: contain; margin-top: 10px; border-radius: 12px; background: var(--hs-paper); }

/* 외박·외출 신청 (gisuksa/gs2_*) */
.hs-srf__day small + b { margin-top: 1px; }
.hs-gs2__days { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.hs-gs2__days input { display: none !important; }
.hs-gs2__days label { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 50px; border-radius: 12px; border: 1px solid #CBD2DE; background: #FFFFFF; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.hs-gs2__days label b { font-size: 13px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-gs2__days label small { font-size: 10px; color: var(--hs-muted); }
.hs-gs2__days label.is-sun b, .hs-gs2__days label.is-sun small { color: #D9363E; }
.hs-gs2__days label.is-sat b, .hs-gs2__days label.is-sat small { color: #2E6BD6; }
.hs-gs2__days input:checked + label { background: var(--hs-teal); border-color: var(--hs-teal); }
.hs-gs2__days input:checked + label b, .hs-gs2__days input:checked + label small { color: #FFFFFF; }
.hs-gs2__item { margin-bottom: 10px; padding: 14px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--hs-line); }
.hs-gs2__item.is-active { border-color: #A9DDE1; box-shadow: 0 4px 12px rgba(14, 154, 167, .08); }
.hs-gs2__item header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.hs-gs2__kind { font-size: 13px; font-weight: 800; color: var(--hs-navy); }
.hs-gs2__when { margin: 0 0 8px; font-size: 12px; color: #3A4256; font-variant-numeric: tabular-nums; }
.hs-gs2__when b { font-size: 15px; font-weight: 800; color: var(--hs-ink); }
.hs-gs2__when span { margin: 0 4px; color: #9AA2B3; }
.hs-gs2__why { display: flex; gap: 8px; margin: 0 0 8px; padding: 8px 10px; border-radius: 10px; background: var(--hs-paper); font-size: 11.5px; color: #3A4256; line-height: 1.5; }
.hs-gs2__why span { flex: none; font-weight: 800; color: var(--hs-muted); }
.hs-gs2__why.is-red { background: #FDECEC; color: #8F1F24; }
.hs-gs2__why.is-red span { color: #C0343A; }
.hs-gs2__item .hs-btn { margin-top: 4px; }
.hs-jb__badge.is-no { background: #FDECEC; color: #C0343A; }

/* 시설 유지보수 신청 (gisuksa/gs3_*) */
.hs-gs3__list { list-style: none; margin: 0 0 12px; padding: 0; }
.hs-gs3__list li { margin-bottom: 8px; }
.hs-gs3__list a, .hs-gs3__list a:link, .hs-gs3__list a:visited { display: flex; gap: 12px; padding: 10px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--hs-line); color: var(--hs-ink); text-decoration: none; }
.hs-gs3__list img { flex: none; width: 64px; height: 64px; border-radius: 10px; object-fit: cover; background: var(--hs-paper); }
.hs-gs3__list a > div { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.hs-gs3__list p { margin: 0; font-size: 12.5px; font-weight: 700; line-height: 1.4; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; word-break: keep-all; }
.hs-gs3__list small { font-size: 10.5px; color: var(--hs-muted); }
a.hs-gs3__photo, a.hs-gs3__photo:link { display: block; text-align: center; text-decoration: none; }
.hs-gs3__photo img { display: block; width: 100%; max-height: 360px; object-fit: contain; border-radius: 10px; background: var(--hs-paper); }
.hs-gs3__photo small { display: block; margin-top: 6px; font-size: 10.5px; color: var(--hs-muted); }

/* =====================================================================
 * 학생 홈 (skin/home.php)
 * ===================================================================== */
.hs-home { padding: calc(var(--hs-bar-h) + 10px) 12px 24px; box-sizing: border-box; }
.hs-home__me { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding: 16px; border-radius: 18px; color: #FFFFFF;
  background: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 55%, #0E7F8A 100%); box-shadow: 0 10px 24px rgba(27, 58, 122, .18); }
.hs-home__hello { flex: 1; min-width: 0; }
.hs-home__hello p { margin: 0 0 2px; font-size: 11px; opacity: .8; }
.hs-home__hello b { display: block; font-size: 17px; font-weight: 800; letter-spacing: -0.3px; }
.hs-home__hello span { display: block; margin-top: 4px; font-size: 11.5px; opacity: .9; }
a.hs-home__card, a.hs-home__card:link, a.hs-home__card:visited { flex: none; width: 58px; height: 58px; border-radius: 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: rgba(255, 255, 255, .16); color: #FFFFFF; text-decoration: none; }
.hs-home__card svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.hs-home__card small { font-size: 10px; font-weight: 700; }
.hs-home__box, a.hs-home__box:link, a.hs-home__box:visited { display: block; margin-bottom: 12px; padding: 14px 16px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 4px 14px rgba(16, 32, 72, .05); color: var(--hs-ink); text-decoration: none; }
.hs-home__box header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.hs-home__box header b { font-size: 14px; font-weight: 800; color: var(--hs-navy); }
.hs-home__box header a, .hs-home__box header span { display: inline-flex; align-items: center; gap: 2px; font-size: 11px; font-weight: 700; color: var(--hs-muted); text-decoration: none; }
.hs-home__box header svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hs-home__ev { list-style: none; margin: 0; padding: 0; }
.hs-home__ev li { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-top: 1px solid #F0F2F6; font-size: 12px; }
.hs-home__ev li:first-child { border-top: 0; padding-top: 0; }
.hs-home__ev i { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--hs-teal); }
.hs-home__ev li.g5 i { background: #D9363E; }
.hs-home__ev li.g6 i { background: var(--hs-navy-2); }
.hs-home__ev time { flex: none; min-width: 92px; font-size: 11px; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-home__ev span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #262D3B; }
.hs-home__ev span.is-bold { font-weight: 800; }
.hs-home__ev li.g5 span { color: #C0343A; }
.hs-home__ev li.is-now time { color: var(--hs-teal-600); font-weight: 800; }
.hs-home__menu { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px 4px; margin-bottom: 12px; padding: 14px 6px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 4px 14px rgba(16, 32, 72, .05); }
.hs-home__menu a, .hs-home__menu a:link, .hs-home__menu a:visited { display: flex; flex-direction: column; align-items: center; gap: 5px; text-decoration: none; color: #3A4256; -webkit-tap-highlight-color: transparent; }
.hs-home__mi { width: 48px; height: 48px; border-radius: 15px; display: flex; align-items: center; justify-content: center; background: var(--hs-paper); }
.hs-home__mi img { width: 32px; height: 32px; object-fit: contain; }
.hs-home__mi svg { width: 26px; height: 26px; fill: none; stroke: var(--hs-teal-600); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hs-home__menu small { font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.hs-home__menu a:active .hs-home__mi { background: var(--hs-teal-50); }
.hs-home__rings { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.hs-home__rings > div { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.hs-home__ring { position: relative; width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), #EEF1F5 0); }
.hs-home__ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: #FFFFFF; }
.hs-home__ring b { position: relative; font-size: 14px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-home__rings small { font-size: 11px; font-weight: 700; color: #3A4256; }
.hs-home__rings em { font-style: normal; font-size: 10px; color: var(--hs-muted); margin-top: -3px; }
.hs-home__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.hs-home__week > div { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 0 8px; border-radius: 12px; }
.hs-home__week small { font-size: 10.5px; font-weight: 700; color: #6B7383; }
.hs-home__week b { width: 28px; height: 28px; line-height: 28px; border-radius: 50%; font-size: 13px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; }
.hs-home__week .is-sun small, .hs-home__week .is-sun b { color: #D9363E; }
.hs-home__week .is-sat small, .hs-home__week .is-sat b { color: #2E6BD6; }
.hs-home__week .is-today { background: var(--hs-teal-50); }
.hs-home__week .is-today b { background: var(--hs-teal); color: #FFFFFF !important; }
.hs-home__week i { font-style: normal; font-size: 9.5px; font-weight: 800; padding: 1px 5px; border-radius: 8px; }
.hs-home__week i.a1 { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-home__week .is-today i.a1 { background: #FFFFFF; }
.hs-home__week i.a2 { background: #FFF4DB; color: #8A6100; }
.hs-home__week i.a3 { background: #FDECEC; color: #C0343A; }
.hs-home__share { list-style: none; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px dashed var(--hs-line); }
.hs-home__share a, .hs-home__share a:link, .hs-home__share a:visited { display: flex; gap: 8px; padding: 4px 0; font-size: 11.5px; color: #3A4256; text-decoration: none; }
.hs-home__share time { flex: none; color: var(--hs-muted); font-variant-numeric: tabular-nums; }
.hs-home__share span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 홈 : 바로가기 아이콘 (선 아이콘 + 메뉴별 색) */
.hs-home__mi { width: 50px; height: 50px; border-radius: 16px; }
.hs-home__mi svg { width: 26px; height: 26px; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hs-home__mi.c1  { background: #E6F4F5; } .hs-home__mi.c1 svg  { stroke: #0B8592; }
.hs-home__mi.c2  { background: #E8F6EC; } .hs-home__mi.c2 svg  { stroke: #2F9B57; }
.hs-home__mi.c3  { background: #EEF0FC; } .hs-home__mi.c3 svg  { stroke: #4B5BD6; }
.hs-home__mi.c4  { background: #FFF4DE; } .hs-home__mi.c4 svg  { stroke: #C98A0B; }
.hs-home__mi.c5  { background: #FCEBF1; } .hs-home__mi.c5 svg  { stroke: #D2497A; }
.hs-home__mi.c6  { background: #EEF2FA; } .hs-home__mi.c6 svg  { stroke: #1F4A8C; }
.hs-home__mi.c7  { background: #FDEEE8; } .hs-home__mi.c7 svg  { stroke: #D2643A; }
.hs-home__mi.c8  { background: #F2ECFB; } .hs-home__mi.c8 svg  { stroke: #7A4FC4; }
.hs-home__mi.c9  { background: #EDF3F7; } .hs-home__mi.c9 svg  { stroke: #4A6A82; }
.hs-home__mi.c10 { background: #E6F4F5; } .hs-home__mi.c10 svg { stroke: #0B8592; }
.hs-home__mi.c10 svg circle { fill: #0B8592; stroke: none; }
.hs-home__mi.c3 svg circle { fill: #4B5BD6; stroke: none; }
.hs-home__menu a:active .hs-home__mi { transform: scale(.94); }
.hs-home__mi { transition: transform .12s; }

/* 홈 : 취득학점 (한 줄 요약, 누르면 취득성적) */
a.hs-home__credit2, a.hs-home__credit2:link, a.hs-home__credit2:visited {
  display: flex; align-items: center; gap: 6px; margin-bottom: 12px; padding: 10px 10px 10px 14px; border-radius: 16px;
  background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 4px 14px rgba(16, 32, 72, .05); color: var(--hs-ink); text-decoration: none;
}
.hs-home__ctitle { flex: none; width: 34px; font-size: 11.5px; font-weight: 800; color: var(--hs-navy); line-height: 1.25; word-break: keep-all; }
.hs-home__citem { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 0 2px; }
.hs-home__citem small { font-size: 9.5px; color: var(--hs-muted); white-space: nowrap; }
.hs-home__citem b { font-size: 13.5px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hs-home__citem b em { font-style: normal; font-size: 9.5px; font-weight: 700; color: var(--hs-muted); margin-left: 1px; }
.hs-home__citem i { display: block; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--c) var(--p), #EEF1F5 var(--p)); }
.hs-home__cgo { flex: none; width: 16px; height: 16px; fill: none; stroke: #9AA2B3; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hs-home__ctitle { width: 26px; word-break: break-all; text-align: center; margin-right: 4px; }
.hs-home__citem i.is-free { background: transparent; }
.hs-sj__nurank { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.2); display: flex; justify-content: space-between; align-items: baseline; font-size: 11.5px; opacity: .95; } .hs-sj__nurank b { margin-left: auto; margin-right: 3px; font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; }

/* 교직원 홈 (skin/home2.php) */
.hs-home__menu.is-4 { grid-template-columns: repeat(4, 1fr); }
.hs-home__ev em { flex: none; font-style: normal; font-size: 9.5px; font-weight: 800; padding: 1px 6px; border-radius: 8px; background: #EEF1F5; color: #6B7383; }
.hs-home__ev li.g4 em { background: var(--hs-teal-50); color: var(--hs-teal-600); }
.hs-home__ev li.g5 em { background: #FDECEC; color: #C0343A; }
.hs-home__ev li.g6 em { background: #EEF2FA; color: var(--hs-navy-2); }
.hs-home__ev li.g2 i { background: #D2497A; } .hs-home__ev li.g3 i { background: #C98A0B; } .hs-home__ev li.g1 i { background: #6B7383; }
.hs-home__week i.is-dot { width: 5px; height: 5px; padding: 0; border-radius: 50%; background: var(--hs-teal); }

/* =====================================================================
 * 사진변경신청 (user/sajin · sajinform)
 * ===================================================================== */
.hs-pc__hero { display: flex; gap: 14px; align-items: center; margin-bottom: 12px; padding: 16px; border-radius: 18px; color: #FFFFFF; background: linear-gradient(135deg, #1B3A7A 0%, #1F4A8C 55%, #0E7F8A 100%); }
.hs-pc__hero img { flex: none; width: 78px; height: 100px; object-fit: cover; border-radius: 10px; background: rgba(255,255,255,.15); border: 2px solid rgba(255,255,255,.6); }
.hs-pc__hero > div { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.hs-pc__hero p { margin: 0; font-size: 11px; opacity: .8; }
.hs-pc__hero b { font-size: 17px; font-weight: 800; }
.hs-pc__hero small { font-size: 11px; opacity: .9; line-height: 1.5; }
.hs-pc__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); position: relative; }
.hs-pc__steps::before { content: ""; position: absolute; left: 16%; right: 16%; top: 15px; height: 2px; background: var(--hs-line); }
.hs-pc__steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.hs-pc__steps span { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #FFFFFF; border: 2px solid #CBD2DE; font-size: 12px; font-weight: 800; color: #9AA2B3; box-sizing: border-box; }
.hs-pc__steps li.is-done span { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF; }
.hs-pc__steps small { font-size: 11px; color: #3A4256; font-weight: 700; }
.hs-pc__rules { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.hs-pc__rules li { position: relative; padding: 8px 10px 8px 34px; border-radius: 10px; font-size: 11.5px; line-height: 1.5; color: #262D3B; word-break: keep-all; }
.hs-pc__rules li::before { position: absolute; left: 10px; top: 8px; width: 16px; height: 16px; border-radius: 50%; font-size: 10px; font-weight: 800; color: #FFFFFF; display: flex; align-items: center; justify-content: center; }
.hs-pc__rules li.ok { background: var(--hs-teal-50); } .hs-pc__rules li.ok::before { content: "✓"; background: var(--hs-teal); }
.hs-pc__rules li.no { background: #FDECEC; } .hs-pc__rules li.no::before { content: "✕"; background: #D9363E; }
.hs-pc__pick { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.hs-pc__pbtn { position: relative; display: flex; align-items: center; justify-content: center; gap: 6px; height: 48px; border-radius: 12px; border: 1px solid var(--hs-teal); background: #FFFFFF; color: var(--hs-teal-600); font-size: 12.5px; font-weight: 800; cursor: pointer; overflow: hidden; }
.hs-pc__pbtn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.hs-pc__pbtn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hs-pc__pbtn:active { background: var(--hs-teal-50); }

/* =====================================================================
 * 기숙사생 관리 (gisuksa_dept/gwanri : 남·여 기숙사)
 * ===================================================================== */
.hs-gd__tabs { display: flex; gap: 6px; margin: 0 12px 12px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.hs-gd__tabs::-webkit-scrollbar { display: none; }
.hs-gd__tabs a, .hs-gd__tabs a:link, .hs-gd__tabs a:visited { flex: none; height: 36px; padding: 0 14px; border-radius: 18px; display: inline-flex; align-items: center; border: 1px solid #CBD2DE; background: #FFFFFF; color: #3A4256; font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.hs-gd__tabs a.is-on { background: var(--hs-navy); border-color: var(--hs-navy); color: #FFFFFF; }
.hs-gd__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.hs-gd__chips a, .hs-gd__chips a:link, .hs-gd__chips a:visited { height: 34px; padding: 0 12px; border-radius: 10px; display: inline-flex; align-items: center; border: 1px solid #CBD2DE; background: #FFFFFF; color: #3A4256; font-size: 12px; font-weight: 700; text-decoration: none; }
.hs-gd__chips a.is-on { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF; }
.hs-gd__stat { display: flex; align-items: center; gap: 18px; padding: 18px; border-radius: 18px; background: #FFFFFF; border: 1px solid var(--hs-line); box-shadow: 0 4px 14px rgba(16, 32, 72, .05); }
.hs-gd__donut { position: relative; flex: none; width: 128px; height: 128px; border-radius: 50%; }
.hs-gd__donut span { position: absolute; inset: 22px; border-radius: 50%; background: #FFFFFF; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hs-gd__donut b { font-size: 26px; font-weight: 800; color: var(--hs-ink); font-variant-numeric: tabular-nums; line-height: 1.1; }
.hs-gd__donut small { font-size: 11px; color: var(--hs-muted); }
.hs-gd__stat ul { flex: 1; list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hs-gd__stat li { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.hs-gd__stat li i { flex: none; width: 10px; height: 10px; border-radius: 3px; }
.hs-gd__stat li span { flex: 1; color: #3A4256; font-weight: 700; }
.hs-gd__stat li b { font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-gd__stat li small { width: 34px; text-align: right; font-size: 10.5px; color: var(--hs-muted); }
.hs-gd__search { display: grid; grid-template-columns: 1fr 1fr auto; gap: 6px; }
.hs-gd__search.is-2 { grid-template-columns: 1fr auto; }
.hs-gd__search .hs-jb__input { height: 44px; font-size: 14px; min-width: 0; }
.hs-gd__search .hs-btn { height: 44px; padding: 0 16px; }
.hs-gd__people { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.hs-gd__people li { border-top: 1px solid #F0F2F6; }
.hs-gd__people li:first-child { border-top: 0; }
.hs-gd__people a, .hs-gd__people a:link, .hs-gd__people a:visited { display: flex; align-items: center; gap: 12px; padding: 10px 12px; color: var(--hs-ink); text-decoration: none; }
.hs-gd__room { flex: none; width: 58px; padding: 6px 0; border-radius: 10px; background: var(--hs-teal-50); display: flex; flex-direction: column; align-items: center; }
.hs-gd__room b { font-size: 13px; font-weight: 800; color: var(--hs-teal-600); }
.hs-gd__room small { font-size: 9.5px; color: var(--hs-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 54px; }
.hs-gd__who { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hs-gd__who b { font-size: 13px; font-weight: 800; }
.hs-gd__who small { font-size: 10.5px; color: var(--hs-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hs-gd__who em { font-style: normal; font-size: 10.5px; color: var(--hs-navy-2); }
.hs-gd__people svg { flex: none; width: 16px; height: 16px; fill: none; stroke: #9AA2B3; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hs-gd__tabs { gap: 4px; } .hs-gd__tabs a, .hs-gd__tabs a:link, .hs-gd__tabs a:visited { flex: 1 0 auto; padding: 0 8px; justify-content: center; font-size: 11.5px; }

/* 외박일지대장 (gisuksa_dept/ilji_*) */
.hs-gd__tcnt { margin-left: 4px; font-size: 10.5px; font-weight: 800; opacity: .75; }
.hs-il__filter { padding: 12px; }
.hs-il__filter .hs-gd__chips { margin-bottom: 10px; }
.hs-gd__chips input { display: none !important; }
.hs-gd__chips label { height: 34px; padding: 0 12px; border-radius: 10px; display: inline-flex; align-items: center; border: 1px solid #CBD2DE; background: #FFFFFF; color: #3A4256; font-size: 12px; font-weight: 700; cursor: pointer; }
.hs-gd__chips input:checked + label { background: var(--hs-teal); border-color: var(--hs-teal); color: #FFFFFF; }
.hs-il__dates { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 6px; margin-bottom: 8px; }
.hs-il__dates .hs-jb__input { height: 42px; font-size: 13px; min-width: 0; }
.hs-il__dates span { color: var(--hs-muted); }
.hs-il__list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--hs-line); border-radius: 14px; overflow: hidden; background: #FFFFFF; }
.hs-il__list li { border-top: 1px solid #F0F2F6; }
.hs-il__list li:first-child { border-top: 0; }
.hs-il__list a, .hs-il__list a:link, .hs-il__list a:visited { display: flex; align-items: center; gap: 12px; padding: 10px 12px; color: var(--hs-ink); text-decoration: none; }
.hs-il__list .hs-gd__who b .hs-jb__badge { height: 18px; padding: 0 7px; font-size: 10px; vertical-align: 1px; margin-left: 4px; }
.hs-il__list svg { flex: none; width: 16px; height: 16px; fill: none; stroke: #9AA2B3; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.hs-il__pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 12px; }
.hs-il__pager .hs-btn { height: 38px; padding: 0 16px; border: 1px solid #CBD2DE; border-radius: 10px; background: #FFFFFF; color: #3A4256; font-size: 12px; font-weight: 800; }
.hs-il__pager span { font-size: 12px; color: var(--hs-muted); }
.hs-il__act { margin-top: 12px; }
.hs-ss__acts { display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 6px; } .hs-ss__acts .hs-btn { height: 44px; padding: 0 8px; font-size: 12.5px; }
