/**
 * KDCA Mobile CSS v3 (2026-04-27)
 * 독립형 일관 모바일 디자인 — 그누보드 의존 최소화
 *
 * 디자인 토큰:
 *   --m-bg: #f5f7fa, --m-card:#fff, --m-line:#e6ebf2
 *   --m-text:#1a2332, --m-mute:#6b7888, --m-accent:#224abe
 *   폰트 스케일: 11(라벨)/12(보조)/13(본문)/14(소제목)/16(제목)
 *   터치 타겟: 최소 44px height
 */

/* ============================================
   디자인 토큰 (CSS 변수)
   ============================================ */
:root {
    --m-bg: #f4f6fa;
    --m-card: #ffffff;
    --m-line: #e6ebf2;
    --m-line-soft: #f0f3f7;
    --m-text: #1a2332;
    --m-text2: #344056;
    --m-mute: #6b7888;
    --m-mute-soft: #9aa4b2;
    --m-accent: #224abe;
    --m-accent-soft: #e8efff;
    --m-danger: #dc3545;
    --m-success: #28a745;
    --m-radius: 12px;
    --m-radius-sm: 8px;
    --m-shadow: 0 1px 3px rgba(15, 23, 42, .04), 0 1px 2px rgba(15, 23, 42, .03);
    --m-shadow-md: 0 2px 8px rgba(15, 23, 42, .06);
    --m-tap: 44px;
}

/* ============================================
   모바일 메뉴 패널 (PC 에서는 숨김)
   ============================================ */
#mobileMenuOverlay {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(15, 23, 42, .55);
    z-index: 10001;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}
#mobileMenuOverlay.active { display: block; }

#mobileMenuPanel {
    position: fixed;
    top: 0; right: -300px;
    width: 280px; height: 100vh;
    background: #fff;
    z-index: 10002;
    overflow-y: auto;
    transition: right 0.3s ease;
    box-shadow: -4px 0 20px rgba(0, 0, 0, .15);
}
#mobileMenuPanel.active { right: 0 !important; }

/* PC 에서 모바일 요소 숨김 */
@media all and (min-width: 769px) {
    #mobileMenuBtn,
    #mobileMenuOverlay,
    #mobileMenuPanel,
    #mobileTabBar,
    #mHdr { display: none !important; }
}

/* ============================================
   ✨ MOBILE 전용 (max-width: 768px)
   ============================================ */
@media all and (max-width: 768px) {

    html { -webkit-text-size-adjust: 100%; }
    body {
        font-family: 'Pretendard', 'Noto Sans KR', system-ui, -apple-system, sans-serif !important;
        font-size: 13px;
        line-height: 1.55;
        color: var(--m-text);
        background: var(--m-bg) !important;
        padding-bottom: 64px !important;
        -webkit-font-smoothing: antialiased;
    }

    /* === PC 헤더 영역 통째로 숨김 — 모바일은 #mHdr 로 대체 === */
    #hd, #hd_h1, #tnb, #tnbWr, #hd_pop, .hd_pop, #hd_qnb,
    #gnb, #logo,
    .contentTitleSub, .bNBar, .bNBarMw, .bNBar1D, .bNBar2D,
    #snb_side, .location_wr, .loc1D_wr, .loc2D_wr, .loc1DA, .loc2DA,
    [class*="locWr"], [class*="loc1D"], [class*="loc2D"] {
        display: none !important;
    }

    /* 상단 햄버거 일체 제거 (사용자 지시: 하단 탭바의 ☰ 메뉴로 단일화) */
    #mobileMenuBtn,
    #snbOpen,
    #sideBar,
    #sideBarCover,
    .menu_open_btn,
    .nav-toggle,
    [class*="hamburger"],
    [id*="hamburger"] { display: none !important; }
    /* 사이드바 자체와 그 그림자 영역도 제거 */
    aside#sideBar { display: none !important; }

    /* === 모바일 전용 헤더 #mHdr (head.sub.php inject) === */
    #mHdr {
        position: fixed;
        top: 0; left: 0; right: 0;
        height: 52px;
        background: rgba(255, 255, 255, .96);
        backdrop-filter: saturate(180%) blur(10px);
        -webkit-backdrop-filter: saturate(180%) blur(10px);
        border-bottom: 1px solid var(--m-line);
        z-index: 9000;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        padding: 0 14px;
    }
    #mHdr .mHdr-logo {
        display: flex;
        align-items: center;
        gap: 8px;
        text-decoration: none;
        color: var(--m-text);
    }
    #mHdr .mHdr-logo img {
        height: 26px;
        width: auto;
        display: block;
    }
    #mHdr .mHdr-logo .mHdr-name {
        font-size: 13px;
        font-weight: 800;
        letter-spacing: -0.3px;
        color: var(--m-text);
    }
    #mHdr .mHdr-actions {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    #mHdr .mHdr-btn {
        height: 32px;
        min-width: 32px;
        padding: 0 10px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 4px;
        border: 1px solid var(--m-line);
        background: #fff;
        color: var(--m-text2);
        font-size: 11px;
        font-weight: 600;
        border-radius: 16px;
        text-decoration: none;
        line-height: 1;
        -webkit-tap-highlight-color: transparent;
    }
    #mHdr .mHdr-btn:active { background: var(--m-line-soft); }
    #mHdr .mHdr-btn-primary {
        background: var(--m-accent);
        color: #fff;
        border-color: var(--m-accent);
    }
    #mHdr .mHdr-btn i { font-size: 12px; }

    /* 본문 영역 — 헤더 + 탭바 만큼 여백 */
    #wrap, #wrapper, .wrap, body > .container {
        padding-top: 52px !important;
    }

    /* === 서브 히어로 배너 === */
    .contentTitle, .subTopBg, [class*="subTopBg"] {
        height: 56px !important;
        min-height: 56px !important;
        margin: 0 !important;
    }
    .contentTitle h2, .subTopBg h2 {
        font-size: 15px !important;
        padding-top: 18px !important;
        letter-spacing: -0.4px;
    }

    /* === 페이지 제목 === */
    .h2_title, h2.h2_title, #ctWrap > h2 {
        font-size: 16px !important;
        font-weight: 700;
        padding: 14px 14px 8px !important;
        margin: 0 !important;
        border: none !important;
        color: var(--m-text);
        letter-spacing: -0.3px;
    }

    /* === 컨테이너 === */
    #container { margin-top: 0 !important; padding: 0 !important; width: 100% !important; }
    #ctWrap { width: 100% !important; float: none !important; padding: 8px 12px 16px !important; }

    /* === 브레드크럼 === */
    .location_wr, .breadcrumb_wr, [class*="breadcrumb"] {
        font-size: 11px !important;
        padding: 6px 14px !important;
        background: var(--m-card);
        margin: 0 !important;
        border-bottom: 1px solid var(--m-line);
        color: var(--m-mute);
    }

    /* === 메인 슬라이더 === */
    .mainVisualImage { height: 180px !important; }
    .mvSlider li { height: 180px !important; }
    .mvSlider .mvMwAlign h2 { font-size: 16px !important; }
    .mvSlider .mvMwAlign p { font-size: 12px !important; }

    /* === 검색바 === */
    #sch_stx, .sch_input, input[name="stx"] {
        font-size: 14px !important;
        padding: 10px 14px !important;
        border-radius: 20px !important;
        background: #fff;
    }

    /* ============================================
       📋 게시판 목록 — 카드형
       ============================================ */
    .likeTbl > ul > li.likeTblTh { display: none !important; }
    .likeTbl > ul > li.likeTblTd {
        display: block !important;
        padding: 14px 14px !important;
        border-bottom: 1px solid var(--m-line) !important;
        background: var(--m-card);
        margin: 0 !important;
    }
    .likeTbl > ul > li > div {
        display: inline-block !important;
        border: none !important;
        padding: 0 !important;
    }
    .likeTbl > ul > li > div.td_subject {
        display: block !important;
        padding-bottom: 6px !important;
    }
    .likeTbl .td_subject .bo_tit a {
        font-size: 14px !important;
        font-weight: 600;
        line-height: 1.4;
        color: var(--m-text);
    }
    .likeTbl .td_name, .likeTbl .td_date, .likeTbl .td_datetime, .likeTbl .td_num {
        font-size: 11px !important;
        color: var(--m-mute) !important;
    }

    /* 등기 목록 카드 */
    #bo_list .listType_01 {
        flex-direction: column !important;
        padding: 14px !important;
        border: none !important;
        border-bottom: 1px solid var(--m-line);
        background: var(--m-card);
        margin: 0 !important;
        gap: 10px;
    }
    #bo_list .listType_01 .img_wr {
        width: 100% !important;
        height: auto !important;
        max-height: 220px;
        overflow: hidden;
        border-radius: var(--m-radius-sm);
        margin: 0 !important;
        background: var(--m-line-soft);
    }
    #bo_list .listType_01 .img_wr img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover;
    }

    /* ============================================
       📄 등기 상세 (view) — 정교한 카드형
       ============================================ */
    #bo_v {
        padding: 0 !important;
        background: var(--m-bg);
    }
    #bo_v_atc {
        padding: 12px !important;
        background: transparent;
    }

    /* 상단 메타 (작성자/날짜) */
    #bo_v_info {
        padding: 8px 14px !important;
        font-size: 11px !important;
        color: var(--m-mute) !important;
        background: var(--m-card);
        border-bottom: 1px solid var(--m-line);
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 6px;
    }

    /* 제목 */
    #bo_v_title, #bo_v h2.h2_title {
        font-size: 17px !important;
        font-weight: 800 !important;
        line-height: 1.4 !important;
        padding: 14px !important;
        background: var(--m-card);
        color: var(--m-text);
        margin: 0 !important;
        border: none !important;
        letter-spacing: -0.3px;
    }

    /* 등기 정보 테이블 → 카드 행 */
    .view_info_table, #bo_v table:not(.tableScroll table), #bo_v_atc table:not(.tableScroll table) {
        display: block !important;
        background: var(--m-card);
        border-radius: var(--m-radius);
        box-shadow: var(--m-shadow);
        overflow: hidden;
        margin: 0 0 12px !important;
        border: none !important;
        width: 100% !important;
    }
    .view_info_table tbody, #bo_v table tbody { display: block !important; }
    .view_info_table tr, #bo_v table tr {
        display: block !important;
        padding: 10px 14px !important;
        border-bottom: 1px solid var(--m-line-soft) !important;
    }
    .view_info_table tr:last-child, #bo_v table tr:last-child { border-bottom: none !important; }
    .view_info_table th, #bo_v table th {
        display: block !important;
        width: 100% !important;
        font-size: 11px !important;
        color: var(--m-mute) !important;
        padding: 0 0 4px !important;
        border: none !important;
        background: none !important;
        font-weight: 600 !important;
        text-align: left !important;
        letter-spacing: 0.2px;
        text-transform: uppercase;
    }
    .view_info_table td, #bo_v table td {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        border: none !important;
        font-size: 13px !important;
        color: var(--m-text);
        line-height: 1.5 !important;
        background: none !important;
        word-break: break-word;
    }

    /* 음원/영상 플레이어 */
    #bo_v audio, #bo_v video {
        width: 100% !important;
        margin: 8px 0 !important;
        border-radius: var(--m-radius-sm);
        background: #000;
    }

    /* 첨부 이미지 */
    #bo_v img {
        max-width: 100% !important;
        height: auto !important;
        border-radius: var(--m-radius-sm);
    }

    /* QR 코드 작게 */
    #bo_v img[alt*="QR"], .qr_code img { max-width: 130px !important; }

    /* === 댓글 === */
    #bo_vc { padding: 14px !important; background: var(--m-card); margin-top: 12px; border-radius: var(--m-radius); }
    .bo_vc_w { padding: 8px !important; font-size: 13px; }

    /* ============================================
       ✏️ 등기 신청 폼 (write) — 섹션 카드형
       ============================================ */
    #bo_w { padding: 0 !important; }
    #bo_w form { padding: 12px !important; }
    #bo_w fieldset { border: none !important; padding: 0 !important; margin: 0 0 14px !important; }
    #bo_w legend, #bo_w .write_div > h3, #bo_w .write_div > h4 {
        font-size: 13px !important;
        font-weight: 700 !important;
        color: var(--m-text) !important;
        padding: 12px 14px !important;
        margin: 0 !important;
        background: var(--m-card);
        border-bottom: 1px solid var(--m-line);
        border-radius: var(--m-radius) var(--m-radius) 0 0;
        letter-spacing: -0.2px;
    }

    /* 등기 신청 테이블 → 카드 섹션 */
    .tbl_frm01, .tbl_frm01 table {
        display: block !important;
        background: var(--m-card);
        border-radius: var(--m-radius);
        box-shadow: var(--m-shadow);
        margin: 0 0 12px !important;
        overflow: hidden;
        width: 100% !important;
    }
    .tbl_frm01 tbody { display: block !important; }
    .tbl_frm01 tr {
        display: block !important;
        padding: 12px 14px !important;
        margin: 0 !important;
        border-bottom: 1px solid var(--m-line-soft) !important;
    }
    .tbl_frm01 tr:last-child { border-bottom: none !important; }
    .tbl_frm01 th {
        display: block !important;
        width: 100% !important;
        padding: 0 0 6px !important;
        font-size: 11px !important;
        color: var(--m-mute) !important;
        font-weight: 600 !important;
        background: none !important;
        text-align: left !important;
        letter-spacing: 0.2px;
        text-transform: uppercase;
        border: none !important;
    }
    .tbl_frm01 td {
        display: block !important;
        width: 100% !important;
        padding: 0 !important;
        background: none !important;
        font-size: 13px !important;
        color: var(--m-text);
        border: none !important;
    }

    /* === 폼 인풋 === */
    .frm_input, .full_input,
    select.frm_input,
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="password"],
    input[type="search"],
    textarea, select {
        font-size: 14px !important;
        padding: 10px 12px !important;
        border-radius: var(--m-radius-sm) !important;
        border: 1px solid var(--m-line) !important;
        width: 100% !important;
        box-sizing: border-box;
        background: #fff !important;
        color: var(--m-text);
        line-height: 1.4 !important;
        -webkit-appearance: none;
        appearance: none;
    }
    /* iOS 자동 줌 방지: 인풋만 16px (placeholder 는 별도 작게) */
    @supports (-webkit-touch-callout: none) {
        input[type="text"], input[type="email"], input[type="tel"],
        input[type="number"], input[type="password"], input[type="search"],
        textarea, select { font-size: 16px !important; }
    }
    /* 플레이스홀더 작게 */
    ::placeholder { font-size: 12px !important; color: var(--m-mute-soft) !important; opacity: 1; }
    ::-webkit-input-placeholder { font-size: 12px !important; color: var(--m-mute-soft) !important; }
    :-moz-placeholder { font-size: 12px !important; color: var(--m-mute-soft) !important; }
    ::-moz-placeholder { font-size: 12px !important; color: var(--m-mute-soft) !important; }
    :-ms-input-placeholder { font-size: 12px !important; color: var(--m-mute-soft) !important; }

    input:focus, textarea:focus, select:focus {
        border-color: var(--m-accent) !important;
        box-shadow: 0 0 0 3px var(--m-accent-soft) !important;
        outline: none;
    }

    textarea { min-height: 100px; resize: vertical; }

    /* select 화살표 (appearance:none 보완) */
    select.frm_input, select {
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b7888' d='M6 8L0 0h12z'/></svg>") !important;
        background-repeat: no-repeat !important;
        background-position: right 12px center !important;
        background-size: 10px !important;
        padding-right: 32px !important;
    }

    /* 라디오/체크박스 */
    input[type="radio"], input[type="checkbox"] {
        width: 18px !important;
        height: 18px !important;
        margin: 0 6px 0 0 !important;
        accent-color: var(--m-accent);
        vertical-align: middle;
    }
    label { font-size: 13px; color: var(--m-text2); cursor: pointer; }

    /* === 버튼 === */
    .btn_submit, input[type="submit"] {
        width: 100% !important;
        padding: 14px !important;
        font-size: 15px !important;
        border-radius: var(--m-radius-sm) !important;
        background: var(--m-accent) !important;
        color: #fff !important;
        border: none !important;
        font-weight: 700 !important;
        min-height: var(--m-tap);
        letter-spacing: -0.2px;
        box-shadow: var(--m-shadow-md);
    }
    .btn_submit:active { transform: translateY(1px); }
    .btn_cancel, .btn_b01, .btn_b02 {
        padding: 12px 16px !important;
        font-size: 13px !important;
        border-radius: var(--m-radius-sm) !important;
        min-height: var(--m-tap);
    }
    .btn_confirm {
        padding: 14px 0 !important;
        text-align: center;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    .btn_confirm .btn { margin: 0 !important; }

    /* === 자동저장 표시 (writefrm 전용) === */
    #autosaveBar {
        position: sticky;
        top: 52px;
        z-index: 100;
        background: linear-gradient(to bottom, #fff 70%, rgba(255, 255, 255, .9));
        padding: 8px 14px;
        border-bottom: 1px solid var(--m-line);
        display: flex;
        align-items: center;
        justify-content: space-between;
        font-size: 11px;
        color: var(--m-mute);
        gap: 8px;
    }
    #autosaveBar .as-status { display: flex; align-items: center; gap: 6px; }
    #autosaveBar .as-dot {
        display: inline-block;
        width: 8px; height: 8px;
        background: var(--m-mute-soft);
        border-radius: 50%;
        transition: background .3s;
    }
    #autosaveBar .as-dot.saving { background: #f0ad4e; animation: pulse 1s infinite; }
    #autosaveBar .as-dot.saved { background: var(--m-success); }
    #autosaveBar button {
        background: var(--m-accent-soft);
        color: var(--m-accent);
        border: 1px solid var(--m-accent);
        padding: 4px 10px;
        font-size: 11px;
        font-weight: 600;
        border-radius: 14px;
        cursor: pointer;
        line-height: 1;
        height: 26px;
    }
    @keyframes pulse {
        0%, 100% { opacity: 1; }
        50% { opacity: .4; }
    }

    /* === 서명 캔버스 === */
    canvas { max-width: 100% !important; border: 1px solid var(--m-line); border-radius: var(--m-radius-sm); background: #fff; }

    /* === 마이페이지 탭 === */
    .nav-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; border: none; }
    .nav-tabs .nav-link {
        white-space: nowrap;
        font-size: 12px !important;
        padding: 8px 12px !important;
    }

    /* ============================================
       📊 페이지네이션
       ============================================ */
    .pg_wrap { padding: 16px 0; text-align: center; background: var(--m-card); border-radius: var(--m-radius); margin: 0 12px 12px; }
    .pg_wrap a, .pg_wrap strong {
        display: inline-flex;
        align-items: center; justify-content: center;
        min-width: 36px; height: 36px;
        font-size: 13px;
        border-radius: var(--m-radius-sm);
        margin: 0 2px;
    }
    .pg_wrap strong { background: var(--m-accent); color: #fff; }

    /* === 푸터 === */
    #footer {
        padding: 18px 14px !important;
        font-size: 11px !important;
        line-height: 1.6;
        margin-bottom: 64px;
        background: var(--m-card);
        color: var(--m-mute);
    }

    /* === 하단 탭바 === */
    #mobileTabBar {
        display: flex !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        height: 56px !important;
        background: rgba(26, 35, 50, .98) !important;
        backdrop-filter: blur(10px);
        z-index: 9999 !important;
        justify-content: space-around !important;
        align-items: center !important;
        box-shadow: 0 -1px 10px rgba(0, 0, 0, .2) !important;
        padding: 0 !important;
        padding-bottom: env(safe-area-inset-bottom) !important;
        margin: 0 !important;
        border: none !important;
    }
    #mobileTabBar > a {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-decoration: none !important;
        color: #8899aa !important;
        font-size: 9px !important;
        flex: 1 !important;
        height: 56px !important;
        padding: 4px 0 !important;
        gap: 2px;
        -webkit-tap-highlight-color: transparent;
    }
    #mobileTabBar > a > span:first-child { font-size: 19px !important; line-height: 1; }
    #mobileTabBar > a:active { color: #fff !important; }
    /* 가운데 + 버튼 */
    #mobileTabBar > a:nth-child(3) { margin-top: -20px !important; height: auto !important; }

    /* === 카카오톡 / 탑버튼 위치 === */
    #kakao-talk-channel-chat-button, .kakao_btn { bottom: 72px !important; right: 12px !important; }
    #top_btn { bottom: 72px !important; right: 12px !important; }

    /* === 상담문의 박스 (사이드바) === */
    .sidebar_contact, .sideBar_contact { display: none !important; }

    /* === 유틸 === */
    .sound_only { display: none !important; }
    .md-none { display: none !important; }
    .pc-only { display: none !important; }

    /* === FAQ 아코디언 === */
    .faq_list li {
        padding: 14px !important;
        background: var(--m-card);
        border-bottom: 1px solid var(--m-line);
    }
    .faq_list li .title { font-size: 14px !important; }

    /* === 메인 퀵메뉴 === */
    .mCiconBox, .mCiconBox2, .mCiconBox3, .mCiconBox4, .mCiconBox5 {
        width: 25% !important;
        padding: 6px 2px !important;
    }
    .mCiconBox .circle_icon, .mCiconBox2 .circle_icon, .mCiconBox3 .circle_icon {
        width: 44px !important; height: 44px !important;
    }
    .mCiconBox span, .mCiconBox2 span, .mCiconBox3 span {
        font-size: 10px !important;
        margin-top: 3px !important;
        display: block;
    }

    /* === 관리자 버튼 === */
    .btn_admin {
        font-size: 11px !important;
        padding: 4px 8px !important;
        border-radius: 6px;
    }

    /* 언어 위젯 위치 — 헤더에 통합되었으니 제거 (head.sub.php 의 #kdca-lang-widget) */
    #kdca-lang-widget { display: none !important; }

    /* ============================================
       🔘 등기 상세 — [NFT 등기부등본 / 등록증명서 열람] 액션 버튼 박스
       ============================================ */
    /* 버튼을 감싸는 빨간 테두리 박스 패딩 최소화 */
    #bo_v table tr td > div[style*="border"],
    #bo_v_atc div[style*="border"] {
        padding: 8px !important;
        margin: 8px 0 !important;
    }
    /* flex-y-center 안의 두 버튼 한 줄로 — 너비 균등 */
    #bo_v .flex-y-center,
    #bo_v_atc .flex-y-center {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        align-items: stretch !important;
        justify-content: space-between !important;
        width: 100% !important;
        padding: 0 !important;
    }
    #bo_v .flex-y-center > div,
    #bo_v_atc .flex-y-center > div {
        flex: 1 1 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
    }
    /* 고정 너비 클래스 무력화 (.w200/.w150/.w100 등 — 모바일에서는 100%) */
    #bo_v .flex-y-center .btn,
    #bo_v .flex-y-center a.btn_b02,
    #bo_v_atc .flex-y-center .btn,
    #bo_v_atc .flex-y-center a.btn_b02,
    #bo_v .w200, #bo_v .w150, #bo_v .w100,
    #bo_v_atc .w200, #bo_v_atc .w150, #bo_v_atc .w100 {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 10px 6px !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
        white-space: normal !important;
        word-break: keep-all !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 4px;
        border-radius: var(--m-radius-sm) !important;
        box-sizing: border-box;
    }
    /* 아이콘 작게 — 글자 잘림 방지 */
    #bo_v .flex-y-center .btn i,
    #bo_v_atc .flex-y-center .btn i {
        font-size: 11px !important;
        flex: 0 0 auto;
        margin-right: 2px;
    }
    /* ml10 (left margin 10px) 모바일에서 무력화 */
    #bo_v .ml10, #bo_v_atc .ml10 { margin-left: 0 !important; }
/* === TABBAR SVG ICONS v1 (2026-04-28) === */
    /* === TABBAR SVG ICONS v1 (2026-04-28) — 이모지 → 인라인 SVG === */
    #mobileTabBar > a {
        color: #8c98a8 !important;
        gap: 2px !important;
        transition: color .15s;
    }
    #mobileTabBar > a .tab-ic {
        width: 26px;
        height: 26px;
        display: flex;
        align-items: center;
        justify-content: center;
        line-height: 1;
    }
    #mobileTabBar > a .tab-ic svg {
        width: 24px;
        height: 24px;
        display: block;
        color: inherit;
    }
    #mobileTabBar > a .tab-lb {
        font-size: 10px !important;
        font-weight: 500;
        letter-spacing: -0.2px;
        line-height: 1;
        color: inherit;
        margin-top: 1px;
    }
    /* hover / active */
    #mobileTabBar > a:active,
    #mobileTabBar > a.active { color: #ffffff !important; }
    #mobileTabBar > a.active .tab-ic svg { stroke-width: 2.1; }
    #mobileTabBar > a.active .tab-lb { font-weight: 700; color: #fff !important; }

    /* FAB (가운데 + 버튼) */
    #mobileTabBar > a.tab-fab {
        margin-top: -22px !important;
        height: auto !important;
        gap: 4px;
        color: #4e73df !important;
    }
    #mobileTabBar > a.tab-fab .tab-fab-circle {
        width: 52px;
        height: 52px;
        border-radius: 50%;
        background: linear-gradient(135deg, #4e73df 0%, #224abe 100%);
        box-shadow: 0 4px 14px rgba(34, 74, 190, 0.5), inset 0 -2px 0 rgba(0,0,0,0.12);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        transition: transform .15s, box-shadow .15s;
    }
    #mobileTabBar > a.tab-fab .tab-fab-circle svg {
        width: 26px;
        height: 26px;
        color: #fff;
    }
    #mobileTabBar > a.tab-fab:active .tab-fab-circle {
        transform: scale(0.94);
        box-shadow: 0 2px 8px rgba(34, 74, 190, 0.4);
    }
    #mobileTabBar > a.tab-fab .tab-fab-label {
        font-size: 10px !important;
        font-weight: 700 !important;
        color: #4e73df !important;
    }
    #mobileTabBar > a.tab-fab.active .tab-fab-label { color: #224abe !important; }

/* === FILE INPUT v3 (Phase N-7-C 2026-04-28) === */
    /* === FILE INPUT v3 (Phase N-7-C 2026-04-28) — 회원사진/자격증 사진 업로드 === */
    input[type="file"] {
        font-size: 12px !important;
        padding: 8px 10px !important;
        background: var(--m-card) !important;
        border: 1px dashed var(--m-line) !important;
        border-radius: var(--m-radius-sm) !important;
        width: 100% !important;
        line-height: 1.4 !important;
        color: var(--m-mute) !important;
        cursor: pointer;
    }
    input[type="file"]::-webkit-file-upload-button,
    input[type="file"]::file-selector-button {
        font-size: 12px;
        font-weight: 600;
        padding: 6px 12px;
        background: var(--m-accent);
        color: #fff;
        border: none;
        border-radius: 6px;
        margin-right: 10px;
        cursor: pointer;
        -webkit-appearance: none;
    }
    /* 회원사진 미리보기 영역 */
    .reg_mb_icon_file img,
    .reg_mb_img_file img,
    img[alt*="회원사진"],
    img[alt*="회원이미지"] {
        max-width: 120px !important;
        max-height: 160px !important;
        border-radius: var(--m-radius-sm);
        border: 1px solid var(--m-line);
        background: var(--m-line-soft);
        padding: 2px;
        margin: 6px 0;
        display: block;
    }
    /* 자격증 사진 (apply.php 신청서 / 미리보기) */
    img.cert-photo, #applyCertPreview, .certificate_image_preview {
        max-width: 140px !important;
        max-height: 180px !important;
        border-radius: var(--m-radius-sm);
        border: 1px solid var(--m-line);
        background: #fff;
        padding: 4px;
        margin: 8px auto;
        display: block;
        box-shadow: var(--m-shadow);
    }

}

/* ============================================
   📱 SMALL MOBILE (max-width: 420px)
   ============================================ */
@media all and (max-width: 420px) {
    body { font-size: 12.5px; }
    .mCiconBox span, .mCiconBox2 span { font-size: 9px !important; }
    .mainVisualImage { height: 150px !important; }
    .contentTitle h2 { font-size: 14px !important; }
    #mHdr .mHdr-logo .mHdr-name { font-size: 12px; }
    #mHdr .mHdr-btn { padding: 0 8px; font-size: 10px; }
    #bo_v_title, #bo_v h2.h2_title { font-size: 16px !important; padding: 12px !important; }
    .view_info_table tr, #bo_v table tr { padding: 9px 12px !important; }
    .tbl_frm01 tr { padding: 10px 12px !important; }
}
