/* 일반 모드 팔레트 */
:root {
    --k-primary-sub: #FF9043;
    --k-primary: #ff6d01;
    --k-primary-text: #ffffff;
    /* primary 배경 위 텍스트 */

    /* bg */
    --k-bg-bright: #ffffff;

    /* text */
    --k-text-black: #222;
    --k-text-bright: #fff;

    /* border */
    --k-border: 1px solid #e0e2e7;
    --k-focus: 4px solid #ffbf00;

    /* 안내 화면(부재중/점심시간 등) */
    --k-notice-bg: linear-gradient(106deg, #ff8a33 0%, var(--k-primary) 100%);
    --k-notice-icon-bg: rgba(255, 255, 255, 0.33);
    --k-notice-badge-shadow: 0 0 7.35px rgba(255, 109, 1, 0.32);

    /* 상단 안내문구 */
    --k-alert-bg: rgb(255 232 214);

    /* 접수선택(홈) 화면 */
    --k-page-bg: linear-gradient(180deg, #fff4e8 0%, #f2f5fa 56%);
    --k-blob-orange: rgba(255, 150, 70, 0.12);
    --k-blob-blue: rgba(37, 99, 235, 0.07);

    --k-card-reception: linear-gradient(98deg, #ff8a33 0%, var(--k-primary) 100%);
    --k-card-selfcare: linear-gradient(159deg, #16b89e 0%, #0f9d8b 100%);
    --k-card-return: linear-gradient(159deg, #3b82f6 0%, #2563eb 100%);

    --k-card-reception-line: 1px solid #ffffff;
    --k-card-selfcare-line: 1px solid #ffffff;
    --k-card-return-line: 1px solid #ffffff;

    --k-card-reception-shadow: 0 3px 22px rgba(255, 109, 1, 0.32);
    --k-card-selfcare-shadow: 0 3px 16px rgba(15, 157, 139, 0.3);
    --k-card-return-shadow: 0 3px 16px rgba(37, 99, 235, 0.3);

    --k-pill-bg: #ffffff;
    --k-pill-text: var(--k-primary);
    --k-pill-shadow: 0 16px 18px rgba(157, 67, 15, 0.24);

    /* 대기현황(호출중/진료중) 화면 */
    --k-navbar-text: #353535;
    --k-badge-bg: #ff750f;

    --k-panel-bg: #ffffff;
    --k-panel-title: #353535;
    --k-panel-line: none;

    --k-row-line: #e8e8e8;
    --k-row-name: #222222;
    --k-row-meta: #5c6573;
    --k-num-bg: #f1f2f5;
    --k-num-text: #787369;

    --k-tag-male: #60a5fa;
    --k-tag-female: #f472b6;

    --k-btn-cancel-bg: transparent;
    --k-btn-cancel-line: 1px solid #ffbebe;
    --k-btn-cancel-text: #ff4949;

    --k-btn-call-bg: #fdf4eb;
    --k-btn-call-line: 1px solid #fdf4eb;
    --k-btn-call-text: var(--k-primary);

    --k-btn-treat-bg: #dfeaff;
    --k-btn-treat-line: 1px solid #dfeaff;
    --k-btn-treat-text: #2563eb;

    --k-treat-radio: #3b82f6;
    --k-treat-radio-halo: rgba(59, 130, 246, 0.3);
    --k-treat-box-bg: #f6faff;
    --k-treat-box-line: 1px solid #cfe0ff;
    --k-treat-box-shadow: 0 3px 16px rgba(37, 99, 235, 0.12);

    /* 호출/취소 확인·완료 오버레이 */
    --k-overlay-blue: #426ee9;
    --k-overlay-blue-line: 1px solid #ffffff;
    --k-overlay-red: #e53935;
    --k-overlay-red-line: 1px solid #ffffff;
    --k-overlay-icon-bg: rgba(255, 255, 255, 0.33);
    --k-overlay-pill-bg: #ffffff;
    --k-overlay-orange: var(--k-primary);
    --k-overlay-orange-line: 1px solid #ffffff;
    --k-overlay-pill-blue-text: #426ee9;
    --k-overlay-pill-red-text: #e53935;
    --k-overlay-pill-orange-text: var(--k-primary);
    --k-overlay-ghost-line: 2px solid rgba(255, 255, 255, 0.6);

    /* 선택 화면(학년/반/번호 등) */
    /* --k-select-bg: #f2f5f7; */
    --k-select-bg: linear-gradient(180deg, transparent 0%, #f2f5fa 20%);
    --k-select-title: #1f2530;
    --k-select-sub: #6b7280;
    --k-grade-line: #cbd0d7;
    --k-grade-text: #23272e;
    --k-chip-line: #eae7e2;
    --k-chip-text: #2a2e35;
    --k-chip-shadow: 0 1px 1px rgba(20, 24, 30, 0.05);
    --k-next-bg: #e6e6e9;
    --k-next-text: #aeb2b9;
    --k-barline: #f0f0f2;
    --k-tab-track: #e2e2e2;
    --k-tab-off-text: #9aa1ac;

    /* 자가처치 개수 배지(총 N개) */
    --k-count-bg: #fff8f2;
    --k-count-line: 1px solid var(--k-primary);
    --k-count-text: var(--k-primary);

    /* 자가처치 수량 스테퍼(±) · 안내문구 */
    --k-step-off-bg: #f1f1f1;
    --k-step-off-icon: #c2c6cc;
    --k-step-minus-bg: #ffffff;
    --k-step-minus-line: 1px solid var(--k-primary-sub);
    --k-step-minus-icon: var(--k-primary);
    --k-step-plus-bg: linear-gradient(150deg, var(--k-primary-sub) 0%, var(--k-primary) 100%);
    --k-step-plus-icon: #ffffff;
    --k-step-count-off: #8a93a0;
    --k-note-return: var(--k-primary);

    /* 반납 물품선택: 체크박스 · 빌림 뱃지 */
    --k-check-line: 2px solid #cbd0d7;
    --k-check-on-bg: var(--k-primary);
    --k-check-on-mark: #ffffff;
    --k-borrow-bg: #f1f1f1;
    --k-borrow-text: #8a93a0;
}

/* 고대비 모드 — body.high-contrast 일 때 변수만 덮어씀 */
body.high-contrast {
    --k-primary: #3b82f6;
    --k-primary-sub: var(--k-primary);
    /* 노랑 배경엔 검정 텍스트라야 대비 확보 */
    --k-primary-text: #000000;

    /* bg */
    --k-bg-bright: #000000;

    /* text */
    --k-text-black: #ffffff;
    --k-text-bright: #ffffff;

    /* border */
    --k-border: 2px solid #ffffff;
    --k-focus: 4px solid #ffe600;

    /* 안내 화면(부재중/점심시간 등) — 고대비: 검정 배경 + 흰 텍스트(21:1) */
    --k-notice-bg: #000000;
    --k-notice-icon-bg: rgba(255, 255, 255, 0.15);
    --k-notice-badge-shadow: none;

    /* 상단 안내문구 */
    --k-alert-bg: #000;

    /* 접수선택(홈) 화면 — 고대비: 검정 카드 + 흰 텍스트, 색상 정체성은 굵은 테두리로 유지 */
    --k-page-bg: #000000;
    --k-blob-orange: transparent;
    --k-blob-blue: transparent;

    --k-card-reception: #000000;
    --k-card-selfcare: #000000;
    --k-card-return: #000000;

    --k-card-reception-line: 4px solid #ff8a33;
    --k-card-selfcare-line: 4px solid #2ee6c4;
    --k-card-return-line: 4px solid #5b9bff;

    --k-card-reception-shadow: none;
    --k-card-selfcare-shadow: none;
    --k-card-return-shadow: none;

    --k-pill-bg: #ffffff;
    --k-pill-text: #000000;
    --k-pill-shadow: none;

    /* 대기현황(호출중/진료중) 화면 — 고대비: 검정 패널 + 흰 텍스트, chip은 컬러 테두리로 구분 */
    --k-navbar-text: #ffffff;
    --k-badge-bg: #ff750f;

    --k-panel-bg: #000000;
    --k-panel-title: #ffffff;
    --k-panel-line: 2px solid #ffffff;

    --k-row-line: #ffffff;
    --k-row-name: #ffffff;
    --k-row-meta: #e0e0e0;
    --k-num-bg: #333333;
    --k-num-text: #ffffff;

    --k-tag-male: #4d90ff;
    --k-tag-female: #ff7ac8;

    --k-btn-cancel-bg: #000000;
    --k-btn-cancel-line: 2px solid #ff6b6b;
    --k-btn-cancel-text: #ff6b6b;

    --k-btn-call-bg: #000000;
    --k-btn-call-line: 2px solid #ffb020;
    --k-btn-call-text: #ffb020;

    --k-btn-treat-bg: #000000;
    --k-btn-treat-line: 2px solid #5b9bff;
    --k-btn-treat-text: #5b9bff;

    --k-treat-radio: #5b9bff;
    --k-treat-radio-halo: rgba(91, 155, 255, 0.35);
    --k-treat-box-bg: #000000;
    --k-treat-box-line: 2px solid #5b9bff;
    --k-treat-box-shadow: none;

    /* 호출/취소 확인·완료 오버레이 — 고대비: 검정 카드 + 흰 텍스트, 컬러 굵은 테두리로 구분 */
    --k-overlay-blue: #000000;
    --k-overlay-blue-line: 3px solid #5b9bff;
    --k-overlay-red: #000000;
    --k-overlay-red-line: 3px solid #ff6b6b;
    --k-overlay-icon-bg: rgba(255, 255, 255, 0.15);
    --k-overlay-pill-bg: #ffffff;
    --k-overlay-orange: #000000;
    --k-overlay-orange-line: 3px solid #ff8a33;
    --k-overlay-pill-blue-text: #000000;
    --k-overlay-pill-red-text: #000000;
    --k-overlay-pill-orange-text: #000000;
    --k-overlay-ghost-line: 2px solid #ffffff;

    /* 선택 화면(학년/반/번호 등) — 고대비: 검정 배경 + 흰 텍스트/테두리 */
    --k-select-bg: #000000;
    --k-select-title: #ffffff;
    --k-select-sub: #e0e0e0;
    --k-grade-line: #ffffff;
    --k-grade-text: #ffffff;
    --k-chip-line: #ffffff;
    --k-chip-text: #ffffff;
    --k-chip-shadow: none;
    --k-next-bg: #333333;
    --k-next-text: #9aa0a6;
    --k-barline: #ffffff;
    --k-tab-track: #333333;
    --k-tab-off-text: #9aa0a6;

    /* 자가처치 개수 배지 — 고대비: 검정 배경 + 밝은 주황 테두리/텍스트 */
    --k-count-bg: #000000;
    --k-count-line: 2px solid #ff8a33;
    --k-count-text: #ff8a33;

    /* 자가처치 수량 스테퍼 — 고대비 */
    --k-step-off-bg: #1a1a1a;
    --k-step-off-icon: #666666;
    --k-step-minus-bg: #000000;
    --k-step-minus-line: 2px solid #ff8a33;
    --k-step-minus-icon: #ff8a33;
    --k-step-plus-bg: #ff8a33;
    --k-step-plus-icon: #000000;
    --k-step-count-off: #9aa0a6;
    --k-note-return: #ff8a33;

    /* 반납 물품선택 — 고대비 */
    --k-check-line: 2px solid #ffffff;
    --k-check-on-bg: #ff8a33;
    --k-check-on-mark: #000000;
    --k-borrow-bg: #1a1a1a;
    --k-borrow-text: #e0e0e0;
}


/* 폰트 전용 유틸 클래스 (Paperlogy → Noto Sans KR 폴백) */
.k_font {
    font-family: "Paperlogy", "Noto Sans KR", sans-serif;
}

/* 시각적 숨김(스크린리더 전용) — 아이콘 버튼의 텍스트 라벨 등 */
.blind {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.scroll-no {
    /* 인터넷 익스플로러 스크롤바 삭제 */
    -ms-overflow-style: none;
    /* 파이어폭스 스크롤바 삭제 */
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

/* ( 크롬, 사파리, 오페라, 엣지 ) 스크롤바 삭제 */
.scroll-no::-webkit-scrollbar {
    /* 가로 스크롤바 숨기기 */
    width: 0;
    /* 세로 스크롤바 숨기기 */
    height: 0;
    display: none;
}