/* /App.razor.rz.scp.css */
/* 화면 전체를 덮는 부트 스크린 (모바일/데스크톱 공통 중앙 정렬) */
.boot-screen[b-idqpxvt9u6] {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px;
    /* iOS 안전 영역 */
    padding-top: calc(env(safe-area-inset-top, 0px) + 24px);
    padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 24px);
    background: var(--boot-bg, #ffffff);
    color: var(--boot-fg, #111827);
    z-index: 9999;
}

/* 카드 형태로 메시지를 보여줍니다 */
.boot-card[b-idqpxvt9u6] {
    width: min(520px, 92vw);
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(255,255,255,.86);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    padding: clamp(20px, 4vw, 32px);
    text-align: center;
}

/* 타이포그래피 */
.boot-title[b-idqpxvt9u6] {
    margin: 12px 0 4px 0;
    font-size: clamp(20px, 4.8vw, 28px);
    font-weight: 700;
    letter-spacing: .2px;
}

.boot-msg[b-idqpxvt9u6] {
    margin: 6px 0 2px 0;
    font-size: clamp(14px, 3.6vw, 16px);
}

.boot-sub[b-idqpxvt9u6] {
    margin: 0;
    opacity: .7;
    font-size: clamp(12px, 3.2vw, 14px);
}

/* 심플 스피너 */
.spinner[b-idqpxvt9u6] {
    --sz: clamp(36px, 9vw, 48px);
    width: var(--sz);
    height: var(--sz);
    margin: 0 auto 12px auto;
    border-radius: 50%;
    border: 3px solid #e5e7eb;
    border-top-color: #3b82f6; /* 시스템 기본 색 대비가 좋음 */
    animation: spin 0.9s linear infinite;
}

    /* === 부트 카드(중앙 박스) 내부 글자색을 강제로 고정 === */
    /* 라이트: 검정 글자 + 흰 배경 */
    .boot-screen .boot-card[b-idqpxvt9u6],
    .boot-screen .boot-card *[b-idqpxvt9u6] {
        color: #111827 !important;
        -webkit-text-fill-color: #111827 !important; /* iOS Safari 텍스트 칠 */
    }

.app-viewport[b-idqpxvt9u6] {
    /* ... */
    padding-top: env(safe-area-inset-top, 0px);
    padding-right: env(safe-area-inset-right, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
    padding-left: env(safe-area-inset-left, 0px);
}

@supports not (height: 100dvh) {
    .app-viewport[b-idqpxvt9u6] {
        min-height: 100vh;
    }
}

.iframe-container[b-idqpxvt9u6] {
    flex: 1 1 auto;
    min-height: 0;
}
/* /Pages/Install.razor.rz.scp.css */
/* /Pages/Login.razor.rz.scp.css */
/* 전체를 화면 중앙에 배치하는 컨테이너 */
.auth-shell[b-iwnbmcmizf] {
    /* 뷰포트 높이 단위: 브라우저별 지원 상황을 고려해 순차 선언 */
    min-height: 100vh; /* fallback */
    min-height: 100svh; /* 모바일 안전 뷰포트 */
    min-height: 100dvh; /* 동적 뷰포트 (최신) */

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center; /* 기본: 세로 가운데 */
    /* 상/하 안전영역 고려 + 중앙 배치 시 공간 */
    padding-block: clamp(24px, 6vh, 120px);
    padding-inline: 16px;
    /* iOS 노치/홈바 안전영역 */
    padding-top: max(24px, env(safe-area-inset-top));
    padding-bottom: max(24px, env(safe-area-inset-bottom));
    gap: 16px; /* 브랜드와 카드 사이 간격 */
}

/* 화면 높이가 낮을 때(예: 스마트폰 가로) 너무 답답하지 않게 위쪽 정렬로 전환 */
@media (max-height: 560px) {
    .auth-shell[b-iwnbmcmizf] {
        justify-content: flex-start;
        padding-top: max(16px, env(safe-area-inset-top));
        gap: 12px;
    }
}

/* 로고/타이틀 블록 */
.auth-brand[b-iwnbmcmizf] {
    text-align: center;
    margin-bottom: 4px; /* 카드와의 간격은 gap으로 대부분 해결, 보정만 */
}

/* 기존 것 유지 + 약간의 반응형 보정 */
.center[b-iwnbmcmizf] {
    text-align: center;
}

.loading-text[b-iwnbmcmizf] {
    margin-top: 8px;
}

/* 로고/타이틀도 모바일에서 자연스럽게 */
.company-logo[b-iwnbmcmizf] {
    width: min(300px, 70vw);
    height: auto;
    display: block;
    margin: auto;
}

.company-title[b-iwnbmcmizf] {
    margin: 0;
    font-weight: 700;
    font-size: clamp(22px, 5vw, 28px);
}

/* 카드/폼 모바일 반응형 보정 */
.login-card[b-iwnbmcmizf] {
    width: min(420px, 92vw);
    margin: 0 auto; /* 중앙 정렬(수평) */
    padding: 12px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    background: #fff;
}

/* 입력 높이 + 포커스 보정 */
.form-group[b-iwnbmcmizf] {
    margin-bottom: 10px;
}

.form-control[b-iwnbmcmizf] {
    width: 100%;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    height: 40px; /* 데스크톱/태블릿 기본 */
    padding: 10px 12px;
    font-size: 15px;
    box-sizing: border-box;
    transition: border-color .2s ease, box-shadow .2s ease;
}

    .form-control:focus[b-iwnbmcmizf] {
        outline: none;
        border-color: var(--btn-primary);
        box-shadow: 0 0 0 3px rgba(37,99,235,.18);
    }

@media (max-width: 420px) {
    .form-control[b-iwnbmcmizf] {
        height: 38px;
        font-size: 14.5px;
    }
}

/* 버튼 (이전 답변 색 변수 사용 가정) */
.btn-primary[b-iwnbmcmizf] {
    width: 100%;
    background-color: var(--btn-primary);
    border: none;
    border-radius: 10px;
    height: 42px;
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(37,99,235,.20);
    transition: background-color .18s ease, box-shadow .18s ease, transform .04s ease;
    -webkit-tap-highlight-color: transparent; /* 모바일 탭 하이라이트 제거 */
}

    .btn-primary:hover[b-iwnbmcmizf] {
        background-color: var(--btn-primary-hover);
        box-shadow: 0 6px 16px rgba(37,99,235,.22);
    }

    .btn-primary:active[b-iwnbmcmizf] {
        background-color: var(--btn-primary-active);
        transform: translateY(1px);
    }

    .btn-primary:focus-visible[b-iwnbmcmizf] {
        outline: none;
        box-shadow: 0 4px 12px rgba(37,99,235,.20), 0 0 0 3px var(--btn-primary-ring);
    }

    .btn-primary[disabled][b-iwnbmcmizf] {
        background-color: #93c5fd;
        color: #f8fafc;
        cursor: not-allowed;
        box-shadow: none;
        opacity: .9;
    }

/* 라벨 */
.label-bold[b-iwnbmcmizf] {
    font-weight: 700;
    font-size: 14px;
    color: #1E90FF; /* DodgerBlue */
}

/* 기타(기존) */
.error[b-iwnbmcmizf] {
    color: #d32f2f;
}

.alert-error[b-iwnbmcmizf] {
    margin: 8px 0 16px;
    padding: 10px 12px;
    border: 1px solid #e66;
    background: #fee;
    color: #a00;
    border-radius: 6px;
    font-weight: 600;
}

/* .mt10은 더 이상 필요 없지만, 다른 곳 영향 방지용으로 남겨도 무방 */
.mt10[b-iwnbmcmizf] {
    margin-top: 10%;
}

/* 상단 고정 배너: 레이아웃 영향 제거 */
.pwa-hint-fixed[b-iwnbmcmizf] {
    position: fixed;
    top: max(0px, env(safe-area-inset-top));
    left: 0;
    right: 0;
    z-index: 2000;
    /* 배경/그림자 등은 컴포넌트 내부 CSS에 이미 있겠지만, 필요 시 여기서 보강 */
}
/* /Pages/Menu.razor.rz.scp.css */
/* ===== Global ===== */
html[b-qdgxbsw7o6], body[b-qdgxbsw7o6] {
    height: 100%;
}

*[b-qdgxbsw7o6],
*[b-qdgxbsw7o6]::before,
*[b-qdgxbsw7o6]::after {
    box-sizing: border-box;
}

.page-root[b-qdgxbsw7o6] {
    display: flex;
    flex-direction: column;
    height: 100vh;
}

/* ===== Top toolbars ===== */
.custom-toolbar[b-qdgxbsw7o6] {
    background-color: #2d71c4 !important;
    color: white !important;
    padding: 0;
    margin: 0;
    height: auto !important;
    min-height: 36px;
    display: flex;
    align-items: center;
}

/* ===== Top menu buttons (level-1) ===== */
.custom-menu-button[b-qdgxbsw7o6] {
    background-color: #2d71c4;
    color: white !important;
    font-weight: bold;
    width: 100px !important;
    padding: 5px 5px !important;
    border-radius: 5px;
}

    .custom-menu-button:hover[b-qdgxbsw7o6] {
        background-color: white;
        color: #2d71c4 !important;
    }

/* ===== Popover menu (level-2) ===== */
.custom-popup-menu[b-qdgxbsw7o6] {
    padding: 0 !important;
    max-height: 70vh;
    overflow: auto;
}

.custom-popup-menu-item[b-qdgxbsw7o6] {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    min-height: 30px !important;
    font-size: 16px !important;
}

    .custom-popup-menu-item:hover[b-qdgxbsw7o6] {
        background-color: #f0f0f0 !important;
    }

.menu-wrapper[b-qdgxbsw7o6] {
    position: relative;
    display: inline-block;
}

.country-img[b-qdgxbsw7o6] {
    width: 1.333333em;
    height: 1em;
    vertical-align: middle;
}

/* ===== IFrame host ===== */
.iframe-container[b-qdgxbsw7o6] {
    /* 상단 툴바 2줄(약 110px)만큼 높이 보정 */
    height: calc(100vh - 110px);
    min-height: 0;
    position: relative;
    width: 100%;
}

    .iframe-container iframe[b-qdgxbsw7o6] {
        width: 100%;
        height: 100%;
        border: none;
        display: block;
    }

/* ===== Quick Launch (단축 버튼 영역) ===== */
/* 한 곳에서 크기/간격을 조정할 수 있도록 변수로 관리 */
/* ===== Brand variables ===== */
:root[b-qdgxbsw7o6] {
    --brand-color: #2d71c4; /* 여기만 바꾸면 전역 동기화 */
    --brand-fg: #ffffff;
    --shortcut-height: 40px;
    --shortcut-width: 30ch;
    --shortcut-gap-x: 7ch;
    --shortcut-gap-y: 12px;
}

/* ★ X 아이콘: 후미 ‘정중앙’ 고정 */
#cmShortcuts .cm-shortcut-item .cm-close[b-qdgxbsw7o6] {
    position: absolute;
    right: 6px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 18px;
    height: 18px;
    z-index: 2;
}

#cmShortcuts[b-qdgxbsw7o6] {
    display: grid;
    grid-template-columns: repeat(auto-fill, 22ch);
    grid-auto-rows: 40px;
    column-gap: 7ch;
    row-gap: 12px;
}

/* (선택) 호버 시 약간의 강조 */
.cm-shortcut:hover[b-qdgxbsw7o6] {
    filter: brightness(0.95);
}

.cm-shortcut-wrap[b-qdgxbsw7o6] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    padding: .5rem 1rem;
}

.cm-close[b-qdgxbsw7o6] {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 22px;
    height: 22px;
    border-radius: 9999px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: 700;
    font-size: 14px;
    z-index: 2; /* 버튼보다 위 */
    pointer-events: auto; /* 클릭 받기 */
}

    .cm-close:hover[b-qdgxbsw7o6] {
        transform: scale(1.05);
    }

.mud-icon-button.pin-active .mud-icon-root[b-qdgxbsw7o6] {
    color: #2d71c4 !important;
}

.mud-icon-button.pin-active[b-qdgxbsw7o6] {
    background-color: rgba(45,113,196,.10);
}

:root[b-qdgxbsw7o6] {
    --cm-brand-blue: #2d71c4;
    --cm-accent: #FFB000; /* 보색(앰버) */


}

/* 모바일 자식 헤더 */
.child-header--mobile[b-qdgxbsw7o6] {
    display: flex;
    align-items: center;
    gap: .5rem;
    height: 36px;
    padding: 0 12px;
    background: var(--cm-brand-blue);
    color: var(--cm-accent);
    font-weight: 800;
    letter-spacing: .1px;
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); /* 하단 보조 라인(1px) */
    /* ▶ 콤보 언더라인처럼 또렷한 2px 라인 */
    border-top: 2px solid var(--cm-accent);
}

:root[b-qdgxbsw7o6] {
    --cm-safe-l: env(safe-area-inset-left, 0px);
    --cm-safe-r: env(safe-area-inset-right, 0px);
}

/* MudToolBar 기본 좌우 여백 제거(중복 방지) */
.mud-toolbar[b-qdgxbsw7o6], .mud-toolbar .mud-toolbar-root[b-qdgxbsw7o6] {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 우리 커스텀 툴바의 최종 좌우 여백: 기본 8px + safe-area 중 큰 값 */
.custom-toolbar[b-qdgxbsw7o6] {
    padding-inline: max(8px, var(--cm-safe-l)) max(8px, var(--cm-safe-r)) !important;
}

/* 두 줄 모두 같은 폭/박스 계산 강제 */
#topbars[b-qdgxbsw7o6] {
    width: 100%;
}

/* 모든 툴바: 한 줄 유지 + 가로 스크롤 허용 */
#topbars .custom-toolbar[b-qdgxbsw7o6] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
}

    /* MudToolBar 실제 컨테이너: 감기지 않게 */
    #topbars .custom-toolbar .mud-toolbar-root[b-qdgxbsw7o6] {
        display: flex;
        flex-wrap: nowrap; /* ← wrap 금지 */
    }

/* 데스크탑: 단축버튼 세로(열 우선) 배치 + 뷰포트 높이 기반 */
@media (min-width: 992px) {
    /* flex/grid 강제 해제 */
    #cmShortcuts[b-qdgxbsw7o6] {
        display: block !important;
    }

        /* 컨테이너: 멀티컬럼 + 가로간격 1.5cm + 세로는 뷰포트 기준 */
        #cmShortcuts.cm-shortcut-wrap[b-qdgxbsw7o6] {
            display: block !important; /* flex/grid 해제 */
            column-width: 28ch; /* 열 목표 폭 (필요시 26~34ch 조정) */
            column-gap: 1.5cm; /* ← 가로 gap */
            column-fill: auto; /* 세로로 꽉 채운 뒤 다음 열로 */
            height: calc(100vh - 150px); /* 상단 툴바·여백만큼 보정(필요시 110~180px 사이 조정) */
            overflow: auto; /* 많아지면 세로 스크롤(원치 않으면 제거) */
            padding: .5rem 1rem;
        }

        /* 아이템: 세로간격 0.5cm, 열 분할 방지, flex 잔여 속성 무력화 */
        #cmShortcuts .cm-shortcut-item[b-qdgxbsw7o6] {
            break-inside: avoid;
            -webkit-column-break-inside: avoid;
            -moz-column-break-inside: avoid;
            display: block !important;
            width: 100% !important;
            margin: 0 0 0.2cm !important; /* ← 세로 gap = 0.5cm */
            position: relative;
            flex: initial !important; /* 내부 flex 잔여 규칙 제거 */
        }

        /* 버튼은 열 너비 100% 채우기 */
        #cmShortcuts .cm-shortcut[b-qdgxbsw7o6] {
            width: 100% !important;
            min-height: 40px;
            font-weight: 700;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding-right: 28px;
        }

        /* 닫기 X */
        #cmShortcuts .cm-close[b-qdgxbsw7o6] {
            position: absolute;
            top: 6px;
            right: 8px;
            width: 22px;
            height: 22px;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            opacity: .85;
            cursor: pointer;
        }

            #cmShortcuts .cm-close:hover[b-qdgxbsw7o6] {
                opacity: 1;
            }

        #cmShortcuts .cm-close-icon[b-qdgxbsw7o6] {
            width: 16px;
            height: 16px;
        }
}

/* 모바일/태블릿: 기존대로 숨김 */
@media (max-width: 991.98px) {
    #cmShortcuts[b-qdgxbsw7o6] {
        display: none !important;
    }
}


/* =========================
   iPhone 등 모바일 '세로' 전용: 우측 여백 축소 + 언어 선택 유동폭
   ========================= */
@media (max-width: 768px) and (orientation: portrait) {
    /* 툴바 좌우 여백 재정의: 왼쪽은 안전영역 고려, 오른쪽은 극소화 */
    #topbars .custom-toolbar[b-qdgxbsw7o6] {
        padding-left: max(6px, var(--cm-safe-l)) !important;
        padding-right: 2px !important; /* ← 우측 여백 과감히 축소 */
    }

    /* 언어 선택: 유동폭으로 전환(인라인 스타일 제거가 전제) */
    .language-select[b-qdgxbsw7o6] {
        width: auto !important;
        min-width: 150px !important;
        max-width: 45vw !important; /* 필요시 40~55vw 조절 */
    }

    /* 툴바 내부 요소는 줄바꿈 없이 타일처럼 나열 (기존 규칙 보강) */
    #topbars .custom-toolbar[b-qdgxbsw7o6] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }

        #topbars .custom-toolbar > *[b-qdgxbsw7o6] {
            flex: 0 0 auto;
        }
}

/* (선택) iOS 사파리 감지 시 한 번 더 보수적으로 적용 */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 768px) and (orientation: portrait) {
        #topbars .custom-toolbar[b-qdgxbsw7o6] {
            padding-right: 2px !important;
        }
    }
}




/* =========================
   모바일 '세로' 전용 강제 교정 (iPhone 포함)
   - 우측 여백 확 줄이기
   - 언어 선택 박스 폭을 컴포넌트 CSS에서 직접 제어
   - 1/2번째 줄 패딩과 스크롤 정책 동일화
   ========================= */
@media (max-width: 768px) and (orientation: portrait) {
    /* 두 줄 모두 같은 규칙: 줄바꿈 금지 + 스크롤 + 패딩 좌우 직접 지정 */
    #topbars > .custom-toolbar[b-qdgxbsw7o6] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        /* padding-inline 대신 명시적 좌우 */
        padding-left: max(6px, env(safe-area-inset-left, 0px)) !important;
        padding-right: 2px !important; /* 우측 과감히 축소 */
    }

        /* 1번째 줄: 언어 선택 왼쪽 마진(ml-4) 제거해서 오른쪽 공간을 살짝 더 확보 */
        #topbars > .custom-toolbar:first-child #langSelect[b-qdgxbsw7o6] {
            margin-left: 0 !important; /* ml-4 무효화 */
        }

    /* 언어 선택 폭: 전역(app.css) 말고 여기서 '진짜'로 제한 */
    #langSelect.language-select[b-qdgxbsw7o6] {
        width: auto !important;
        min-width: 150px !important;
        max-width: 42vw !important; /* 필요시 38~50vw로 미세 조정 */
        /* 텍스트/아이콘이 꽉 차서 오른쪽 여백 생기는 걸 방지 */
        box-sizing: border-box !important;
    }

    /* 메뉴 버튼(2번째 줄) 고정폭을 소폭 줄여 과도한 max-content 폭 완화 */
    #topbars > .custom-toolbar:nth-child(2) .custom-menu-button[b-qdgxbsw7o6] {
        width: 80px !important; /* 기존 100px → 80px */
        padding-left: 4px !important;
        padding-right: 4px !important;
    }

    /* Mud 내부 기본 padding이 다시 살아나는 경우 대비(최후방어) */
    .mud-toolbar[b-qdgxbsw7o6], .mud-toolbar .mud-toolbar-root[b-qdgxbsw7o6] {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* iOS 사파리 전용 감지: 가끔 padding-inline 남아있을 경우 추가로 우측 0 보정 */
@supports (-webkit-touch-callout: none) {
    @media (max-width: 768px) and (orientation: portrait) {
        #topbars > .custom-toolbar[b-qdgxbsw7o6] {
            padding-right: 0 !important;
        }
    }
}

/* ===== Content slot design tokens ===== */
:root[b-qdgxbsw7o6] {
    --page-pad-x: 16px;
    --page-pad-y: 12px;
    --page-pad-x-mobile: 12px;
    --page-pad-y-mobile: 10px;
    --gap-sm: 8px;
    --gap-md: 12px;
    --gap-lg: 16px;
}

@media (max-width: 768px) {
    :root[b-qdgxbsw7o6] {
        --page-pad-x: var(--page-pad-x-mobile);
        --page-pad-y: var(--page-pad-y-mobile);
    }
}

/* 툴바 아래 남은 영역 전체 */
.cm-content-host[b-qdgxbsw7o6] {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden; /* 실제 스크롤은 내부에서 */
    background: #f7f9fc;
}

/* 실제 스크롤 영역(가로/세로 자동) */
.cm-content-scroll[b-qdgxbsw7o6] {
    position: absolute;
    inset: 0;
    padding: var(--page-pad-y) var(--page-pad-x);
    overflow: auto; /* ⬅︎ 세로/가로 자동 */
    box-sizing: border-box;
}

/* 넓은 표/코드에만 가로 스크롤 유도 */
.cm-content-scroll .wide[b-qdgxbsw7o6] {
    min-width: 960px;
}

/* 컬럼 재계산 최소화 */
#cmPinsList[b-qdgxbsw7o6] {
    contain: layout paint;
}

/* 드래그 중 무거운 효과 억제 */
.cm-dragging .cm-pin:hover[b-qdgxbsw7o6],
.cm-dragging .cm-pin-item:hover[b-qdgxbsw7o6] {
    filter: none;
}

.cm-dragging .cm-pin-item.dnd-over[b-qdgxbsw7o6] {
    outline: 2px dashed rgba(45,113,196,.35);
    background: transparent;
}

.cm-dragging .cm-pin-orderbox[b-qdgxbsw7o6] {
    display: none;
}

/* 드래그 중 hover/효과 차단(리플로우 줄이기) */
.cm-dragging .cm-pin:hover[b-qdgxbsw7o6],
.cm-dragging .cm-pin-item:hover[b-qdgxbsw7o6] {
    filter: none;
}

.cm-dragging .cm-pin-orderbox[b-qdgxbsw7o6] {
    display: none;
}

/* 드래그 중 .dnd-over 강조를 꺼서 페인트 감소(선택) */
.cm-dragging .cm-pin-item.dnd-over[b-qdgxbsw7o6] {
    outline: none;
    background: transparent;
}

/* 드래그 중엔 무거운 효과/필터 OFF */
#cmPinsList.cm-dragging .cm-pin:hover[b-qdgxbsw7o6],
#cmPinsList.cm-dragging .cm-pin-item:hover[b-qdgxbsw7o6] {
    filter: none !important;
}

/* 드래그 중엔 .dnd-over 강조도 약화(선택) */
#cmPinsList.cm-dragging .cm-pin-item.dnd-over[b-qdgxbsw7o6] {
    outline: 2px dashed rgba(45,113,196,.35);
    background: transparent;
}



/* /Shared/Desktophost.razor.rz.scp.css */
.mdi-desktop[b-4nw1ug9uwz] {
    position: relative;
    width: 100%;
    height: calc(100vh - 180px); /* 상단바 높이에 맞게 조절 */
    background: #f5f7fb;
    overflow: hidden;
}

.mdi-window[b-4nw1ug9uwz] {
    position: absolute;
    background: #fff;
    border: 1px solid #e0e4ea;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,.08);
    display: flex;
    flex-direction: column;
    user-select: none;
}

    .mdi-window.active[b-4nw1ug9uwz] {
        outline: 2px solid #2d71c455;
    }

.mdi-titlebar[b-4nw1ug9uwz] {
    height: 40px;
    display: flex;
    align-items: center;
    padding: 0 8px;
    border-bottom: 1px solid #eef1f6;
    background: linear-gradient(180deg,#f9fbff,#f2f5fb);
    cursor: grab;
}

.mdi-title[b-4nw1ug9uwz] {
    font-weight: 600;
    color: #223;
}

.mdi-actions[b-4nw1ug9uwz] {
    margin-left: auto;
    display: flex;
    gap: 4px;
}

.mdi-body[b-4nw1ug9uwz] {
    flex: 1;
    min-height: 0;
}

.mdi-iframe[b-4nw1ug9uwz] {
    width: 100%;
    height: 100%;
    border: 0;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
}

.resizer[b-4nw1ug9uwz] {
    position: absolute;
}

    .resizer.n[b-4nw1ug9uwz] {
        top: -3px;
        left: 8px;
        right: 8px;
        height: 6px;
        cursor: ns-resize;
    }

    .resizer.s[b-4nw1ug9uwz] {
        bottom: -3px;
        left: 8px;
        right: 8px;
        height: 6px;
        cursor: ns-resize;
    }

    .resizer.e[b-4nw1ug9uwz] {
        right: -3px;
        top: 8px;
        bottom: 8px;
        width: 6px;
        cursor: ew-resize;
    }

    .resizer.w[b-4nw1ug9uwz] {
        left: -3px;
        top: 8px;
        bottom: 8px;
        width: 6px;
        cursor: ew-resize;
    }

    .resizer.ne[b-4nw1ug9uwz] {
        right: -3px;
        top: -3px;
        width: 8px;
        height: 8px;
        cursor: nesw-resize;
    }

    .resizer.se[b-4nw1ug9uwz] {
        right: -3px;
        bottom: -3px;
        width: 8px;
        height: 8px;
        cursor: nwse-resize;
    }

    .resizer.sw[b-4nw1ug9uwz] {
        left: -3px;
        bottom: -3px;
        width: 8px;
        height: 8px;
        cursor: nesw-resize;
    }

    .resizer.nw[b-4nw1ug9uwz] {
        left: -3px;
        top: -3px;
        width: 8px;
        height: 8px;
        cursor: nwse-resize;
    }
