/* ============================================================
   SNUH CMS FO — 퀵메뉴 아이콘 클래스 시스템
   의존: fo/resource/cmm/css/components.css (quick-menu 기본 스타일)

   사용법:
     <span class="quick-menu__icon icon--calendar" aria-hidden="true"></span>
     (SVG 인라인 불필요 — CSS mask-image가 아이콘 렌더링 담당)

   원리:
     ::before 가상요소에 background-color: currentColor 설정 후
     mask-image로 아이콘 모양을 잘라냄 → 부모의 color 값을 자동 상속
============================================================ */

/* ── 아이콘 베이스 (icon-- 클래스 있을 때만 적용) ── */
[class*="icon--"].quick-menu__icon::before {
    content: "";
    display: block;
    width: 26px;
    height: 26px;
    background-color: currentColor;
    -webkit-mask-image: var(--_icon);
    mask-image: var(--_icon);
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    flex-shrink: 0;
}


/* ============================================================
   공통 아이콘 (전 사이트 공용)
============================================================ */

/* 졸업모자 — 임상시험 종사자 교육 (01_bri) */
.icon--graduation {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 22 8.5 12 15 2 8.5 12 2'/%3E%3Cpath d='M6 12.5v4a6 6 0 0 0 12 0v-4'/%3E%3Cline x1='22' y1='8.5' x2='22' y2='13'/%3E%3C/svg%3E");
}

/* 컴퓨터+돋보기 — 연구지원 과제 / IRB 소개 (01_bri, 02_ctc, 05_ibc, 09_hrpp) */
.icon--research {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3Ccircle cx='15' cy='10' r='2'/%3E%3Cline x1='15' y1='7' x2='15' y2='6.5'/%3E%3Cline x1='15' y1='13' x2='15' y2='12.5'/%3E%3Cline x1='18' y1='10' x2='18.5' y2='10'/%3E%3Cline x1='12' y1='10' x2='11.5' y2='10'/%3E%3C/svg%3E");
}

/* 열린 책 — 교육·행사 안내 (공통) */
.icon--book-open {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
}

/* 캘린더 — 공용장비예약 / 자료실 (공통) */
.icon--calendar {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}

/* 로그인 화살표 — CRIS / e-IRB (전 사이트 공통) */
.icon--login {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3Cpolyline points='10 17 15 12 10 7'/%3E%3Cline x1='15' y1='12' x2='3' y2='12'/%3E%3C/svg%3E");
}

/* 모니터 — 서비스 신청 (07_icmit, 08_mrcc 연구지원 신청) */
.icon--monitor {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cline x1='8' y1='21' x2='16' y2='21'/%3E%3Cline x1='12' y1='17' x2='12' y2='21'/%3E%3C/svg%3E");
}

/* 채팅 버블 — 상담 신청 (08_mrcc) */
.icon--chat {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");
}


/* ============================================================
   03_clab (연구실험부) 전용
============================================================ */

/* 리스트 문서 — CMI 보유장비 */
.icon--list-doc {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cpath d='M8 7h8M8 11h8M8 15h5'/%3E%3C/svg%3E");
}

/* 돋보기 — 실험실 찾기 */
.icon--search {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
}


/* ============================================================
   04_dear (전임상실험부) 전용
============================================================ */

/* 하트 — 동물실험지원 */
.icon--heart {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z'/%3E%3C/svg%3E");
}

/* 비커/플라스크 — 비임상시험 */
.icon--beaker {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 2v7.5L3 22h18l-7-12.5V2'/%3E%3Cpath d='M8 2h8'/%3E%3C/svg%3E");
}

/* 방패+체크 — IACUC */
.icon--shield-check {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2L4 6v6c0 5 3.5 9 8 10 4.5-1 8-5 8-10V6l-8-4z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
}


/* ============================================================
   06_biobank (바이오뱅크) 전용
============================================================ */

/* DNA 이중나선 — 인체자원은행 */
.icon--dna {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2C17 5 17 10 12 12S7 17 15 22'/%3E%3Cpath d='M15 2C7 5 7 10 12 12S17 17 9 22'/%3E%3Cg stroke-width='1.2'%3E%3Cline x1='10.5' y1='4.5' x2='13.5' y2='4.5'/%3E%3Cline x1='9.5' y1='7' x2='14.5' y2='7'/%3E%3Cline x1='10.5' y1='9.5' x2='13.5' y2='9.5'/%3E%3Cline x1='10.5' y1='14.5' x2='13.5' y2='14.5'/%3E%3Cline x1='9.5' y1='17' x2='14.5' y2='17'/%3E%3Cline x1='10.5' y1='19.5' x2='13.5' y2='19.5'/%3E%3C/g%3E%3C/svg%3E");
}

/* T/N 시험관 — 암조직은행 */
.icon--tube-tn {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='2.5' width='5' height='2.5'/%3E%3Cpath d='M3.5 5h4v12a2 2 0 0 1-4 0z'/%3E%3Cg stroke-width='1.2'%3E%3Cline x1='4' y1='8' x2='7' y2='8'/%3E%3Cline x1='5.5' y1='8' x2='5.5' y2='13'/%3E%3C/g%3E%3Crect x='16' y='2.5' width='5' height='2.5'/%3E%3Cpath d='M16.5 5h4v12a2 2 0 0 1-4 0z'/%3E%3Cg stroke-width='1.2'%3E%3Cline x1='17' y1='13' x2='17' y2='8'/%3E%3Cline x1='17' y1='8' x2='20' y2='13'/%3E%3Cline x1='20' y1='13' x2='20' y2='8'/%3E%3C/g%3E%3C/svg%3E");
}

/* 뇌 — 뇌은행 */
.icon--brain {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5a3 3 0 0 0-3 3 3 3 0 0 0-3 3 3 3 0 0 0 1 2.2A3 3 0 0 0 8 17a3 3 0 0 0 4 1 3 3 0 0 0 4-1 3 3 0 0 0 1-3.8A3 3 0 0 0 18 11a3 3 0 0 0-3-3 3 3 0 0 0-3-3z'/%3E%3Cpath d='M12 5v13'/%3E%3Cpath d='M9 11c1 0 1.5.5 1.5 1.5M15 11c-1 0-1.5.5-1.5 1.5'/%3E%3C/svg%3E");
}


/* ============================================================
   10_nstri (특화연구소) 전용
============================================================ */

/* 학교 건물 — 뉴스/보도자료 */
.icon--school {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10v6M2 10l10-5 10 5-10 5z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E");
}

/* 닫힌 책 — 교육자료 / 자료실 */
.icon--book {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z'/%3E%3C/svg%3E");
}

/* 표/그리드 — 공지사항 (10_nstri) */
.icon--table {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Cline x1='3' y1='9' x2='21' y2='9'/%3E%3Cline x1='9' y1='21' x2='9' y2='9'/%3E%3C/svg%3E");
}

/* 신문 — 뉴스/보도자료 (10_nstri) */
.icon--newspaper {
    --_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2'/%3E%3Cpath d='M18 14h-8M15 18h-5M10 6h8v4h-8V6z'/%3E%3C/svg%3E");
}
