/* ============================================================
   간다GO 어드민 - UI 리디자인 v3.0
   라이트 사이드바 + SVG 라인아이콘
   기존 common.css, components.css, mobile.css 위에 로드
   ============================================================ */

/* ── 공통 변수 ── */
:root {
    --sidebar-w: 230px;
    --sidebar-bg: #FFFFFF;
    --sidebar-active-bg: #2196F3;
    --sidebar-active-text: #FFFFFF;
    --sidebar-text: #4B5563;
    --sidebar-text-hover: #1A1D26;
    --sidebar-hover-bg: #F0F7FF;
    --sidebar-border: #E5E8EB;
    --bg-main: #F0F2F5;
    --bg-card: #ffffff;
    --border-light: #E5E8EB;
    --border-medium: #D0D5DD;
    --text-primary: #1A1D26;
    --text-secondary: #6B7280;
    --text-muted: #9CA3AF;
    --blue-primary: #2196F3;
    --blue-dark: #0D5C8A;
    --green: #22C55E;
    --yellow: #F59E0B;
    --red: #EF4444;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.08);
    --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
}

body {
    background: var(--bg-main) !important;
    font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif !important;
    color: var(--text-primary);
}

/* ============================================================
   PC - 라이트 사이드바
   ============================================================ */
@media (min-width: 769px) {

    header {
        display: block !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: var(--sidebar-w) !important;
        height: 100vh !important;
        background: var(--sidebar-bg) !important;
        border-bottom: none !important;
        border-right: 1px solid var(--sidebar-border) !important;
        z-index: 200 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        box-shadow: 2px 0 8px rgba(0,0,0,0.04) !important;
    }
    .header-inner {
        flex-direction: column !important;
        align-items: stretch !important;
        padding: 0 !important;
        max-width: none !important;
        height: 100%;
    }

    /* 로고 */
    .logo {
        padding: 22px 20px !important;
        text-align: center !important;
        border-bottom: 1px solid var(--sidebar-border) !important;
        flex-shrink: 0;
        background: #FAFBFC;
    }
    .logo img { height: 34px !important; }

    /* 네비게이션 */
    .nav {
        flex-direction: column !important;
        gap: 2px !important;
        margin-left: 0 !important;
        padding: 14px 12px !important;
        flex: 1;
    }

    /* ── 아이콘 공통 (CSS mask) ── */
    .nav-item {
        padding: 11px 14px !important;
        border-bottom: none !important;
        border-radius: var(--radius-sm) !important;
        color: var(--sidebar-text) !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        transition: all 0.15s ease !important;
        white-space: nowrap !important;
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
    }
    .nav-item::before {
        content: '' !important;
        display: inline-block !important;
        width: 20px !important;
        height: 20px !important;
        flex-shrink: 0 !important;
        -webkit-mask-size: contain !important;
        mask-size: contain !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
        -webkit-mask-position: center !important;
        mask-position: center !important;
        background-color: currentColor !important;
    }

    /* ── SVG 아이콘 매핑 ── */

    /* 주문현황 - clipboard */
    .nav-item[onclick*="'order'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
    }
    /* 매장정산 - dollar */
    .nav-item[onclick*="'settlement'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6'/%3E%3C/svg%3E");
    }
    /* 고객관리 - users */
    .nav-item[onclick*="'customer'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
    }
    /* 매장관리 - home/shop */
    .nav-item[onclick*="'store'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
    }
    /* 기사관리 - truck */
    .nav-item[onclick*="'rider'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='15' height='13' rx='2'/%3E%3Cpath d='M16 8h4l3 5v5h-7V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='15' height='13' rx='2'/%3E%3Cpath d='M16 8h4l3 5v5h-7V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
    }
    /* 기사배정 - send */
    .nav-item[onclick*="'dispatch'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'/%3E%3C/svg%3E");
    }
    /* 배송이력 - clock */
    .nav-item[onclick*="'rider-history'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
    }
    /* 기사정산 - file-text (rider-settle만, manual 제외) */
    .nav-item[onclick*="'rider-settle')"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
    }
    /* 정산(미등록) - file-plus */
    .nav-item[onclick*="'rider-settle-manual'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M12 18v-6M9 15h6'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M12 18v-6M9 15h6'/%3E%3C/svg%3E");
    }
    /* 매장충전 - zap */
    .nav-item[onclick*="'charge'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
    }
    /* 충전금현황 - credit-card */
    .nav-item[onclick*="'balance'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cpath d='M1 10h22'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cpath d='M1 10h22'/%3E%3C/svg%3E");
    }
    /* 주문분포도 - bar-chart */
    .nav-item[onclick*="'distribution'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10M18 20V4M6 20v-4'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10M18 20V4M6 20v-4'/%3E%3C/svg%3E");
    }
    /* 매장현황 - grid */
    .nav-item[onclick*="'store-master'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
    }
    /* 시간별분포 - clock+chart */
    .nav-item[onclick*="'hourly-dist'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
    }
    /* 수익계산서 - trending-up (그래프) */
    .nav-item[onclick*="'revenue'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='23 6 13.5 15.5 8.5 10.5 1 18'/%3E%3Cpolyline points='17 6 23 6 23 12'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='23 6 13.5 15.5 8.5 10.5 1 18'/%3E%3Cpolyline points='17 6 23 6 23 12'/%3E%3C/svg%3E");
    }
    /* 공지관리 - megaphone/bell */
    .nav-item[onclick*="'notice'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
    }
    /* AI분석 - cpu/brain */
    .nav-item[onclick*="'ai-analysis'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3'/%3E%3C/svg%3E");
    }
    /* 매장지도 - map-pin */
    .nav-item[onclick*="'store-map'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
    }
    /* 주문분포(지도) - map */
    .nav-item[onclick*="'order-dist-map'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E");
    }
    /* 프로모션 - gift */
    .nav-item[onclick*="'promotion'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
    }
    /* 근무스케줄 - calendar */
    .nav-item[onclick*="'schedule'"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E");
    }
    /* 공지사항(매장용) - clipboard-list */
    .nav-item[onclick*="openStoreNoticeList"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
    }
    /* 로그아웃 - log-out */
    .nav-item[onclick*="logout"]::before {
        -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
        mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
    }

    /* ── 메뉴 상태 ── */
    .nav-item:hover {
        background: var(--sidebar-hover-bg) !important;
        color: var(--sidebar-text-hover) !important;
    }
    .nav-item.active {
        background: var(--sidebar-active-bg) !important;
        color: var(--sidebar-active-text) !important;
        font-weight: 700 !important;
        box-shadow: 0 2px 8px rgba(33,150,243,0.25);
    }
    .nav-item[onclick*="logout"] {
        margin-top: auto !important;
        color: var(--text-muted) !important;
        border-top: 1px solid var(--sidebar-border) !important;
        border-radius: 0 !important;
        padding-top: 14px !important;
    }
    .nav-item[onclick*="logout"]:hover {
        color: var(--red) !important;
        background: #FEF2F2 !important;
    }

    .mobile-header { display: none !important; }

    /* ── role별 메뉴 숨김 보호 (인라인 style + JS 동적 변경 모두 대응) ── */
    header .nav .nav-item[style*="display:none"],
    header .nav .nav-item[style*="display: none"] {
        display: none !important;
    }

    main {
        margin-left: var(--sidebar-w) !important;
        padding: 28px 32px !important;
        max-width: none !important;
    }
    #main-app > div[style*="position: fixed"][style*="bottom: 10px"] {
        left: calc(var(--sidebar-w) + 10px) !important;
        right: auto !important;
    }
}

/* ============================================================
   모바일 드롭다운 아이콘
   ============================================================ */
.mobile-dropdown .tab-btn {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}
.mobile-dropdown .tab-btn::before {
    content: '' !important;
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    background-color: currentColor !important;
}
/* 주문현황 */
.mobile-dropdown .tab-btn[onclick*="'order'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
}
/* 매장정산 */
.mobile-dropdown .tab-btn[onclick*="'settlement'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6'/%3E%3C/svg%3E");
}
/* 고객관리 */
.mobile-dropdown .tab-btn[onclick*="'customer'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75'/%3E%3C/svg%3E");
}
/* 매장관리 */
.mobile-dropdown .tab-btn[onclick*="'store'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E");
}
/* 기사관리 */
.mobile-dropdown .tab-btn[onclick*="'rider'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='15' height='13' rx='2'/%3E%3Cpath d='M16 8h4l3 5v5h-7V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='3' width='15' height='13' rx='2'/%3E%3Cpath d='M16 8h4l3 5v5h-7V8z'/%3E%3Ccircle cx='5.5' cy='18.5' r='2.5'/%3E%3Ccircle cx='18.5' cy='18.5' r='2.5'/%3E%3C/svg%3E");
}
/* 기사배정 */
.mobile-dropdown .tab-btn[onclick*="'dispatch'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z'/%3E%3C/svg%3E");
}
/* 배송이력 */
.mobile-dropdown .tab-btn[onclick*="'rider-history'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
}
/* 기사정산 */
.mobile-dropdown .tab-btn[onclick*="'rider-settle')"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8M10 9H8'/%3E%3C/svg%3E");
}
/* 정산(미등록) */
.mobile-dropdown .tab-btn[onclick*="'rider-settle-manual'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M12 18v-6M9 15h6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z'/%3E%3Cpath d='M14 2v6h6M12 18v-6M9 15h6'/%3E%3C/svg%3E");
}
/* 매장충전 */
.mobile-dropdown .tab-btn[onclick*="'charge'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E");
}
/* ★ 충전금현황 - credit-card (추가) */
.mobile-dropdown .tab-btn[onclick*="'balance'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cpath d='M1 10h22'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cpath d='M1 10h22'/%3E%3C/svg%3E");
}
/* ★ 주문분포도 - bar-chart (추가) */
.mobile-dropdown .tab-btn[onclick*="'distribution'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10M18 20V4M6 20v-4'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20V10M18 20V4M6 20v-4'/%3E%3C/svg%3E");
}
/* ★ 매장현황 - grid (추가) */
.mobile-dropdown .tab-btn[onclick*="'store-master'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7'/%3E%3Crect x='14' y='3' width='7' height='7'/%3E%3Crect x='14' y='14' width='7' height='7'/%3E%3Crect x='3' y='14' width='7' height='7'/%3E%3C/svg%3E");
}
/* 시간별분포 */
.mobile-dropdown .tab-btn[onclick*="'hourly-dist'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
}
/* 수익계산서 - trending-up (그래프) */
.mobile-dropdown .tab-btn[onclick*="'revenue'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='23 6 13.5 15.5 8.5 10.5 1 18'/%3E%3Cpolyline points='17 6 23 6 23 12'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='23 6 13.5 15.5 8.5 10.5 1 18'/%3E%3Cpolyline points='17 6 23 6 23 12'/%3E%3C/svg%3E");
}
/* 공지관리 */
.mobile-dropdown .tab-btn[onclick*="'notice'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 01-3.46 0'/%3E%3C/svg%3E");
}
/* AI분석 */
.mobile-dropdown .tab-btn[onclick*="'ai-analysis'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='16' rx='2'/%3E%3Cpath d='M9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3'/%3E%3C/svg%3E");
}
/* 매장지도 - map-pin */
.mobile-dropdown .tab-btn[onclick*="'store-map'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
/* 주문분포(지도) - map */
.mobile-dropdown .tab-btn[onclick*="'order-dist-map'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E");
}
/* 프로모션 - gift */
.mobile-dropdown .tab-btn[onclick*="'promotion'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12'/%3E%3Cpath d='M2 7h20v5H2z'/%3E%3Cpath d='M12 22V7'/%3E%3Cpath d='M12 7H7.5a2.5 2.5 0 1 1 0-5C11 2 12 7 12 7z'/%3E%3Cpath d='M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z'/%3E%3C/svg%3E");
}
/* 근무스케줄 - calendar */
.mobile-dropdown .tab-btn[onclick*="'schedule'"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/svg%3E");
}
/* ★ 공지사항(매장용) - clipboard-list (추가) */
.mobile-dropdown .tab-btn[onclick*="openStoreNoticeList"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4h2a2 2 0 012 2v14a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2h2'/%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M9 12h6M9 16h6'/%3E%3C/svg%3E");
}
/* 로그아웃 */
.mobile-dropdown .tab-btn[onclick*="logout"]::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E");
}

/* ============================================================
   페이지 헤더
   ============================================================ */
.page-header { margin-bottom: 24px !important; }
.page-header h2 {
    font-size: 22px !important;
    font-weight: 900 !important;
    color: var(--text-primary) !important;
    letter-spacing: -0.3px;
}

/* ============================================================
   통계 박스
   ============================================================ */
.stats-container {
    display: grid !important;
    grid-template-columns: repeat(4,1fr) !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
}
.stat-box {
    background: var(--bg-card) !important;
    border-radius: var(--radius-md) !important;
    padding: 16px !important;
    text-align: center !important;
    border: 1px solid var(--border-light) !important;
    box-shadow: var(--shadow-sm) !important;
    cursor: pointer;
    transition: all 0.2s ease !important;
}
.stat-box:hover { box-shadow: var(--shadow-md) !important; transform: translateY(-1px); }
.stat-box.waiting { border-left: 4px solid var(--yellow) !important; }
.stat-box.assigned { border-left: 4px solid var(--blue-primary) !important; }
.stat-box.complete { border-left: 4px solid var(--green) !important; }
.stat-label { font-size: 12px !important; color: var(--text-muted) !important; font-weight: 600 !important; margin-bottom: 6px !important; }
.stat-value { font-size: 28px !important; font-weight: 900 !important; color: var(--text-primary) !important; line-height: 1.1; }
.stat-box.waiting .stat-value { color: var(--yellow) !important; }
.stat-box.assigned .stat-value { color: var(--blue-primary) !important; }
.stat-box.complete .stat-value { color: var(--green) !important; }

/* ============================================================
   필터바
   ============================================================ */
.filter-bar {
    display: flex !important; align-items: center !important; gap: 10px !important;
    background: var(--bg-card) !important; padding: 14px 18px !important;
    border-radius: var(--radius-md) !important; border: 1px solid var(--border-light) !important;
    box-shadow: var(--shadow-sm) !important; margin-bottom: 20px !important; flex-wrap: wrap !important;
}
.filter-bar select.form-input, .filter-bar input[type="date"] {
    border: 1.5px solid var(--border-medium) !important; border-radius: var(--radius-sm) !important;
    padding: 9px 12px !important; font-size: 13px !important; background: #FAFBFC !important;
}
.filter-bar select.form-input:focus, .filter-bar input[type="date"]:focus {
    border-color: var(--blue-primary) !important; outline: none !important;
    box-shadow: 0 0 0 3px rgba(33,150,243,0.1) !important;
}

/* ============================================================
   테이블 (PC)
   ============================================================ */
.table-wrap {
    background: var(--bg-card) !important; border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border-light) !important; box-shadow: var(--shadow-sm) !important; overflow: hidden !important;
}
.table-wrap table { width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important; }
.table-wrap thead tr { background: #F8FAFC !important; }
.table-wrap thead th {
    padding: 14px 16px !important; font-size: 12px !important; font-weight: 700 !important;
    color: var(--text-secondary) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important;
    border-bottom: 2px solid var(--border-light) !important; text-align: left !important; white-space: nowrap !important;
    background: transparent !important;
}
.table-wrap tbody tr { transition: background-color 0.12s ease !important; cursor: pointer; }
.table-wrap tbody tr:hover { background: #F0F7FF !important; }
.table-wrap tbody td {
    padding: 14px 16px !important; font-size: 14px !important; color: var(--text-primary) !important;
    border-bottom: 1px solid #F3F4F6 !important; vertical-align: middle !important;
}
.table-wrap tbody tr:last-child td { border-bottom: none !important; }

/* 상태 배지 */
.badge { display: inline-flex !important; align-items: center !important; padding: 5px 12px !important; border-radius: 20px !important; font-size: 12px !important; font-weight: 700 !important; }
.badge.waiting { background: #FEF3C7 !important; color: #92400E !important; border: 1px solid #FDE68A !important; }
.badge.pickup_wait { background: #DBEAFE !important; color: #1E40AF !important; border: 1px solid #93C5FD !important; }
.badge.delivering { background: #FCE4EC !important; color: #C62828 !important; border: 1px solid #EF9A9A !important; }
.badge.complete { background: #D1FAE5 !important; color: #065F46 !important; border: 1px solid #6EE7B7 !important; }

/* ============================================================
   버튼
   ============================================================ */
.btn { border-radius: var(--radius-sm) !important; font-weight: 700 !important; transition: all 0.15s ease !important; border: none !important; cursor: pointer !important; }
.btn-primary { background: var(--blue-primary) !important; color: white !important; box-shadow: 0 2px 6px rgba(33,150,243,0.25) !important; }
.btn-primary:hover { background: #1976D2 !important; }
.btn-search { background: var(--blue-dark) !important; color: white !important; }
.btn-sm { padding: 6px 14px !important; font-size: 12px !important; border-radius: 6px !important; }
.btn-sm.btn-edit { background: #EFF6FF !important; color: var(--blue-primary) !important; border: 1px solid #BFDBFE !important; }
.btn-sm.btn-delete { background: #FEF2F2 !important; color: var(--red) !important; border: 1px solid #FECACA !important; }

/* ============================================================
   모바일 카드뷰
   ============================================================ */
.card-list .data-card {
    background: var(--bg-card) !important; border-radius: var(--radius-lg) !important;
    border: 1px solid var(--border-light) !important; border-left: 5px solid var(--blue-primary) !important;
    padding: 16px !important; margin-bottom: 12px !important; box-shadow: var(--shadow-sm) !important;
}
.data-card .card-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 10px !important; }
.data-card .card-title { font-size: 16px !important; font-weight: 900 !important; }
.data-card .card-info { font-size: 13px !important; color: var(--text-secondary) !important; line-height: 1.8 !important; }
.data-card .card-info b { color: var(--text-primary) !important; }

/* ============================================================
   모달
   ============================================================ */
.modal { background: rgba(0,0,0,0.6) !important; backdrop-filter: blur(4px) !important; -webkit-backdrop-filter: blur(4px) !important; }
.modal-box { border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-lg) !important; display: flex !important; flex-direction: column !important; }
.modal-header { padding: 18px 24px !important; background: #FAFBFC !important; border-bottom: 1px solid var(--border-light) !important; }
.modal-title { font-size: 18px !important; font-weight: 900 !important; color: var(--text-primary) !important; }
.modal-close { width: 34px !important; height: 34px !important; border-radius: 50% !important; background: #F3F4F6 !important; color: var(--text-secondary) !important; font-size: 20px !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; transition: all 0.15s !important; }
.modal-close:hover { background: var(--red) !important; color: white !important; }
.modal-body { padding: 20px 24px !important; -webkit-overflow-scrolling: touch !important; overscroll-behavior: contain !important; flex: 1 !important; }
.modal-footer { padding: 16px 24px !important; background: #FAFBFC !important; border-top: 1px solid var(--border-light) !important; }

/* 주문 상세 모달 */
#modal-order-detail .modal-header { background: linear-gradient(135deg, #1B3A5C, #2196F3) !important; border-bottom: none !important; }
#modal-order-detail .modal-header .modal-close { background: rgba(255,255,255,0.2) !important; color: white !important; }
#modal-order-detail .modal-body > div[style*="background:#f8f9fa"] {
    background: #F8FAFC !important; border: 1px solid var(--border-light) !important;
    border-radius: var(--radius-md) !important; padding: 16px 18px !important;
}
#modal-order-detail .modal-body > div[style*="background:#f8f9fa"] > div[style*="font-size:11px"][style*="color:#999"] {
    font-size: 13px !important; color: var(--blue-primary) !important; font-weight: 800 !important;
}

/* ============================================================
   폼/검색
   ============================================================ */
.form-input, .modal-input {
    border: 1.5px solid var(--border-medium) !important; border-radius: var(--radius-sm) !important;
    padding: 12px 14px !important; font-size: 14px !important; background: #FAFBFC !important;
}
.form-input:focus, .modal-input:focus {
    border-color: var(--blue-primary) !important; outline: none !important;
    box-shadow: 0 0 0 3px rgba(33,150,243,0.1) !important; background: white !important;
}
.form-label { font-size: 13px !important; font-weight: 700 !important; color: var(--text-secondary) !important; }
.search-input { border: 1.5px solid var(--border-medium) !important; border-radius: var(--radius-sm) !important; padding: 10px 14px !important; }
.search-input:focus { border-color: var(--blue-primary) !important; box-shadow: 0 0 0 3px rgba(33,150,243,0.1) !important; }

/* ============================================================
   정산/정보/기타
   ============================================================ */
.week-nav { background: var(--bg-card) !important; border: 1px solid var(--border-light) !important; border-radius: var(--radius-md) !important; }
.settle-summary-box { background: var(--bg-card) !important; border: 1px solid var(--border-light) !important; border-radius: var(--radius-md) !important; box-shadow: var(--shadow-sm) !important; }
.info-section { background: #F8FAFC !important; border: 1px solid var(--border-light) !important; border-radius: var(--radius-md) !important; padding: 16px !important; margin-bottom: 12px !important; }
.info-row { display: flex !important; padding: 10px 0 !important; border-bottom: 1px solid #F3F4F6 !important; }
.info-row:last-child { border-bottom: none !important; }
.info-label { min-width: 100px !important; font-size: 13px !important; font-weight: 600 !important; color: var(--text-muted) !important; }
.info-value { font-size: 14px !important; color: var(--text-primary) !important; font-weight: 600 !important; }

/* 로그인 */
#login-screen { background: linear-gradient(135deg, #0F2B46 0%, #1B3A5C 40%, #2196F3 100%) !important; }
.login-box { border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-lg) !important; padding: 44px !important; }

/* 카드그리드 */
.card-grid .card, .card-grid > div { background: var(--bg-card) !important; border: 1px solid var(--border-light) !important; border-radius: var(--radius-md) !important; box-shadow: var(--shadow-sm) !important; }

/* 기사정산 테이블 */
.rider-settle-table { border-collapse: separate !important; border-spacing: 0 !important; }
.rider-settle-table th { background: #F8FAFC !important; font-size: 11px !important; color: var(--text-secondary) !important; border-bottom: 2px solid var(--border-light) !important; }
.rider-settle-table tr:hover { background: #F0F7FF !important; }

/* 필터칩 */
.status-filter-chip { border: 1.5px solid var(--border-medium) !important; border-radius: 20px !important; }
.status-filter-chip.active { border-color: var(--blue-primary) !important; background: var(--blue-primary) !important; color: white !important; }

/* 페이지네이션 */
.page-btn { border-radius: var(--radius-sm) !important; border: 1px solid var(--border-medium) !important; }
.page-btn.active { background: var(--blue-primary) !important; color: white !important; border-color: var(--blue-primary) !important; }

/* 스크롤바 */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: #C5CAD0; border-radius: 3px; }

/* 지도 */
#order-map-wrap { border-radius: var(--radius-lg) !important; background: var(--bg-card) !important; border: 1px solid var(--border-light) !important; padding: 16px !important; }

/* 애니메이션 */
.tab-content.active { animation: fadeSlideIn 0.2s ease-out; }
@keyframes fadeSlideIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.modal[style*="display: flex"] .modal-box, .modal[style*="display:flex"] .modal-box { animation: modalSlideUp 0.25s ease-out; }
@keyframes modalSlideUp { from { opacity: 0; transform: translateY(20px) scale(0.97); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* ============================================================
   ★★★ role별 메뉴 숨김 보호 (모바일 + 전역) ★★★
   JS의 style.display='none' 이 CSS !important 에 덮이지 않도록 보호
   ============================================================ */
.mobile-dropdown .tab-btn[style*="display:none"],
.mobile-dropdown .tab-btn[style*="display: none"] {
    display: none !important;
}
.mobile-nav .tab-btn[style*="display:none"],
.mobile-nav .tab-btn[style*="display: none"] {
    display: none !important;
}
.mobile-header .tab-btn[style*="display:none"],
.mobile-header .tab-btn[style*="display: none"] {
    display: none !important;
}
.nav-item[style*="display:none"],
.nav-item[style*="display: none"] {
    display: none !important;
}

/* 뒤로가기 버튼 (모바일에서만 표시) */
.rh-store-back-btn {
    display: none !important;
}

/* ============================================================
   모바일 반응형
   ============================================================ */
@media (max-width: 768px) {
    header { display: none !important; }
    .mobile-header { display: block !important; background: var(--bg-card) !important; border-bottom: 2px solid var(--blue-primary) !important; box-shadow: var(--shadow-sm) !important; }
    main { margin-left: 0 !important; padding: 16px !important; }
    .stats-container { grid-template-columns: repeat(4,1fr) !important; gap: 8px !important; }
    .stat-box { padding: 12px 8px !important; border-left-width: 3px !important; }
    .stat-value { font-size: 22px !important; }
    .stat-label { font-size: 10px !important; }
    .filter-bar { padding: 12px !important; gap: 8px !important; }
    .card-list .data-card { padding: 14px !important; margin-bottom: 10px !important; }
    .modal-box { border-radius: var(--radius-md) !important; max-height: 95vh !important; }
    .page-header h2 { font-size: 18px !important; }
    .mobile-dropdown.open { background: var(--bg-card) !important; box-shadow: var(--shadow-lg) !important; }
    .mobile-dropdown .tab-btn { padding: 14px 20px !important; font-size: 15px !important; border-bottom: 1px solid #F3F4F6 !important; }
    .mobile-dropdown .tab-btn.active { background: #EFF6FF !important; color: var(--blue-primary) !important; }
    /* 배송이력 - 모바일 세로 배치 */
    #rh-store-layout, #rh-layout {
        flex-direction: column !important;
    }
    #rh-store-left-panel {
        min-width: 0 !important;
    }
    #rh-store-left-panel #rh-store-list {
        max-height: 250px !important;
    }
    /* 모바일에서 매장 선택 시 왼쪽 패널 숨김 */
    #rh-store-left-panel.rh-mobile-hidden {
        display: none !important;
    }
    #rh-store-right-panel.rh-mobile-full {
        flex: 1 !important;
    }
    .rh-store-back-btn {
        display: inline-block !important;
    }
    /* 주문 등록 모달 - 결제상태 라디오 버튼 */
    #pay-done-label, #pay-cash-label, #pay-card-label {
        font-size: 12px !important;
        padding: 8px 6px !important;
        gap: 4px !important;
        justify-content: center;
        white-space: nowrap;
    }
}

@media print {
    header, .mobile-header { display: none !important; }
    main { margin-left: 0 !important; padding: 0 !important; }
}

/* ============================================================
   수익계산서 - 서브탭 + 테이블 UI 개선
   ============================================================ */

/* 서브탭 버튼 */
.rev-sub-btn {
    padding: 8px 20px; border-radius: 6px; border: none;
    cursor: pointer; font-size: 13px; font-weight: 500;
    background: transparent; color: #666; transition: all .2s;
}
.rev-sub-btn.active {
    font-weight: 800; background: #fff; color: #0D5C8A;
    box-shadow: 0 1px 3px rgba(0,0,0,.1);
}

/* 수익 테이블 */
.rev-table { width: 100%; border-collapse: collapse; border-spacing: 0; }
.rev-table th, .rev-table td { padding: 10px 12px; font-size: 13px; }
.rev-table .text-left { text-align: left; }
.rev-table .text-right { text-align: right; }
.rev-table .text-center { text-align: center; }

/* 섹션 헤더 (매출/인건비) */
.rev-section-header td {
    padding: 14px 16px !important; font-size: 15px !important;
    font-weight: 900 !important; border-bottom: none !important;
}
.rev-section-sales { background: #e3f2fd; }
.rev-section-sales td { color: #0D5C8A; }
.rev-section-labor { background: #fff3e0; }
.rev-section-labor td { color: #e65100; }

/* 컬럼 헤더 */
.rev-col-header th {
    padding: 10px 12px !important; font-size: 12px !important;
    font-weight: 700 !important; text-align: center;
}
.rev-col-sales th {
    background: #f0f7ff; color: #0D5C8A;
    border-bottom: 2px solid #1B9BD7;
}
.rev-col-labor th {
    background: #fff8f0; color: #e65100;
    border-bottom: 2px solid #e65100;
}

/* 데이터 행 */
.rev-data-row td {
    border-bottom: 1px solid #f0f0f0; padding: 10px 12px;
}
.rev-data-row:hover { background: #fafbfc; }
.rev-data-row:nth-child(even) { background: #fcfcfd; }
.rev-data-row:nth-child(even):hover { background: #f5f6f8; }

/* 금액 강조 */
.rev-amount-blue { font-weight: 900; color: #1B9BD7; }
.rev-amount-green { font-weight: 700; color: #2e7d32; }

/* 소계 행 */
.rev-subtotal-row td {
    font-weight: 900; padding: 12px !important;
}
.rev-subtotal-sales { background: #f0f7ff; border-top: 2px solid #1B9BD7; }
.rev-subtotal-sales td { color: #0D5C8A; }
.rev-subtotal-labor { background: #fff8f0; border-top: 2px solid #e65100; }
.rev-subtotal-labor td { color: #e65100; }

/* 최종 요약 행 */
.rev-summary-row { background: linear-gradient(135deg,#1976d2,#2196F3); }
.rev-summary-row td { color: white; text-align: center; padding: 16px 12px !important; }
.rev-summary-title { font-size: 17px !important; font-weight: 900 !important; }
.rev-summary-cell { font-size: 13px; font-weight: 700; line-height: 1.6; }
.rev-summary-cell b { font-size: 15px; }
.rev-summary-profit { font-size: 15px !important; font-weight: 900 !important; }
.rev-summary-profit b { font-size: 19px; }

/* 빈 데이터 */
.rev-empty { text-align: center; padding: 24px; color: #999; }

/* 수동 매장 태그 */
.rev-tag-manual {
    display: inline-block; background: #fff3e0; color: #e65100;
    font-size: 10px; font-weight: 700; padding: 2px 6px;
    border-radius: 4px; margin-left: 6px; vertical-align: middle;
}

/* 모바일 섹션 헤더 */
.rev-mobile-section-header {
    padding: 12px 16px; border-radius: 10px;
    margin: 10px 0; font-size: 15px; font-weight: 900;
}
.rev-mobile-subtotal {
    padding: 12px; border-radius: 10px;
    margin-bottom: 15px; text-align: right;
    font-weight: 700;
}

/* ============================================================
   근무 스케줄 달력
   ============================================================ */
.sch-cal-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}
.sch-cal-table th {
    padding: 8px 0;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
.sch-cal-table td {
    vertical-align: top;
    padding: 6px 2px;
    text-align: center;
    cursor: pointer;
    border-radius: 10px;
    transition: background 0.15s;
    min-height: 60px;
}
.sch-cal-table td:hover:not(.sch-cal-empty) {
    background: #f0f7ff;
}
.sch-cal-empty {
    cursor: default;
}
.sch-day-num {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 2px;
}
.sch-today .sch-day-num {
    background: #0D5C8A;
    color: #fff !important;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    line-height: 28px;
    margin: 0 auto 2px;
}
.sch-selected {
    background: #e3f2fd !important;
    box-shadow: inset 0 0 0 2px #0D5C8A;
}
.sch-day-badge {
    font-size: 10px;
    font-weight: 800;
    color: #fff;
    background: #1B9BD7;
    border-radius: 8px;
    padding: 1px 6px;
    display: inline-block;
    margin-top: 1px;
}
.sch-day-full {
    font-size: 9px;
    font-weight: 700;
    color: #2e7d32;
    margin-top: 1px;
}

/* 스케줄 필터 버튼 */
.sch-filter-btn.active {
    outline: 2px solid #0D5C8A;
    outline-offset: -1px;
    font-weight: 900;
}

/* 스케줄 레이아웃 */
.sch-layout {
    display: flex;
    gap: 20px;
}
.sch-layout-cal {
    flex: 1;
    min-width: 0;
}
.sch-layout-detail {
    flex: 1;
    min-width: 0;
}
