/* =========================
   50mm INDEX ONLY (idx50)
   ========================= */
.idx50{
  --primary-blue:#3b82f6;
  --border-color:#eef2f6;
}

/* 전역(인덱스 영역만) */
.idx50 *{
  font-family:'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif !important;
  letter-spacing:-0.02em;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* =========================
   HERO
   ========================= */
.idx50 .hero-card{
  background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);
  border:none;
  position:relative;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.10);
}
.idx50 .hero-card::after{
  content:'';
  position:absolute;
  top:-50%;
  right:-20%;
  width:450px;
  height:450px;
  background:radial-gradient(circle, rgba(59,130,246,.10) 0%, rgba(255,255,255,0) 70%);
  pointer-events:none;
}

/* HERO 버튼 컨테이너(기본) */
.idx50 .hero-card .d-flex.flex-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}
.idx50 .hero-card .d-flex.flex-wrap .btn{
  width:auto;
  min-width:160px;
  white-space:nowrap;
}

/* =========================
   STUDY CARD (기본)
   ========================= */
.idx50 a.study-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  height:100%;
  text-decoration:none !important;
  transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s cubic-bezier(.4,0,.2,1);
}
.idx50 a.study-card:hover{
  transform:translateY(-5px);
  box-shadow:0 12px 24px rgba(0,0,0,.06);
}
.idx50 a.study-card .icon-box{
  width:44px;
  height:44px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.2rem;
  margin-bottom:1rem;
}

/* =========================
   STUDY CARD COLOR (보색) - 카드/아이콘 최종 덮어쓰기
   ========================= */
.idx50 a.study-card.card-history{
  background:linear-gradient(135deg, rgba(239,68,68,0.10), rgba(34,211,238,0.10));
  border-color:rgba(239,68,68,0.28);
}
.idx50 a.study-card.card-practice{
  background:linear-gradient(135deg, rgba(37,99,235,0.10), rgba(249,115,22,0.10));
  border-color:rgba(37,99,235,0.28);
}
.idx50 a.study-card.card-exam{
  background:linear-gradient(135deg, rgba(22,163,74,0.10), rgba(217,70,239,0.10));
  border-color:rgba(22,163,74,0.28);
}

.idx50 a.study-card.card-history:hover{ box-shadow:0 14px 30px rgba(239,68,68,0.18); }
.idx50 a.study-card.card-practice:hover{ box-shadow:0 14px 30px rgba(37,99,235,0.18); }
.idx50 a.study-card.card-exam:hover{ box-shadow:0 14px 30px rgba(22,163,74,0.18); }

.idx50 a.study-card.card-history .icon-box{ background:rgba(239,68,68,0.18); color:#e11d48; }
.idx50 a.study-card.card-practice .icon-box{ background:rgba(37,99,235,0.18); color:#2563eb; }
.idx50 a.study-card.card-exam .icon-box{ background:rgba(22,163,74,0.18); color:#16a34a; }

/* =========================
   BOARD BOX + LATEST
   ========================= */
.idx50 .board-box{
  background:#fff;
  border-radius:20px;
  height:100%;
  border:1px solid var(--border-color);
  padding:1.5rem;
  box-shadow:0 2px 4px rgba(0,0,0,.02);
  overflow:hidden;
}
.idx50 .point-bar-sm{
  display:inline-block;
  width:3px;
  height:15px;
  background:var(--primary-blue);
  border-radius:10px;
  margin-right:10px;
  vertical-align:middle;
}

.idx50 .latest-wrap ul{ list-style:none; padding:0; margin:0; }
.idx50 .latest-wrap li{
  padding:10px 0;
  border-bottom:1px solid #f8fafc;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:0.92rem;
  min-width:0;
}
.idx50 .latest-wrap li:last-child{ border-bottom:none; padding-bottom:0; }

.idx50 .latest-wrap a{
  flex:1 1 auto;
  min-width:0;
  margin-right:10px;
  text-decoration:none !important;
  color:#475569;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.idx50 .latest-wrap a:hover{ color:var(--primary-blue); }

.idx50 .latest-wrap .lt_date,
.idx50 .latest-wrap time.date,
.idx50 .latest-wrap .date{
  flex:0 0 auto;
  white-space:nowrap;
  font-size:0.75rem;
  color:#94a3b8;
}

/* 관리자 버튼 */
.idx50 .btn-crawler{
  white-space:nowrap !important;
  word-break:keep-all !important;
  font-size:0.85rem !important;
  padding:0.5rem 1rem !important;
  display:inline-flex !important;
  align-items:center;
}

/* =========================
   HEADER LOGO (사이트 공통)
   ========================= */
.navbar-brand{
  display:flex;
  align-items:center;
  gap:8px;
}
.navbar-brand .logo-title{ font-size:165%; }
.navbar-brand .logo-sub{
  display:block !important;
  width:100%;
  margin-top:3px;
  margin-left:0 !important;
  font-size:0.8rem;
  line-height:1.25;
  opacity:.85;
}

/* =========================
   HEADER MENU COLOR FIX (파란색 방지)
   ========================= */
.site-head .nav-link{
  color:#0f172a !important;
  font-weight:600;
  border-radius:10px;
}
.site-head .nav-link:hover,
.site-head .nav-link:focus{
  color:#2563eb !important;
  background:rgba(15,23,42,.06);
  text-decoration:none;
}
.site-head .nav-link:visited{
  color:#0f172a !important;
}

/* =========================
   TABLET (<= 991px)
   ========================= */
@media (max-width:991px){
  .idx50 .hero-card .d-flex.flex-wrap{ justify-content:center; }
  .idx50 .hero-card .d-flex.flex-wrap .btn{
    flex:1 1 calc(50% - .5rem);
    max-width:320px;
    text-align:center;
  }
  .idx50 .hero-card .btn.btn-lg{
    font-size:clamp(.9rem, 2.8vw, 1rem);
    padding:clamp(.6rem, 2.4vw, .75rem) clamp(.9rem, 3.2vw, 1.2rem);
    line-height:1.2;
  }
}

/* =========================
   MOBILE (<= 768px)
   ========================= */
@media (max-width:768px){
  .idx50 .board-box{ padding:1.25rem; }
  .idx50 .hero-card h1{ font-size:1.75rem; }
  .idx50 .latest-wrap a{ font-size:0.88rem; }

  .idx50 .hero-card .btn.btn-lg{
    font-size:0.9rem;
    padding:0.6rem 1rem;
    line-height:1.3;
  }

  .navbar-brand .logo-sub{
    font-size:0.75rem;
    margin-top:2px;
  }
}

/* =========================
   SMALL MOBILE (<= 576px)
   ========================= */
@media (max-width:576px){
  .idx50 .hero-card .d-flex.flex-wrap{
    flex-direction:column;
    align-items:stretch;
  }
  .idx50 .hero-card .d-flex.flex-wrap .btn{
    width:100%;
    max-width:100%;
    flex:0 0 auto;
    text-align:center;
  }
}

/* =========================
   DESKTOP MENU POLISH (>= 768px)
   ========================= */
@media (min-width:768px){
  .navbar .nav-link{
    font-weight:600;
    border-radius:10px;
  }
}
.site-head .d-md-flex a {
    color: #111;
    text-decoration: none;
    padding: 4px 8px;
    border-radius: 6px;
}

.site-head .d-md-flex a:hover {
    background: #f1f3f5;
}
/* ===== 50mm Footer ===== */
.fiftymm-footer{
  background:#fff;
  border-top:1px solid rgba(17,17,17,.10);
}

.fiftymm-footer .ft-line{
  height:1px;
  background:rgba(17,17,17,.08);
}

.fiftymm-footer .ft-title{
  font-weight:900;
  letter-spacing:-.02em;
  color:#111;
  line-height:1.1;
}

.fiftymm-footer .ft-desc{
  font-size:13px;
  color:#64748b;
  line-height:1.3;
  margin-top:2px;
}

.fiftymm-footer .ft-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid rgba(17,17,17,.10);
  border-radius:999px;
  background:#f5f6f8;
  color:#111;
  text-decoration:none;   /* 밑줄 제거 */
  font-weight:700;
  font-size:13px;
}
.fiftymm-footer .ft-pill:hover{
  background:#eef2f6;
  color:#111;
  text-decoration:none;
}

.fiftymm-footer .ft-link{
  display:inline-flex;
  padding:6px 10px;
  border-radius:10px;
  color:#111;             /* 파란색 제거 */
  text-decoration:none;   /* 밑줄 제거 */
  font-weight:700;
  font-size:13px;
}
.fiftymm-footer .ft-link:hover{
  background:#f5f6f8;
  color:#0b57d0;
  text-decoration:none;
}

.fiftymm-footer .ft-dot{
  display:inline-flex;
  align-items:center;
  color:#cbd5e1;
  padding:0 2px;
}

.fiftymm-footer .ft-admin{
  border:1px dashed rgba(11,87,208,.35);
}

.fiftymm-footer .ft-note{
  font-size:12px;
  margin-top:4px;
}

@media (max-width: 767.98px){
  .fiftymm-footer .ft-pill{font-size:12px}
  .fiftymm-footer .ft-link{font-size:12px}
}
/* 모바일 오프캔버스 메뉴 */
.fiftymm-mobile-nav .mobile-link{
  display:block;
  padding:10px 8px;
  border-radius:10px;
  text-decoration:none;
  color:#111;
  font-weight:700;
}
.fiftymm-mobile-nav .mobile-link:hover{
  background:rgba(0,0,0,.05);
}
.fiftymm-mobile-nav .mobile-sublink{
  display:block;
  padding:8px 8px;
  text-decoration:none;
  color:#374151;
  border-radius:10px;
}
.fiftymm-mobile-nav .mobile-sublink:hover{
  background:rgba(0,0,0,.04);
}

/* 햄버거 아이콘이 안 보이는 경우 대비 */
.navbar-toggler{
  border:0;
}
.top-auth-bar a{
  color:#111;
  text-decoration:none;
}

.top-auth-bar a:hover{
  color:#111;
  text-decoration:none;
}
.fiftymm-mobile-nav .mobile-item{padding:4px 0;border-bottom:1px solid rgba(0,0,0,.06);}
.fiftymm-mobile-nav .mobile-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}

.fiftymm-mobile-nav .mobile-link{
  display:block;
  padding:12px 8px;
  border-radius:12px;
  text-decoration:none;
  color:#111;
  font-weight:700;
}

.fiftymm-mobile-nav .mobile-toggle{
  width:40px;height:40px;
  border:0;background:transparent;
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
}

.fiftymm-mobile-nav .mobile-toggle:hover{background:rgba(0,0,0,.05);}

.fiftymm-mobile-nav .chev{
  width:8px;height:8px;
  border-right:2px solid #111;
  border-bottom:2px solid #111;
  transform:rotate(45deg);
  transition:transform .2s ease;
}

/* ✅ 펼쳐졌을 때 화살표 회전 */
.fiftymm-mobile-nav .mobile-toggle[aria-expanded="true"] .chev{
  transform:rotate(-135deg);
}

.fiftymm-mobile-nav .mobile-sub{padding:4px 0 12px 14px;}
.fiftymm-mobile-nav .mobile-sublink{
  display:block;
  padding:10px 8px;
  border-radius:12px;
  text-decoration:none;
  color:#374151;
}
.fiftymm-mobile-nav .mobile-sublink:hover{background:rgba(0,0,0,.04);}

/* ===== 모바일 최근글: 한 줄(제목 좌 / 날짜 우) 정렬 ===== */
@media (max-width: 768px){
  /* 최근글 카드/박스 안의 링크가 가운데 정렬로 잡히는 경우를 강제 교정한다 */
  .latest-wrap, .latest-box, .lt, .lt_list, .lt_ul { text-align:left !important; }

  /* 각 항목을 '한 줄'로 만든다 */
  .lt_list li, .lt_ul li, .latest-wrap li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:12px 14px;
  }

  /* 제목은 줄바꿈 없이 말줄임 처리한다 */
  .lt_list li a, .lt_ul li a, .latest-wrap li a{
    flex:1 1 auto;
    min-width:0;
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    text-align:left !important;
  }

  /* 날짜는 오른쪽 고정으로 둔다 */
  .lt_date, .lt_list .date, .latest-date{
    flex:0 0 auto;
    font-size:.85em;
    opacity:.55;
    white-space:nowrap;
    text-align:right;
  }
}
/* ===== 시스템 크롤러 제어판: 링크 겹침/클릭 불가 개선 ===== */
.crawler-panel .crawler-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:10px;
}

.crawler-panel .crawler-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:12px;
  line-height:1;
  white-space:nowrap;
  text-decoration:none;
}

.crawler-panel .crawler-links a:active{
  transform:translateY(1px);
}
/* 데스크톱 드롭다운 애니메이션 */
@media (min-width: 768px) {
    .dropdown-menu {
        display: block;
        opacity: 0;
        visibility: hidden;
        transform: translateY(10px);
        transition: all 0.3s ease;
    }
    .dropdown:hover .dropdown-menu {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
}
/* ✅ 모바일 오프캔버스: 절반 너비 + 65% 투명도 + 블러 효과 */
#mainMenu.offcanvas-end {
    width: 50% !important;               /* 화면 너비의 정확히 절반만 차지 */
    background-color: rgba(255, 255, 255, 0.65) !important; /* 배경 흰색에 65% 투명도 적용 */
    backdrop-filter: blur(10px);         /* 배경을 흐릿하게 만들어 글자 가독성을 높임 (유리 효과) */
    border-left: 1px solid rgba(0,0,0,0.08); /* 경계선 추가 */
    box-shadow: -5px 0 15px rgba(0,0,0,0.05); /* 부드러운 그림자 */
}

/* 오프캔버스 열렸을 때 뒤 배경의 어두운 정도 조절 */
.offcanvas-backdrop.show {
    opacity: 0.3; /* 너무 어둡지 않게 설정 */
}

/* 닫기 버튼(X) 스타일 */
.btn-close {
    opacity: 0.7;
    padding: 1rem;
    transition: opacity 0.2s;
}
.btn-close:hover { opacity: 1; }

/* ✅ 모바일 메뉴 아이템 및 링크 스타일 */
.fiftymm-mobile-nav .mobile-item { border-bottom: 1px solid rgba(0,0,0,0.05); }
.fiftymm-mobile-nav .mobile-link { display:block; padding:12px 10px; text-decoration:none; color:#111; font-weight:700; font-size: 0.95rem; }
.fiftymm-mobile-nav .mobile-sub { background: rgba(0,0,0,0.025); padding: 5px 0 10px 0; }
.fiftymm-mobile-nav .mobile-sublink { display:block; padding:8px 10px 8px 25px; text-decoration:none; color:#4b5563; font-size: 0.85rem; }
.fiftymm-mobile-nav .mobile-sublink:hover { color: #111; background: rgba(0,0,0,0.03); }

/* ✅ 슬라이드 토글 버튼 및 화살표 회전 애니메이션 */
.fiftymm-mobile-nav .mobile-toggle {
    width: 44px; height: 44px;
    border: 0; background: transparent;
    display: flex; align-items: center; justify-content: center;
    color: #6b7280;
    transition: color 0.2s;
}
.fiftymm-mobile-nav .mobile-toggle:hover { color: #111; }

/* 기본 상태: 아래쪽 화살표 (Bootstrap Icons 사용 가정) */
.fiftymm-mobile-nav .mobile-toggle i {
    transition: transform 0.3s ease; /* 부드러운 회전 효과 */
}

/* ✅ 메뉴가 열렸을 때(aria-expanded="true") 화살표를 180도 회전 */
.fiftymm-mobile-nav .mobile-toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}
/* 상단 로그인·회원 미니 바 */
.auth-bar-mini{
  font-size:0.85rem;
}

.auth-bar-mini a{
  font-size:0.75rem;
  color:#111;
  text-decoration:none;
}

.auth-bar-mini a:hover{
  color:#111;
  text-decoration:none;
}
/* =========================
   사진기능사 시험 D-day 배너
   ========================= */
.mm-ddaybar{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  background:#fff;
  padding:12px 14px;
  margin:14px 0;
}

.mm-ddaybar__title{
  font-weight:800;
  font-size:15px;
  letter-spacing:-0.2px;
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.mm-ddaybar__title:before{
  content:"";
  width:3px;
  height:14px;
  background:#2563eb;
  border-radius:999px;
}

.mm-ddaybar__items{
  display:flex;
  gap:10px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.mm-ddaybar__items::-webkit-scrollbar{display:none;}

.mm-ddaybar__item{
  white-space:nowrap;
  border:1px solid rgba(0,0,0,.08);
  border-radius:999px;
  padding:8px 10px;
  font-size:13px;
  display:flex;
  gap:8px;
  align-items:center;
}

.mm-ddaybar__label{font-weight:800;}
.mm-ddaybar__dday{font-style:italic;font-weight:800;color:#2563eb;}

@media (max-width:768px){
  .mm-ddaybar{padding:10px 12px;border-radius:14px;}
  .mm-ddaybar__title{font-size:14px;}
  .mm-ddaybar__item{font-size:12.5px;padding:7px 9px;}
}
/* ===== next_exam.php 전용 ===== */
details.mm-exam{
  border:1px solid rgba(0,0,0,.12) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:0 8px 20px rgba(0,0,0,.06) !important;
  overflow:hidden !important;
}

/* 한 줄 배너 */
details.mm-exam > summary.mm-exam__barline{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  padding:16px 18px !important;
  cursor:pointer !important;
  list-style:none !important;
}
details.mm-exam > summary.mm-exam__barline::-webkit-details-marker{display:none;}

details.mm-exam .mm-exam__bar{
  width:4px !important;
  height:18px !important;
  background:#2563eb !important;
  border-radius:999px !important;
  flex-shrink:0 !important;
}

details.mm-exam .mm-exam__name{
  font-size:18px !important;
  font-weight:800 !important;
  letter-spacing:-0.2px !important;
  color:#111 !important;
}

details.mm-exam .mm-exam__stage{
  margin-left:6px !important;
  font-size:14px !important;
  font-weight:700 !important;
  color:#2563eb !important;
  font-style:italic !important;
}

details.mm-exam .mm-exam__dday{
  margin-left:auto !important;
  font-size:17px !important;
  font-weight:900 !important;
  font-style:italic !important;
  color:#0b57d0 !important;
  white-space:nowrap !important;
}

details.mm-exam .mm-exam__chev{
  width:16px !important;
  height:16px !important;
  margin-left:6px !important;
  border-right:2px solid #999 !important;
  border-bottom:2px solid #999 !important;
  transform:rotate(45deg) !important;
  transition:transform .2s ease !important;
}
details.mm-exam[open] .mm-exam__chev{transform:rotate(-135deg) !important;}

/* 펼침 영역 */
details.mm-exam .mm-exam__panel{
  border-top:1px solid rgba(0,0,0,.08) !important;
  padding:16px 18px 18px !important;
  background:#fafafa !important;
}

/* 상세 줄 */
details.mm-exam .mm-exam__dl{display:grid !important; gap:10px !important; margin:0 !important;}
details.mm-exam .mm-exam__row{display:flex !important; gap:12px !important; font-size:15px !important; line-height:1.55 !important;}
details.mm-exam .mm-exam__row dt{min-width:72px !important; font-weight:800 !important; color:#111 !important;}
details.mm-exam .mm-exam__row dd{margin:0 !important; color:#333 !important;}
details.mm-exam .mm-exam__row--strong dt,
details.mm-exam .mm-exam__row--strong dd{color:#0b57d0 !important; font-weight:900 !important;}

@media (max-width:768px){
  details.mm-exam > summary.mm-exam__barline{padding:14px 14px !important;}
  details.mm-exam .mm-exam__name{font-size:16px !important;}
  details.mm-exam .mm-exam__dday{font-size:15px !important;}
  details.mm-exam .mm-exam__row{font-size:14px !important;}
}
