/* _content/YumBoss.Web/Components/Layout/BottomTabBar.razor.rz.scp.css */
/* 하단 고정 탭바 — 탑바와 동일한 브랜드 그라데이션, iOS PWA 홈 인디케이터(safe-area) 대응 */
/* ⚠ CSS 격리 주의: NavLink가 출력하는 <a>에는 scope 속성이 안 붙으므로,
   scope 속성을 보유한 .tab-bar(이 컴포넌트의 순수 HTML)를 앵커로 전 규칙을 ::deep으로 작성한다.
   ::deep 없이 쓰면 .tab-item[b-…] 형태로 컴파일돼 NavLink 4탭에 스타일이 전혀 적용되지 않는다. */
.tab-bar[b-3t74dehzuo] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    /* 데스크톱 폭 상한 — MainLayout.razor.css의 .app-main .content max-width(768px)와 반드시 같은 값 유지
       (position:fixed + left/right 0 + margin auto = 중앙 정렬, transform 불필요) */
    width: 100%;
    max-width: 768px;
    margin: 0 auto;
    /* 백드롭 1080 · 드로어 1090 · 탑바 1100 위 — 드로어가 열려 있어도 탭 탭·'전체' 재탭으로 닫기 가능 */
    z-index: 1110;
    display: flex;
    height: calc(3.5rem + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background-image: linear-gradient(90deg, rgb(5, 39, 103) 0%, #3a0647 100%);
    border-top: 1px solid rgba(255, 255, 255, .18);
}

/* 탭 1개 — NavLink(a)와 button 공용. min-height 44px = 터치 타겟(실제 높이 3.5rem=56px로 충족)
   position: relative = 미읽음 배지(.tab-badge) 절대배치 기준 */
.tab-bar[b-3t74dehzuo]  .tab-item {
    flex: 1 1 0;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 44px;
    text-decoration: none;
    color: rgba(255, 255, 255, .72);
    background: none;
    border: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.tab-bar[b-3t74dehzuo]  .tab-label {
    font-size: .68rem;
    line-height: 1;
}

.tab-bar[b-3t74dehzuo]  .tab-ico {
    width: 1.35rem;
    height: 1.35rem;
    background-size: cover;
    opacity: .72;
}

/* 활성 탭 강조 — NavLink 자동 active(현재 경로) + '전체' 버튼 IsOpen active(드로어 열림) 공용 규칙 */
.tab-bar[b-3t74dehzuo]  .tab-item.active {
    color: #ffc400;
    font-weight: 700;
}

.tab-bar[b-3t74dehzuo]  .tab-item.active .tab-ico {
    opacity: 1;
}

/* '전체' 탭 미읽음 알림 배지 — 아이콘 우상단에 절대배치(기준 = .tab-item의 position:relative) */
.tab-bar[b-3t74dehzuo]  .tab-badge {
    position: absolute;
    top: 4px;
    left: calc(50% + 4px);
    min-width: 1rem;
    height: 1rem;
    padding: 0 .25rem;
    border-radius: .5rem;
    background: #dc3545;
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
    line-height: 1rem;
    text-align: center;
}

/* 아이콘 5종 — NavMenu.razor.css 관례대로 bootstrap-icons(16x16, fill=white) data-URI SVG */
.tab-bar[b-3t74dehzuo]  .tab-ico-home {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.tab-bar[b-3t74dehzuo]  .tab-ico-schedule {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar-week' viewBox='0 0 16 16'%3E%3Cpath d='M11 6.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm-5 3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z'/%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z'/%3E%3C/svg%3E");
}

.tab-bar[b-3t74dehzuo]  .tab-ico-attendance {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-clock-fill' viewBox='0 0 16 16'%3E%3Cpath d='M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0zM8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z'/%3E%3C/svg%3E");
}

.tab-bar[b-3t74dehzuo]  .tab-ico-payroll {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-cash-coin' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M11 15a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm5-4a5 5 0 1 1-10 0 5 5 0 0 1 10 0z'/%3E%3Cpath d='M9.438 11.944c.047.596.518 1.06 1.363 1.116v.44h.375v-.443c.875-.061 1.386-.529 1.386-1.207 0-.618-.39-.936-1.09-1.1l-.296-.07v-1.2c.376.043.614.248.671.532h.658c-.047-.575-.54-1.024-1.329-1.073V8.5h-.375v.45c-.747.073-1.255.522-1.255 1.158 0 .562.378.92 1.007 1.066l.248.061v1.272c-.384-.058-.639-.27-.696-.563h-.668zm1.36-1.354c-.369-.085-.569-.26-.569-.522 0-.294.216-.514.572-.578v1.1h-.003zm.432.746c.449.104.655.272.655.569 0 .339-.257.571-.709.614v-1.195l.054.012z'/%3E%3Cpath d='M1 0a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h4.083c.058-.344.145-.678.258-1H3a2 2 0 0 0-2-2V3a2 2 0 0 0 2-2h10a2 2 0 0 0 2 2v3.528c.38.34.717.728 1 1.154V1a1 1 0 0 0-1-1H1z'/%3E%3Cpath d='M9.998 5.083 10 5a2 2 0 1 0-3.132 1.65 5.982 5.982 0 0 1 3.13-1.567z'/%3E%3C/svg%3E");
}

.tab-bar[b-3t74dehzuo]  .tab-ico-menu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}
/* _content/YumBoss.Web/Components/Layout/MainLayout.razor.rz.scp.css */
.app-topbar[b-b8e7gd73lj] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3.25rem;
    z-index: 1100;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 0 .75rem;
    background-image: linear-gradient(90deg, rgb(5, 39, 103) 0%, #3a0647 100%);
    color: #fff;
}

.menu-btn[b-b8e7gd73lj] {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 6px;
    color: #fff;
    width: 2.5rem;
    height: 2.1rem;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
}

.menu-btn:hover[b-b8e7gd73lj] { background: rgba(255, 255, 255, .22); }

.app-title[b-b8e7gd73lj] {
    font-weight: 800;
    font-size: 1.15rem;
    color: #ffc400;
    letter-spacing: -0.3px;
}

.app-drawer[b-b8e7gd73lj] {
    position: fixed;
    top: 3.25rem;
    bottom: 0;
    left: 0;
    width: 250px;
    max-width: 80vw;
    z-index: 1090;
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
    transform: translateX(-100%);
    transition: transform .2s ease;
    overflow-y: auto;
    /* 드로어(bottom:0)가 탭바(z-index 1110) 뒤로 깔리므로 마지막 항목(로그아웃)이 가려지지 않게 */
    padding-bottom: calc(3.5rem + env(safe-area-inset-bottom));
}

.app-drawer.open[b-b8e7gd73lj] {
    transform: translateX(0);
    box-shadow: 2px 0 18px rgba(0, 0, 0, .45);
}

.app-backdrop[b-b8e7gd73lj] {
    position: fixed;
    inset: 3.25rem 0 0 0;
    background: rgba(0, 0, 0, .4);
    z-index: 1080;
}

.app-main[b-b8e7gd73lj] {
    padding-top: 3.25rem;
    /* 하단 고정 탭바(3.5rem + safe-area)에 콘텐츠 끝부분이 가려지지 않게 */
    padding-bottom: calc(3.5rem + env(safe-area-inset-bottom));
}

.app-main .content[b-b8e7gd73lj] {
    padding: 1rem;
    /* 데스크톱 폭 상한 — BottomTabBar.razor.css의 .tab-bar max-width와 반드시 같은 값(768px) 유지,
       모바일(<768px)에서는 효과 없음 */
    max-width: 768px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .app-main .content[b-b8e7gd73lj] {
        padding: 1.25rem 1.75rem;
    }
}

#blazor-error-ui[b-b8e7gd73lj] {
    color-scheme: light only;
    background: lightyellow;
    /* 오류바(z-index 1000)가 하단 탭바에 덮이지 않게 탭바 높이만큼 띄움 */
    bottom: calc(3.5rem + env(safe-area-inset-bottom));
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-b8e7gd73lj] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* _content/YumBoss.Web/Components/Layout/NavMenu.razor.rz.scp.css */
/* 드로어 구획: 상단=자주 쓰는 기능(하단 탭 중복 안내), 하단=전체 메뉴 본체 */
.nav-section-cap[b-3nkgpkyz2l] {
    padding: 1rem 1rem .35rem;
    font-size: .72rem;
    color: rgba(255, 255, 255, .55);
    letter-spacing: -0.2px;
}

.nav-divider[b-3nkgpkyz2l] {
    margin: .5rem .75rem;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, .18);
}

.bi[b-3nkgpkyz2l] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-3nkgpkyz2l] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.nav-item[b-3nkgpkyz2l] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    /* 캡션 div(.nav-section-cap)가 최상단에 오면서 :first-of-type이 첫 nav-item과 안 맞을 수 있음
       — 드로어 상단 여백은 .nav-section-cap의 padding-top(1rem)이 대신한다 */
    .nav-item:first-of-type[b-3nkgpkyz2l] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-3nkgpkyz2l] {
        padding-bottom: 1rem;
    }

    .nav-item[b-3nkgpkyz2l]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
    }

.nav-item[b-3nkgpkyz2l]  a.active {
    background-color: rgba(255,255,255,0.37);
    color: white;
}

.nav-item[b-3nkgpkyz2l]  .nav-link:hover {
    background-color: rgba(255,255,255,0.1);
    color: white;
}
/* _content/YumBoss.Web/Components/Pages/Attendance/Attendance.razor.rz.scp.css */
/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-7mtcbjfw3w] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-7mtcbjfw3w],
.emp-link:focus-visible[b-7mtcbjfw3w] {
    color: #b45309;
}
/* _content/YumBoss.Web/Components/Pages/Attendance/AttendanceEarlyLeave.razor.rz.scp.css */
/* 조퇴 확인 카드 */
.early-confirm[b-nomx1x35qb] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1.5rem 1.25rem;
    text-align: center;
    max-width: 420px;
    margin: 1rem auto;
}

.early-icon[b-nomx1x35qb] {
    font-size: 2.4rem;
    line-height: 1;
    margin-bottom: .6rem;
}

.early-msg[b-nomx1x35qb] {
    font-size: 1.02rem;
    line-height: 1.6;
    color: #1f2937;
    margin: 0 0 1.2rem;
    word-break: keep-all;
}

.early-actions[b-nomx1x35qb] {
    display: flex;
    gap: .6rem;
    justify-content: center;
}

.early-actions .btn[b-nomx1x35qb] {
    min-height: 48px;
    min-width: 96px;
    font-size: 1rem;
}
/* _content/YumBoss.Web/Components/Pages/Attendance/AttendanceManage.razor.rz.scp.css */
.manage-list[b-bi8vmo6gmv] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.manage-row[b-bi8vmo6gmv] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: .6rem .75rem;
    border: 1px solid #eee;
    border-radius: .5rem;
    background: #fff;
}

.manage-emp[b-bi8vmo6gmv] {
    min-width: 8rem;
    flex: 0 0 auto;
}

.manage-times[b-bi8vmo6gmv] {
    display: flex;
    gap: .75rem;
    flex: 1 1 auto;
}

.manage-times label[b-bi8vmo6gmv] {
    display: flex;
    flex-direction: column;
    font-size: .8rem;
    color: #555;
    gap: .15rem;
}

.manage-times input[b-bi8vmo6gmv] {
    width: 7.5rem;
}

.manage-actions[b-bi8vmo6gmv] {
    display: flex;
    gap: .4rem;
    margin-left: auto;
}

/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-bi8vmo6gmv] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-bi8vmo6gmv],
.emp-link:focus-visible[b-bi8vmo6gmv] {
    color: #b45309;
}

/* 교차 이동 버튼 — 터치 타겟 확보(모바일 최우선) */
.cross-link[b-bi8vmo6gmv] {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
}
/* _content/YumBoss.Web/Components/Pages/Employees/EmployeeForm.razor.rz.scp.css */
/* 직원 편집 폼 접기 섹션 — EmployeeHub.razor.css 카드 관례(테두리 #e5e7eb, radius .75rem, 배경 #fff)를 따른다 */
/* details/summary는 이 컴포넌트 자기 마크업이라 ::deep 불필요. Bootstrap 폼 컨트롤 스타일은 건드리지 않는다. */

.form-section[b-c89cpuwsw9] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    background: #fff;
    margin-bottom: .75rem;
}

/* summary — 터치 타깃 44px 확보(모바일 최우선) */
.form-section > summary[b-c89cpuwsw9] {
    padding: .85rem 1rem;
    min-height: 44px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: .5rem;
    list-style: none;
}

/* 브라우저 기본 마커 제거 후 직접 화살표 렌더 */
.form-section > summary[b-c89cpuwsw9]::-webkit-details-marker {
    display: none;
}

.form-section > summary[b-c89cpuwsw9]::before {
    content: '▸';
    color: #6b7280; /* 비텍스트 대비 3:1 충족(#6b7280=4.8:1) */
}

.form-section[open] > summary[b-c89cpuwsw9]::before {
    content: '▾';
}

.form-section-body[b-c89cpuwsw9] {
    padding: 0 1rem 1rem;
}

/* 위험 구역 — 경고색 격리(퇴사·비밀번호 재발급) */
.form-section.danger[b-c89cpuwsw9] {
    border-color: #fca5a5;
    background: #fef2f2;
}

.form-section.danger > summary[b-c89cpuwsw9] {
    color: #dc2626;
}
/* _content/YumBoss.Web/Components/Pages/Employees/EmployeeHub.razor.rz.scp.css */
/* 직원 허브 — EmployeeList.razor.css 카드 관례(테두리 #e5e7eb, radius .75rem, padding 1rem, 배경 #fff)를 따른다 */

.hub-card[b-yabpb85ksf] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    padding: 1rem;
    background: #fff;
    margin-bottom: 1rem;
}

.hub-name[b-yabpb85ksf] {
    font-size: 1.4rem;
    font-weight: 700;
}

.hub-meta[b-yabpb85ksf] {
    font-size: .9rem;
    color: #6b7280;
}

.hub-line[b-yabpb85ksf] {
    margin-top: .35rem;
    font-size: .9rem;
    color: #374151;
}

/* 직원 메모 줄 — 텍스트 + 수정(✏️) 링크 */
.hub-memo[b-yabpb85ksf] {
    display: flex;
    align-items: baseline;
    gap: .4rem;
}

.hub-memo-edit[b-yabpb85ksf] {
    text-decoration: none;
    font-size: .95rem;
    line-height: 1;
}

/* ── 탭(근태기록 · 상세정보) ── */
.hub-tabs[b-yabpb85ksf] {
    display: flex;
    gap: .25rem;
    border-bottom: 2px solid #e5e7eb;
    margin-bottom: 1rem;
}

.hub-tab[b-yabpb85ksf] {
    flex: 1;
    background: none;
    border: none;
    padding: .7rem .5rem;
    font-size: 1rem;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px; /* 밑줄이 탭 컨테이너 border와 겹치도록 */
    min-height: 44px;
}

.hub-tab.active[b-yabpb85ksf] {
    color: #b45309;
    border-bottom-color: #f59e0b;
}

.hub-tab:focus-visible[b-yabpb85ksf] {
    outline: 2px solid #f59e0b;
    outline-offset: -2px;
}

/* ── 상세정보 카드(근무 정보 · 급여 정보) ── */
.info-card[b-yabpb85ksf] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    padding: 1rem;
    background: #fff;
    margin-bottom: 1rem;
}

.info-head[b-yabpb85ksf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .6rem;
}

.info-title[b-yabpb85ksf] {
    font-size: 1.05rem;
    font-weight: 700;
}

.info-edit[b-yabpb85ksf] {
    white-space: nowrap;
}

/* 라벨(dt) · 값(dd) 2열 — 모바일에서 라벨 폭 고정 */
.info-dl[b-yabpb85ksf] {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: .5rem .75rem;
    margin: 0;
}

.info-dl dt[b-yabpb85ksf] {
    color: #6b7280;
    font-weight: 600;
    font-size: .9rem;
}

.info-dl dd[b-yabpb85ksf] {
    margin: 0;
    color: #1f2937;
    font-size: .92rem;
}

.info-sub[b-yabpb85ksf] {
    font-size: .72rem;
    font-weight: 400;
    color: #9ca3af;
}

/* 근무일정 라인 — 요일 열 고정폭으로 시간 정렬 */
.sched-line[b-yabpb85ksf] {
    line-height: 1.6;
}

.sl-days[b-yabpb85ksf] {
    display: inline-block;
    min-width: 3.6em;
    font-weight: 600;
}

.sl-time[b-yabpb85ksf] {
    font-variant-numeric: tabular-nums;
}

/* 모바일(~390px) 1열 고정, 640px 이상에서만 2열 */
.hub-actions[b-yabpb85ksf] {
    display: grid;
    grid-template-columns: 1fr;
    gap: .6rem;
}

@media (min-width: 640px) {
    .hub-actions[b-yabpb85ksf] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.hub-btn[b-yabpb85ksf] {
    padding: .85rem;
    min-height: 44px; /* 터치 타깃 높이 확보 */
    font-weight: 600;
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    background: #fff;
    text-align: left;
    transition: box-shadow .15s, transform .15s;
}

.hub-btn:hover[b-yabpb85ksf] {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
    transform: translateY(-1px);
}

/* ── 허브 섹션(이번 주 근무 · 이번 달 근로현황) ── */
.hub-section-title[b-yabpb85ksf] {
    font-weight: 700;
    margin: 1rem 0 .5rem;
    font-size: 1rem;
}

/* 이번 주 근무 행 — hub-card 관례(테두리 #e5e7eb, radius .75rem, 배경 #fff) + 터치 타깃 44px */
.week-row[b-yabpb85ksf] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    padding: .7rem .85rem;
    background: #fff;
    margin-bottom: .5rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

/* 오늘 하이라이트 — btn-warning 관례와 동조한 warning 계열 */
.week-row.today[b-yabpb85ksf] {
    border: 1px solid #f59e0b;
    background: #fffbeb;
}

.week-row:hover[b-yabpb85ksf] {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.hub-empty[b-yabpb85ksf] {
    padding: .75rem 0;
}

.hub-hint[b-yabpb85ksf] {
    margin-top: .25rem;
}

/* 키보드 포커스 시각 피드백 */
.hub-btn:focus-visible[b-yabpb85ksf],
.week-row:focus-visible[b-yabpb85ksf],
.att14-row:focus-visible[b-yabpb85ksf] {
    outline: 2px solid #f59e0b;
    outline-offset: 2px;
}

/* ── 최근 출퇴근 행 — week-row 관례(테두리 #e5e7eb, radius .75rem, 배경 #fff, 터치 44px) ── */
.att14-row[b-yabpb85ksf] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    padding: .7rem .85rem;
    background: #fff;
    margin-bottom: .5rem;
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    cursor: pointer;
}

.att14-row:hover[b-yabpb85ksf] {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.att14-worked[b-yabpb85ksf] {
    margin-left: auto;
    font-size: .85rem;
}
/* _content/YumBoss.Web/Components/Pages/Employees/EmployeeList.razor.rz.scp.css */
.emp-grid[b-gysq71d2xc] {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
}

@media (min-width: 640px) {
    .emp-grid[b-gysq71d2xc] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .emp-grid[b-gysq71d2xc] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.emp-card[b-gysq71d2xc] {
    border: 1px solid #e5e7eb;
    border-radius: .75rem;
    padding: 1rem;
    cursor: pointer;
    transition: box-shadow .15s, transform .15s;
    background: #fff;
}

.emp-card:hover[b-gysq71d2xc] {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
    transform: translateY(-1px);
}

.emp-top[b-gysq71d2xc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .35rem;
}

.emp-name[b-gysq71d2xc] {
    font-size: 1.1rem;
    font-weight: 700;
}

.emp-meta[b-gysq71d2xc] {
    font-size: .85rem;
    color: #6b7280;
}

.emp-wage[b-gysq71d2xc] {
    margin-top: .4rem;
    font-weight: 600;
    color: #b45309;
}

.emp-phone[b-gysq71d2xc] {
    margin-top: .25rem;
    font-size: .85rem;
    color: #374151;
}

/* 이달 근무 요약(요일 묶음·시간) */
.emp-sched[b-gysq71d2xc] {
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px dashed #e5e7eb;
}

.emp-sched-head[b-gysq71d2xc] {
    font-size: .72rem;
    font-weight: 700;
    color: #6b7280;
    margin-bottom: .2rem;
}

.emp-sched-line[b-gysq71d2xc] {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    font-size: .88rem;
    color: #1f2937;
    line-height: 1.55;
}

.esl-days[b-gysq71d2xc] {
    min-width: 3.6em; /* 요일 열 폭 고정 → 여러 줄의 시간 시작 위치 정렬 */
    font-weight: 600;
    color: #374151;
}

.esl-time[b-gysq71d2xc] {
    font-variant-numeric: tabular-nums; /* 시:분 자릿수 정렬 */
}

.emp-sched-none[b-gysq71d2xc] {
    font-size: .85rem;
    color: #9ca3af;
}

/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-gysq71d2xc] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-gysq71d2xc],
.emp-link:focus-visible[b-gysq71d2xc] {
    color: #b45309;
}

/* [수정] 버튼 소형화 — 폰 390px에서 이름·배지·버튼 한 줄 유지
   (.emp-top은 flex+space-between: 이름에 margin-right:auto를 줘 배지·버튼을 오른쪽으로 묶음) */
.emp-name[b-gysq71d2xc] {
    margin-right: auto;
}

.emp-edit-btn[b-gysq71d2xc] {
    font-size: .72rem;
    padding: 1px 8px;
    margin-left: .4rem;
    white-space: nowrap;
}
/* _content/YumBoss.Web/Components/Pages/Employees/PendingApprovals.razor.rz.scp.css */
/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-r4ppqrlbf3] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-r4ppqrlbf3],
.emp-link:focus-visible[b-r4ppqrlbf3] {
    color: #b45309;
}
/* _content/YumBoss.Web/Components/Pages/Home.razor.rz.scp.css */
/* 관리자 홈 '오늘 현황판' — 모바일 390px 최우선, 가로 스크롤 0 (테두리·라운드·포인트색 = ScheduleDay 관례) */
.today-board[b-cxf7dsnola] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-bottom: 1rem;
}

.tb-title[b-cxf7dsnola] { font-weight: 700; }

/* 요약 칩 3개 — 한 줄 배치, 터치 타겟 44px */
.tb-summary[b-cxf7dsnola] {
    display: flex;
    gap: .5rem;
}

.tb-chip[b-cxf7dsnola] {
    flex: 1;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    background: #fff;
    color: #1f2937;
    text-decoration: none;
    font-weight: 600;
    font-size: .95rem;
    white-space: nowrap;
}

/* 미체크 > 0 강조 */
.tb-chip-warn[b-cxf7dsnola] {
    border-color: #dc3545;
    color: #dc3545;
}

/* 오늘 근무자 목록 */
.tb-rows[b-cxf7dsnola] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.tb-row[b-cxf7dsnola] {
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    background: #fff;
    padding: .65rem .8rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.tb-row-link[b-cxf7dsnola] {
    color: #374151;
    text-decoration: none;
}

.tb-time[b-cxf7dsnola] { font-variant-numeric: tabular-nums; }

/* 이름 링크 — stretched-link 오버레이 위로(z-index) = 이름 클릭은 직원 허브로 */
.tb-emp[b-cxf7dsnola] {
    font-weight: 700;
    position: relative;
    z-index: 2;
}

/* 직원 이름 링크 시각 힌트 — ScheduleDay .emp-link 관례와 동일 */
.emp-link[b-cxf7dsnola] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-cxf7dsnola],
.emp-link:focus-visible[b-cxf7dsnola] {
    color: #b45309;
}

/* 오늘 근무 없음 빈 상태 */
.tb-empty[b-cxf7dsnola] {
    text-align: center;
    color: #6b7280;
    padding: 1.25rem 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
}

/* 빠른 액션 3개 — 한 줄 배치, 터치 타겟 44px */
.tb-actions[b-cxf7dsnola] {
    display: flex;
    gap: .5rem;
}

.tb-act[b-cxf7dsnola] {
    flex: 1;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    font-size: .9rem;
    padding: .35rem .25rem;
}

/* ── 직원(Crew) '내 오늘' 카드 — 기존 관례(테두리 #e5e7eb·라운드 .6rem·흰 배경 = .tb-row 동일 톤), 390px 가로 스크롤 0 ── */
.myday[b-cxf7dsnola] {
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    background: #fff;
    padding: .8rem;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.myday-title[b-cxf7dsnola] { font-weight: 700; }

.myday-state[b-cxf7dsnola] { font-weight: 600; }

/* 근무 중 상태 — 성공(초록) 강조 */
.myday-state.working[b-cxf7dsnola] { color: #198754; }

/* 오늘 근무 예정 없음 빈 상태 */
.myday-empty[b-cxf7dsnola] {
    color: #6b7280;
    text-align: center;
    padding: .5rem 0;
}

/* 근무 1건 행 — 터치 타겟 44px */
.myday-row[b-cxf7dsnola] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    min-height: 44px;
}

.myday-time[b-cxf7dsnola] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

/* 390px에서 칩·액션 3개가 한 줄에 들어가도록 글자 크기 미세 축소(nowrap 넘침 방지) */
@media (max-width: 400px) {
    .tb-chip[b-cxf7dsnola] { font-size: .85rem; }
    .tb-act[b-cxf7dsnola] { font-size: .8rem; }
}
/* _content/YumBoss.Web/Components/Pages/Payroll/Payroll.razor.rz.scp.css */
/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-zl4aabxw3k] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-zl4aabxw3k],
.emp-link:focus-visible[b-zl4aabxw3k] {
    color: #b45309;
}

/* 행 보조 버튼(명세서) — 터치 타겟 확보(모바일 최우선) */
.pay-slip-btn[b-zl4aabxw3k] {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
}

/* ── 급여 히어로(월 선택 + 합계 + 액션) ── */
.pay-hero[b-zl4aabxw3k] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1.1rem 1rem;
    margin-bottom: 1rem;
}

.ph-top[b-zl4aabxw3k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ph-nav[b-zl4aabxw3k] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.ph-arrow[b-zl4aabxw3k] {
    border: none;
    background: none;
    font-size: 1.5rem;
    line-height: 1;
    color: #6b7280;
    cursor: pointer;
    width: 44px;
    height: 44px;
    border-radius: .5rem;
}

.ph-arrow:hover[b-zl4aabxw3k] {
    background: #f3f4f6;
}

.ph-month[b-zl4aabxw3k] {
    font-size: 1.15rem;
    font-weight: 700;
}

.ph-guide[b-zl4aabxw3k] {
    border: none;
    background: none;
    color: #6b7280;
    text-decoration: underline;
    font-size: .85rem;
    cursor: pointer;
    min-height: 44px;
}

.ph-total[b-zl4aabxw3k] {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -.02em;
    margin-top: .3rem;
    font-variant-numeric: tabular-nums;
}

.ph-sub[b-zl4aabxw3k] {
    color: #9ca3af;
    font-size: .8rem;
    margin-bottom: .75rem;
}

.ph-guide-box[b-zl4aabxw3k] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: .5rem;
    padding: .6rem .75rem;
    font-size: .8rem;
    color: #6b7280;
    margin-bottom: .75rem;
    line-height: 1.5;
}

.ph-actions[b-zl4aabxw3k] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.ph-btn[b-zl4aabxw3k] {
    flex: 1 1 auto;
    min-height: 44px;
    border-radius: .6rem;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    font-weight: 600;
    font-size: .9rem;
    white-space: nowrap;
}

.ph-btn:hover:not(:disabled)[b-zl4aabxw3k] {
    background: #e5e7eb;
}

.ph-btn-accent[b-zl4aabxw3k] {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #b45309;
}

/* ── 직원별 급여 리스트 ── */
.paylist2[b-zl4aabxw3k] {
    display: flex;
    flex-direction: column;
}

.pay2-row[b-zl4aabxw3k] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .85rem .25rem;
    border-bottom: 1px solid #f0f1f4;
    cursor: pointer;
    min-height: 60px;
}

.pay2-row:hover[b-zl4aabxw3k] {
    background: #fafafa;
}

.pay2-row:focus-visible[b-zl4aabxw3k] {
    outline: 2px solid #f59e0b;
    outline-offset: -2px;
}

.pay2-avatar[b-zl4aabxw3k] {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #eef2ff;
    color: #4f46e5;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.05rem;
}

.pay2-name[b-zl4aabxw3k] {
    flex: 1 1 auto;
    font-weight: 600;
    font-size: 1rem;
    min-height: auto; /* .emp-link의 44px 강제 해제(행 자체가 60px 터치 타겟) */
}

.pay2-right[b-zl4aabxw3k] {
    text-align: right;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.pay2-amount[b-zl4aabxw3k] {
    font-weight: 700;
    font-size: 1.05rem;
    font-variant-numeric: tabular-nums;
}

.pay2-sub[b-zl4aabxw3k] {
    font-size: .78rem;
    color: #9ca3af;
}

.pay2-chev[b-zl4aabxw3k] {
    flex: 0 0 auto;
    color: #c4c8d0;
    font-size: 1.3rem;
    line-height: 1;
}
/* _content/YumBoss.Web/Components/Pages/Payroll/PayrollDetail.razor.rz.scp.css */
/* 명세서 표: 본문이 아닌 표만 가로 스크롤(390px 대응).
   .ps-table 전역 스타일(wwwroot/app.css)과의 특이도 충돌을 피하려고
   래퍼(.ps-table-wrap) 기준 ::deep 하위 선택자를 쓴다. */
.ps-table-wrap[b-xnj5ma9gkk] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* 금액 열이 줄바꿈·찌그러지지 않게 고정 폭 보장 */
.ps-table-wrap[b-xnj5ma9gkk]  .num {
    white-space: nowrap;
    min-width: 96px;
}
/* _content/YumBoss.Web/Components/Pages/Payroll/PayrollEmployee.razor.rz.scp.css */
/* 직원별 월 급여 상세 */

.pe-head[b-cyqumlhtst] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
}

.pe-head-top[b-cyqumlhtst] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.pe-name[b-cyqumlhtst] {
    font-size: 1.3rem;
    font-weight: 700;
}

.pe-slip[b-cyqumlhtst] {
    white-space: nowrap;
    min-height: 40px;
}

.pe-wage[b-cyqumlhtst] {
    margin-top: .5rem;
    font-size: .95rem;
}

.pe-wage-label[b-cyqumlhtst] {
    color: #6b7280;
    margin-right: .5rem;
}

.pe-wage-val[b-cyqumlhtst] {
    font-weight: 600;
    color: #2563eb;
}

/* 월 선택 */
.pe-monthnav[b-cyqumlhtst] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-bottom: .5rem;
}

.ph-arrow[b-cyqumlhtst] {
    border: none;
    background: none;
    font-size: 1.5rem;
    line-height: 1;
    color: #6b7280;
    cursor: pointer;
    width: 44px;
    height: 44px;
    border-radius: .5rem;
}

.ph-arrow:hover[b-cyqumlhtst] {
    background: #f3f4f6;
}

.pe-month[b-cyqumlhtst] {
    font-size: 1.15rem;
    font-weight: 700;
}

/* 지급액·인정시간 요약 */
.pe-summary[b-cyqumlhtst] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
}

.pe-sum-row[b-cyqumlhtst] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .35rem 0;
    font-size: .95rem;
}

.pe-sum-total[b-cyqumlhtst] {
    border-bottom: 1px solid #f0f1f4;
    padding-bottom: .6rem;
    margin-bottom: .3rem;
    font-weight: 700;
    font-size: 1.05rem;
}

.pe-total-val[b-cyqumlhtst] {
    font-size: 1.5rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.pe-sum-note[b-cyqumlhtst] {
    margin-top: .4rem;
}

/* 일별/항목 내역 */
.pe-section-title[b-cyqumlhtst] {
    font-weight: 700;
    margin: 1rem 0 .5rem;
    font-size: 1rem;
}

.pe-day-row[b-cyqumlhtst] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .7rem .25rem;
    border-bottom: 1px solid #f0f1f4;
}

.pe-day-date[b-cyqumlhtst] {
    font-weight: 600;
    font-size: .95rem;
}

.pe-day-hours[b-cyqumlhtst] {
    margin-top: .1rem;
}

.pe-day-pay[b-cyqumlhtst] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
/* _content/YumBoss.Web/Components/Pages/Schedule/ScheduleBulk.razor.rz.scp.css */
.bulk-table[b-wv06uy09tg] {
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    /* 390px 폰 대응: overflow hidden → 가로 스크롤로 변경.
       grid 1fr 열이 TimePicker 내용폭 아래로 찌그러져 겹치는 대신
       표만 살짝 가로 스크롤되게 한다(라운드 코너 클리핑은 유지됨). */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 640px;
}

.bulk-head[b-wv06uy09tg], .bulk-row[b-wv06uy09tg] {
    display: grid;
    grid-template-columns: 48px 56px 1fr 1fr;
    align-items: center;
    gap: .4rem;
    padding: .5rem .6rem;
    /* 좁은 폭에서 TimePicker(약 150px×2)가 겹치지 않게 최소 열 너비 보장 */
    min-width: 400px;
}

.bulk-head[b-wv06uy09tg] {
    background: #f9fafb;
    font-size: .8rem;
    font-weight: 700;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
}

.bulk-row[b-wv06uy09tg] {
    border-bottom: 1px solid #f1f3f5;
}

.bulk-row:last-child[b-wv06uy09tg] { border-bottom: none; }

.bulk-row.on[b-wv06uy09tg] {
    background: #fffdf5;
}

.bulk-day[b-wv06uy09tg] {
    font-weight: 700;
}

.bulk-day.sat[b-wv06uy09tg] { color: #2563eb; }
.bulk-day.sun[b-wv06uy09tg] { color: #dc2626; }

@media (max-width: 480px) {
    .bulk-head[b-wv06uy09tg], .bulk-row[b-wv06uy09tg] {
        grid-template-columns: 36px 40px 1fr 1fr;
        gap: .25rem;
        padding: .4rem .35rem;
    }
}
/* _content/YumBoss.Web/Components/Pages/Schedule/ScheduleDay.razor.rz.scp.css */
.day-shifts[b-wy39fqx31x] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.day-shift[b-wy39fqx31x] {
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    padding: .75rem .9rem;
    background: #fff;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.day-shift.cancelled[b-wy39fqx31x] { opacity: .6; }

.ds-main[b-wy39fqx31x] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.ds-emp[b-wy39fqx31x] { font-weight: 700; font-size: 1.05rem; }
.ds-time[b-wy39fqx31x] { color: #374151; }
.ds-hours[b-wy39fqx31x] { color: #b45309; font-size: .9rem; }

.ds-actions[b-wy39fqx31x] {
    display: flex;
    flex-wrap: wrap; /* 390px에서 수정·삭제·알림 3버튼 줄바꿈 허용 */
    gap: .4rem;
}

/* 행동 버튼 — 터치 타겟 44px(모바일 최우선) */
.ds-actions .btn[b-wy39fqx31x] {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-wy39fqx31x] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
    display: inline-flex;
    align-items: center;
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
}

.emp-link:hover[b-wy39fqx31x],
.emp-link:focus-visible[b-wy39fqx31x] {
    color: #b45309;
}

/* 교차 이동 버튼 — 터치 타겟 확보(모바일 최우선) */
.cross-link[b-wy39fqx31x] {
    min-height: 44px; /* 터치 타겟 44px(모바일 최우선) */
    display: inline-flex;
    align-items: center;
}
/* _content/YumBoss.Web/Components/Pages/Schedule/ScheduleWeek.razor.rz.scp.css */
.week-nav[b-93nztdwaj2] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.week-range[b-93nztdwaj2] {
    font-weight: 600;
    margin: 0 .25rem;
}

.day-list[b-93nztdwaj2] {
    display: grid;
    grid-template-columns: 1fr;
    gap: .85rem; /* 카드 간격 확대(터치 오조작 방지) */
}

@media (min-width: 992px) {
    .day-list[b-93nztdwaj2] {
        grid-template-columns: repeat(2, 1fr);
    }
}

.day-card[b-93nztdwaj2] {
    border: 1px solid #e5e7eb;
    border-radius: .6rem;
    padding: .75rem;
    background: #fff;
}

.day-card.is-today[b-93nztdwaj2] {
    border-color: #ffc400;
    box-shadow: 0 0 0 2px rgba(255, 196, 0, .25);
}

.day-head[b-93nztdwaj2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .5rem;
}

/* 일자 헤더 버튼(관리자) — 헤더 전체 탭 → 일별 화면 이동, 터치 타겟 44px 확보 */
.day-head-btn[b-93nztdwaj2] {
    width: 100%;
    background: none;
    border: 0;
    padding: .25rem 0;
    min-height: 44px;
    cursor: pointer;
    text-align: left;
    -webkit-tap-highlight-color: transparent;
    border-radius: .45rem;
    transition: background .1s;
}

/* 월간 클릭 레이어(.mday-hit)와 동일한 노랑 틴트 관례 */
.day-head-btn:hover[b-93nztdwaj2] { background: rgba(255, 196, 0, .14); }
.day-head-btn:active[b-93nztdwaj2] { background: rgba(255, 196, 0, .26); }

.day-head-btn:focus-visible[b-93nztdwaj2] {
    outline: 2px solid #b45309;
    outline-offset: 1px;
}

/* 이동 가능 시각 힌트(›) — #6b7280 = 흰 배경 대비 4.8:1(저대비 교정) */
.day-open[b-93nztdwaj2] {
    color: #6b7280;
    font-size: 1.1rem;
    line-height: 1;
}

/* 주간 근무 카드 탭 가능 시각 힌트(›) — day-open 관례 준수, 관리자에게만 렌더 */
.shift-open[b-93nztdwaj2] {
    margin-left: auto;
    color: #6b7280;
    font-size: 1.1rem;
    line-height: 1;
}

.day-name[b-93nztdwaj2] {
    font-weight: 700;
    margin-right: .35rem;
}

.day-name.sat[b-93nztdwaj2] { color: #2563eb; }
.day-name.sun[b-93nztdwaj2] { color: #dc2626; }

.day-date[b-93nztdwaj2] {
    color: #6b7280;
    font-size: .9rem;
}

.day-empty[b-93nztdwaj2] {
    color: #6b7280; /* 저대비 교정: 2.5:1 → 4.8:1 */
    font-size: .85rem;
    padding: .35rem 0;
}

.shift[b-93nztdwaj2] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .6rem;
    margin-top: .5rem; /* 카드 사이 간격 확대 */
    min-height: 44px;  /* 터치 타겟 최소 44px */
    border-radius: .45rem;
    background: #f9fafb;
    cursor: pointer;
}

.shift:hover[b-93nztdwaj2] { background: #f3f4f6; }

.shift.cancelled[b-93nztdwaj2] { opacity: .55; text-decoration: line-through; }

.shift-emp[b-93nztdwaj2] { font-weight: 600; }

.shift-time[b-93nztdwaj2] { color: #374151; }

.shift-hours[b-93nztdwaj2] {
    margin-left: auto;
    font-size: .85rem;
    color: #b45309;
}

.shift.readonly[b-93nztdwaj2] { cursor: default; }
.shift.readonly:hover[b-93nztdwaj2] { background: #f9fafb; }

/* ---- 월간(묶음 바) ---- */
.month2-dow[b-93nztdwaj2] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    text-align: center;
    font-weight: 700;
    font-size: .8rem;
    color: #6b7280;
    margin-bottom: 2px;
}

.month2-dow .sun[b-93nztdwaj2] { color: #dc2626; }
.month2-dow .sat[b-93nztdwaj2] { color: #2563eb; }

/* 달력이 화면(폰) 세로를 채우도록 */
.month2[b-93nztdwaj2] {
    display: flex;
    flex-direction: column;
    min-height: calc(100dvh - 12.5rem);
}

.mweek[b-93nztdwaj2] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-top: 1px solid #e5e7eb;
    padding-bottom: 3px;
    align-content: start;
    /* flex-shrink 0: 직원(레인)이 많은 주가 내용보다 작게 줄어 근무 바가 다음 주로 넘치는 것 방지.
       flex-grow 1·basis auto: 주가 적을 땐 화면 세로를 채우도록 늘어남(넘침 없이 채움만). */
    flex: 1 0 auto;
    min-height: 4rem;
    background:
        repeating-linear-gradient(to right,
            transparent 0,
            transparent calc(100% / 7 - 1px),
            #f1f3f5 calc(100% / 7 - 1px),
            #f1f3f5 calc(100% / 7));
}

.mweek:last-child[b-93nztdwaj2] {
    border-bottom: 1px solid #e5e7eb;
}

/* 오늘 날짜 칸 강조(모든 사용자) — 칸 배경 노랑 틴트 */
.mtoday[b-93nztdwaj2] {
    background: rgba(255, 196, 0, .18);
    border: 1px solid rgba(255, 196, 0, .55);
    border-radius: 8px;
    margin: 1px;
}

/* 날짜 칸 전체를 덮는 투명 클릭 레이어(숫자·근무바는 그 위에서 각자 동작) — 칸 아무 곳이나 눌러 근무 등록 */
.mday-hit[b-93nztdwaj2] {
    cursor: pointer;
    border-radius: 7px;
    margin: 1px;
    -webkit-tap-highlight-color: transparent;
    transition: background .1s;
}
.mday-hit:hover[b-93nztdwaj2] { background: rgba(255, 196, 0, .14); }
.mday-hit:active[b-93nztdwaj2] { background: rgba(255, 196, 0, .26); }

.mdaynum[b-93nztdwaj2] {
    position: relative;   /* 클릭 레이어 위에 표시 */
    pointer-events: none; /* 숫자는 통과 → 아래 mday-hit 가 클릭 처리(칸 전체 동일 동작) */
    font-size: .72rem;
    color: #374151;
    padding: 2px 0 0 4px;
    line-height: 1.2;
}

.mdaynum.addable[b-93nztdwaj2] { cursor: pointer; }
.mdaynum.out[b-93nztdwaj2] { color: #767676; } /* 저대비 교정: 1.9:1 → 4.54:1(이달 밖 음영 위계는 유지) */
.mdaynum.sun[b-93nztdwaj2] { color: #dc2626; }
.mdaynum.sat[b-93nztdwaj2] { color: #2563eb; }

.mdaynum.today[b-93nztdwaj2] {
    color: #1f2937;
    font-weight: 800;
}

.mdaynum.today[b-93nztdwaj2]::before {
    content: "";
    display: inline-block;
    width: 6px; height: 6px;
    background: #ffc400;
    border-radius: 50%;
    margin-right: 3px;
    vertical-align: middle;
}

.mbar[b-93nztdwaj2] {
    margin: 1px 2px;
    padding: 0 4px;
    background: #fff3cd;
    border: 1px solid #ffe08a;
    border-radius: 4px;
    font-size: .68rem;
    line-height: 17px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    /* 표시 전용: 클릭은 아래 날짜 칸(mday-hit)이 처리 → 칸 전체가 버튼(누른 위치의 날짜로 이동) */
    pointer-events: none;
}

.mbar.cancelled[b-93nztdwaj2] { opacity: .5; text-decoration: line-through; }
.mbar-name[b-93nztdwaj2] { font-weight: 600; }
.mbar-time[b-93nztdwaj2] { color: #b45309; }

/* (구 월간 그리드 CSS 삭제 — 월간 뷰는 month2 계열만 사용, razor 미사용 확인 후 제거) */

/* 직원 이름 링크(허브 이동) — 관리자에게만 렌더 */
.emp-link[b-93nztdwaj2] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: #b45309;
    text-underline-offset: 2px;
}

.emp-link:hover[b-93nztdwaj2],
.emp-link:focus-visible[b-93nztdwaj2] {
    color: #b45309;
}

/* 주간 카드 한정 터치 타겟 44px — 공용 .emp-link엔 불가(월간 바 .mbar-name은 19px 레인이라 레인 높이 불변 필수) */
.shift .emp-link[b-93nztdwaj2] {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
/* _content/YumBoss.Web/Components/TimePicker.razor.rz.scp.css */
/* 좁은 폭(일괄 등록 grid 열 등)에서 잘림·겹침 방지.
   시·분은 2자리 숫자뿐이라 64px 고정이면 충분하고,
   Bootstrap 기본 padding-right(2.25rem)를 줄여 화살표 겹침 없이 숫자가 다 보이게 한다. */
.time-picker[b-fwb21swkm2] {
    flex-wrap: nowrap;
    max-width: 100%;
}

.time-picker select[b-fwb21swkm2] {
    width: 64px;
    min-width: 0;
    flex: 0 0 auto;
    padding-right: 1.5rem;
    background-position: right .4rem center;
}
