
:root{
    --brand:#4f46e5;
    --brand-2:#6366f1;
    --bright-blue:#3b82f6;
    --sky:#38bdf8;
    --purple:#8b5cf6;
    --orange:#f59e0b;
    --pink:#f43f5e;
    --teal:#14b8a6;
    --green:#10b981;
    --naver:#03c75a;
    --red:#ef4444;
    --bg:#f4f6fb;
    --card-shadow:0 4px 18px rgba(15,23,42,.06);
    --sidebar-w:262px;
}

*{font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Noto Sans KR',sans-serif;}
body{background:var(--bg);color:#1e293b;overflow-x:hidden;}

body.login-page{background:var(--bg);min-height:100vh;display:flex;align-items:stretch;justify-content:flex-start;overflow:hidden;}

.app{display:flex;min-height:100vh;}
.sidebar{
    width:var(--sidebar-w);min-width:var(--sidebar-w);
    background:linear-gradient(180deg,#141b34 0%,#0f1628 100%);
    color:#cbd5e1;display:flex;flex-direction:column;
    position:fixed;top:0;left:0;bottom:0;z-index:1040;
    overflow:hidden;transition:transform .3s ease;
}
.nav-scroll{flex:1 1 auto;overflow-y:auto;min-height:0;}
.nav-scroll::-webkit-scrollbar{width:6px;}
.nav-scroll::-webkit-scrollbar-thumb{background:rgb(120, 127, 141);border-radius:10px;}
.main{margin-left:var(--sidebar-w);flex:1;min-width:0;display:flex;flex-direction:column;padding-top:var(--topbar-h,54px);}

#pageLoader{
    position:fixed;z-index:99999;
    top:0;left:var(--sidebar-w);right:0;bottom:0;
    display:flex;align-items:center;justify-content:center;
    background:rgba(233,238,248,.55);
    -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
    transition:opacity .3s ease,visibility .3s ease;
}

@media(max-width:1280px){
    #pageLoader{left:0;top:0;}
}
#pageLoader.hide{opacity:0;visibility:hidden;pointer-events:none;}
#pageLoader .pl-card{
    background:#fff;border-radius:18px;padding:34px 46px 30px;
    box-shadow:0 18px 46px rgba(15,23,42,.15);
    display:flex;flex-direction:column;align-items:center;min-width:270px;
    animation:plCardIn .42s cubic-bezier(.22,1,.36,1) both;
}
#pageLoader.hide .pl-card{animation:none;}
@keyframes plCardIn{from{opacity:0;transform:translateY(14px) scale(.96);}to{opacity:1;transform:none;}}
#pageLoader .pl-spinner{
    width:56px;height:56px;border-radius:50%;margin-bottom:16px;
    border:4px solid #eef0f6;border-top-color:#4f46e5;border-right-color:#6366f1;
    animation:plSpin .85s linear infinite;
}
#pageLoader .pl-title{font-size:15px;font-weight:700;color:#1e293b;letter-spacing:-.01em;text-align:center;}
#pageLoader .pl-sub{font-size:12.5px;color:#94a3b8;margin-top:5px;text-align:center;}
#pageLoader .pl-bar{width:190px;height:4px;border-radius:20px;background:#eef0f6;overflow:hidden;margin-top:15px;}
#pageLoader .pl-bar span{
    display:block;width:42%;height:100%;border-radius:20px;
    background:linear-gradient(90deg,#4f46e5,#6366f1);
    animation:plSlide 1.25s ease-in-out infinite;
}
@keyframes plSpin{to{transform:rotate(360deg);}}
@keyframes plSlide{0%{transform:translateX(-115%);}100%{transform:translateX(275%);}}
@media(max-width:480px){
    #pageLoader .pl-card{padding:28px 30px 26px;min-width:0;width:min(280px,86vw);}
    #pageLoader .pl-bar{width:100%;}
}

@media(prefers-reduced-motion:reduce){
    #pageLoader .pl-spinner,#pageLoader .pl-bar span,#pageLoader .pl-card{animation:none;}
}

.brand{display:flex;align-items:center;gap:11px;padding:18px 20px 14px;}
.brand-link{display:flex;align-items:center;gap:11px;min-width:0;text-decoration:none;color:inherit;}
.brand .logo{width:40px;height:40px;border-radius:11px;object-fit:cover;box-shadow:0 6px 14px rgba(99,102,241,.35);}
/* [2026-10-19 PJW] 사이드바 제목이 로그인 소속 명칭으로 바뀌어 긴 이름은 말줄임 */
.brand .b-title{font-weight:700;color:#fff;font-size:15px;line-height:1.2;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand .b-sub{font-size:11px;color:#94a3b8;}
.sidebar-close{display:none;margin-left:auto;flex:none;width:32px;height:32px;padding:0;border-radius:9px;
    background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#cbd5e1;
    align-items:center;justify-content:center;font-size:15px;line-height:1;transition:all .2s;}
.sidebar-close:hover{background:rgba(255,255,255,.18);color:#fff;}

.nav-section{padding:6px 14px;}
.nav-label{font-size:11px;letter-spacing:.06em;color:#64748b;font-weight:700;padding:12px 10px 6px;text-transform:uppercase;}
.nav-item{
    display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:10px;
    font-size:14px;font-weight:500;color:#cbd5e1;cursor:pointer;margin-bottom:2px;
    transition:all .18s;user-select:none;text-decoration:none;
}
.nav-item i:first-child{font-size:17px;width:20px;text-align:center;}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff;}
.nav-item.active{background:#007eff;color:#fff;}
.nav-item .chev{margin-left:auto;font-size:12px;transition:transform .25s;}
.nav-item.open .chev{transform:rotate(180deg);}
.submenu{max-height:0;overflow:hidden;transition:max-height .3s ease;margin-left:8px;border-left:1px solid rgba(255,255,255,.07);}
.submenu.show{max-height:800px;}
.submenu .nav-item{font-size:13px;padding:8px 13px;color:#94a3b8;}
.submenu .nav-item:hover{color:#fff;}
.submenu .nav-item.active{background:rgba(0,126,255,.15);color:#60a5fa;}
.submenu .submenu{margin-left:10px;border-left-color:rgba(255,255,255,.04);}
.submenu .submenu .nav-item{font-size:12px;padding:7px 10px;color:#64748b;}
.submenu .submenu .nav-item:hover{color:#94a3b8;}

.sidebar-bottom{flex-shrink:0;background:linear-gradient(180deg,rgba(15,22,40,0) 0%,#0f1628 22%);padding-top:4px;}

/* [2026-10-22 PJW] 사이드바 빠른 액션 제거 : quick-* · qb-del · 빠른메뉴 추가 팝업 전용 qa-*(section-label/cascade/col/node/grid2/icons/ic/preview) 규칙 삭제. 공용 qa-input/qa-footer/qa-btn 은 유지 */
.audit-btn{margin-top:8px;width:100%;background:rgba(255,255,255,.06);border:1px dashed rgba(255,255,255,.18);color:#cbd5e1;border-radius:10px;padding:8px;font-size:12px;font-weight:600;transition:all .2s;}
.audit-btn:hover{background:rgba(255,255,255,.12);color:#fff;}

.banner-wrap{padding:6px 14px 14px;}
.banner{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.28);}
.banner-track{display:flex;transition:transform .4s ease;touch-action:pan-y;}
.banner-slide{display:block;min-width:100%;padding:13px 15px;color:#fff;text-decoration:none;cursor:pointer;position:relative;overflow:hidden;}
.banner-slide::before{content:"";position:absolute;top:-30px;right:-25px;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.12);}
.banner-slide.s1{background:linear-gradient(135deg,#7c3aed,#4f46e5);}
.banner-slide.s2{background:linear-gradient(135deg,#2563eb,#06b6d4);}
.banner-slide.s3{background:linear-gradient(135deg,#0d9488,#10b981);}
.banner-badge{display:inline-block;font-size:9.5px;background:rgba(255,255,255,.22);padding:2px 9px;border-radius:20px;font-weight:600;margin-bottom:6px;}
.banner-slide h6{font-weight:800;font-size:15px;margin:2px 0 3px;}
.banner-slide h6 b{color:#fde047;}
.banner-slide .b-desc{font-size:11px;color:rgba(255,255,255,.88);margin-bottom:9px;}
.banner-cta{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.95);color:#4f46e5;font-size:11.5px;font-weight:700;padding:5px 12px;border-radius:20px;}
.banner-slide.s2 .banner-cta{color:#2563eb;}
.banner-slide.s3 .banner-cta{color:#0d9488;}
.banner-dots{display:flex;justify-content:center;gap:6px;margin-top:9px;}

.banner-dots span,.banner-dots a{display:block;width:6px;height:6px;border-radius:20px;background:rgba(255,255,255,.25);cursor:pointer;transition:all .25s;}
.banner-dots span.active,.banner-dots a.active{width:18px;background:rgba(255,255,255,.9);}
.banner-arrow{position:absolute;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.22);color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:11px;z-index:3;opacity:0;transition:opacity .2s;}
.banner:hover .banner-arrow{opacity:1;}
.banner-arrow.prev{left:7px;}
.banner-arrow.next{right:7px;}

.topbar{
    background:#fff;border-bottom:1px solid #eceff5;padding:11px 24px;
    position:fixed;top:0;left:var(--sidebar-w);right:0;z-index:1020;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.hamburger{display:none;background:none;border:none;font-size:22px;color:#475569;}
.branch-wrap{position:relative;}
.branch-select{display:flex;align-items:center;gap:9px;background:#f1f5f9;border-radius:10px;padding:7px 14px;font-weight:700;font-size:14px;cursor:pointer;border:1px solid #e2e8f0;transition:all .15s;}
.branch-select:hover{border-color:#c7d2fe;background:#eef2ff;}
.branch-select .b-tag{font-size:11px;color:#fff;background:var(--brand);border-radius:6px;padding:2px 7px;font-weight:700;}
.branch-select .b-tag.branch{background:#0ea5e9;}
.branch-select .b-tag.allbr{background:#f59e0b;}

.notice-bar{
    display:flex;align-items:center;gap:9px;height:37px;box-sizing:border-box;
    background:#f8fafc;border:1px solid #eef0f4;border-radius:10px;padding:0 12px;
    flex:1 1 auto;min-width:0;max-width:380px;
}
.notice-bar-ic{font-size:13px;color:#7c3aed;flex-shrink:0;}
.notice-swiper{height:20px;flex:1;min-width:0;overflow:hidden;}
.notice-slide{height:100%;}
.notice-slide-link{display:flex;align-items:center;gap:8px;height:100%;text-decoration:none;color:inherit;border-radius:6px;}
.notice-slide-link:hover .notice-txt{color:#4f46e5;}
.notice-bar-nav{display:flex;flex-direction:column;gap:0;flex-shrink:0;}
.nb-arrow{
    width:16px;height:16px;padding:0;display:flex;align-items:center;justify-content:center;
    border-radius:4px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-size:9px;
    line-height:1;cursor:pointer;transition:all .15s;
}
.nb-arrow:hover{background:#eef2ff;color:#4f46e5;border-color:#c7d2fe;}
@media(max-width:1280px){
    .topbar .notice-bar{display:none!important;}
}

.branch-dropdown{
    position:absolute;top:calc(100% + 8px);left:0;width:296px;background:#fff;
    border-radius:14px;box-shadow:0 12px 36px rgba(15,23,42,.16);border:1px solid #eef0f5;
    z-index:1200;padding:8px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s;
}
.branch-dropdown.show{opacity:1;visibility:visible;transform:translateY(0);}
.bd-head{font-size:11px;font-weight:700;color:#94a3b8;padding:8px 10px 4px;letter-spacing:.03em;display:flex;justify-content:space-between;align-items:center;gap:8px;}

.bd-close{
    position:absolute;top:8px;right:8px;z-index:2;
    width:26px;height:26px;border:none;border-radius:8px;padding:0;
    background:#f4f6fb;color:#64748b;font-size:13px;line-height:1;
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;
}
.bd-close:hover{background:#e6eaf3;color:#1e293b;}
.bd-close:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}

.bd-head{padding-right:40px;}
.bdm-panel-head{padding-right:34px;}
.bd-search{display:flex;align-items:center;gap:8px;background:#f4f6fb;border-radius:9px;padding:7px 11px;margin:4px 6px 8px;}
.bd-search input{border:none;background:none;outline:none;font-size:13px;flex:1;}
.bd-list{max-height:288px;overflow-y:auto;}
.bd-list::-webkit-scrollbar{width:6px;}
.bd-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;}

.bd-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;cursor:pointer;transition:background .15s;
    text-decoration:none;color:inherit;}
.bd-item:hover,.bd-item:focus{text-decoration:none;color:inherit;}
.bd-item .bd-name,.bd-item .bd-addr{text-decoration:none;}

.bd-item.soon .bd-ic{background:#f1f5f9;color:#94a3b8;}
.bd-item.soon .bd-name{color:#64748b;}
.bd-item:hover{background:#f4f6fb;}
.bd-item.active{background:#eef2ff;}
.bd-ic{width:30px;height:30px;border-radius:8px;background:#eef2ff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.bd-item.hq .bd-ic{background:#fef3c7;color:#d97706;}
.bd-item.allbr .bd-ic{background:#fff7ed;color:#ea580c;}
.bd-name{font-size:13.5px;font-weight:700;color:#1e293b;}
.bd-addr{font-size:11px;color:#94a3b8;}
.bd-check{margin-left:auto;color:var(--brand);font-size:15px;display:none;}
.bd-item.active .bd-check{display:block;}
.bd-divider{height:1px;background:#f1f5f9;margin:6px 10px;}

.branch-dropdown.brandmode{--bdm-list-h:342px;width:600px;padding:0;overflow:hidden;}
.bdm{display:flex;align-items:stretch;}

.bdm-rail{
    width:auto;min-width:220px;flex-shrink:0;box-sizing:border-box;padding:12px 10px;
    background:linear-gradient(180deg,#f9fafc 0%,#eef1f9 100%);border-right:1px solid #eef0f5;
}
.bdm-rail-head{font-size:11px;font-weight:800;color:#94a3b8;letter-spacing:.05em;padding:2px 6px 9px;}
.bdm-brand-list{display:flex;flex-direction:column;gap:4px;}
.bdm-brand{
    display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:11px;position:relative;
    text-decoration:none;color:inherit;transition:background .15s,box-shadow .15s;
}
.bdm-brand:hover{background:rgba(255,255,255,.72);}
.bdm-brand.on{background:#fff;box-shadow:0 4px 14px rgba(79,70,229,.13);}
.bdm-brand.on::before{display:none;
    content:'';position:absolute;left:-10px;top:50%;transform:translateY(-50%);
    width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--brand);
}

.bdm-b-ic{
    width:30px;height:30px;flex-shrink:0;border-radius:9px;font-size:14px;
    display:flex;align-items:center;justify-content:center;background:#eef1f6;color:#94a3b8;
}
.bdm-brand.on .bdm-b-ic{background:#eef2ff;color:var(--brand);}
.bdm-b-txt{display:flex;flex-direction:column;gap:1px;}

.bdm-b-nm{font-size:12.5px;font-weight:700;color:#64748b;white-space:nowrap;}
.bdm-b-cnt{font-size:10.5px;font-weight:600;color:#94a3b8;}
.bdm-brand.on .bdm-b-nm{color:var(--brand);}

.bdm-b-go{margin-left:auto;padding-left:6px;font-size:12px;color:var(--brand);}

.bdm-panel{flex:1;min-width:0;display:flex;flex-direction:column;padding:12px 12px 10px;}
.bdm-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:2px 4px 8px;}
.bdm-panel-nm{font-size:12.5px;font-weight:800;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bdm-panel-cnt{font-size:11px;font-weight:700;color:#94a3b8;flex-shrink:0;padding-right: 24px;}
.bdm-search{margin:0 0 8px;}
.bdm-search input:disabled{cursor:not-allowed;}
.bdm-list{max-height:var(--bdm-list-h);overflow-y:auto;margin:0 -4px;padding:0 4px;}

.bdm-list.is-msg{min-height:var(--bdm-list-h);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.bdm-list::-webkit-scrollbar{width:6px;}
.bdm-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px;}
.bdm-item{text-decoration:none;color:inherit;}
.bdm-item-txt{display:flex;flex-direction:column;gap:1px;min-width:0;}
.bdm-item .bd-name,.bdm-item .bd-addr{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.bdm-item.nosale .bd-name{color:#94a3b8;font-weight:600;}
.bdm-item.nosale .bd-ic{color:#cbd5e1;}
.bd-nosale{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;
    background:#f1f5f9;color:#94a3b8;font-size:10px;font-weight:700;vertical-align:middle;}

.bdm-msg{display:flex;align-items:center;justify-content:center;gap:8px;padding:28px 12px;font-size:12.5px;font-weight:600;color:#94a3b8;}
.bdm-msg.err{flex-direction:column;gap:4px;text-align:center;color:#ef4444;font-size:17px;}
.bdm-msg.err b{font-size:12.5px;}
.bdm-msg.err span{font-size:11.5px;font-weight:600;color:#94a3b8;word-break:break-all;}

.bdm-empty{font-size:13.5px;font-weight:700;color:#94a3b8;text-align:center;}

.pb-branch .branch-dropdown.brandmode{left:0;right:0;width:auto;max-width:100%;}

@media(max-width:620px){
    .branch-dropdown.brandmode{--bdm-list-h:212px;width:auto;}
    .bdm{flex-direction:column;}
    .bdm-rail{width:100%;min-width:0;padding:10px;border-right:none;border-bottom:1px solid #eef0f5;}
    .bdm-rail-head{padding-bottom:7px;}
    .bdm-brand-list{flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:2px;}
    .bdm-brand{flex-shrink:0;padding:7px 11px;background:#fff;}
    .bdm-brand.on::before{display:none;}
    .bdm-brand.on{box-shadow:0 0 0 1.5px var(--brand) inset;}
    .bdm-b-go{display:none;}
}

.period-tabs{display:flex;background:#f1f5f9;border-radius:10px;padding:4px;}
.period-tabs button{border:none;background:none;font-size:13px;font-weight:600;color:#64748b;padding:6px 14px;border-radius:8px;transition:all .18s;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent;}
.period-tabs button:focus,.period-tabs button:focus-visible{outline:none;}
.period-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 2px 6px rgba(0,0,0,.08);}
/* [2026-10-20 PJW] 대시보드 기간 이동(이전/다음) 버튼 */
.period-tabs button.nav{padding:6px 10px;color:#475569;}
.period-tabs button.nav:hover{color:var(--brand);}
.period-tabs button.nav:disabled{color:#cbd5e1;cursor:default;}
.pb-tabs .period-tabs button.nav{flex:0 0 auto;padding:5px 10px;}
.date-box{display:flex;align-items:center;gap:8px;font-size:13px;color:#475569;font-weight:600;min-width:210px;justify-content:center;}

.date-box input[type=date]{border:1px solid #e2e8f0;background:#fff;border-radius:7px;padding:4px 8px;font-size:12.5px;color:#475569;outline:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;}
.date-box input[type=date]:focus,.date-box input[type=date]:focus-visible{outline:none;}
.date-box input[type=date]:disabled{background:#f1f5f9;color:#64748b;}
.date-apply{background:var(--brand);color:#fff;border:none;border-radius:7px;font-size:12px;font-weight:700;padding:5px 11px;}
.search-box{display:flex;display:none; align-items:center;gap:8px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;padding:8px 14px;min-width:210px;}
.search-box input{border:none;background:none;outline:none;font-size:13px;flex:1;}
.search-box .kbd{font-size:10px;background:#fff;border:1px solid #e2e8f0;border-radius:5px;padding:2px 6px;color:#94a3b8;}
.bell{display:none; position:relative;font-size:20px;color:#475569;cursor:pointer;}
.bell .badge-dot{position:absolute;top:-6px;right:-7px;background:var(--red);color:#fff;font-size:10px;border-radius:20px;padding:1px 6px;font-weight:700;}
.profile{display:flex;align-items:center;gap:10px;cursor:pointer;}
.profile .avatar{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;}
.profile .p-name{font-size:13.5px;font-weight:700;line-height:1.2;}
.profile .p-role{font-size:11px;color:#94a3b8;}

.logout-btn{
    width:32px;height:32px;flex:none;padding:0;border:none;border-radius:9px;
    background:transparent;color:#94a3b8;font-size:15px;line-height:1;
    display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;
}
.logout-btn:hover{background:#f1f5f9;color:#dc2626;}
.logout-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}

.profile{position:relative;}
.profile-btn{
    display:flex;align-items:center;gap:10px;
    background:none;border:none;padding:2px 6px 2px 2px;border-radius:11px;
    cursor:pointer;color:inherit;text-align:left;transition:background .15s;
}
.profile-btn:hover{background:#f1f5f9;}
.profile-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
.profile-chev{font-size:11px;color:#94a3b8;}
.profile-menu{
    position:absolute;top:calc(100% + 8px);right:0;z-index:1050;
    min-width:180px;padding:6px;
    background:#fff;border:1px solid #eceff4;border-radius:12px;
    box-shadow:0 10px 28px rgba(15,23,42,.14);
}
.profile-menu[hidden]{display:none;}
.profile-menu-item{
    display:flex;align-items:center;gap:9px;width:100%;
    padding:9px 11px;border:none;border-radius:8px;background:none;
    font-size:13px;color:#334155;cursor:pointer;text-align:left;transition:background .15s;
}
.profile-menu-item i{font-size:14px;color:#94a3b8;}
.profile-menu-item:hover{background:#f8fafc;color:#0f172a;}
.profile-menu-item:hover i{color:var(--brand);}
.profile-menu-item.danger:hover{background:#fef2f2;color:#dc2626;}
.profile-menu-item.danger:hover i{color:#dc2626;}

.le_pw_dlg{max-width:440px;}
.le_pw_body{padding:18px 20px;}
.le_pw_fld{margin-bottom:16px;}
.le_pw_fld:last-child{margin-bottom:0;}
.le_pw_fld .filter-label{display:block;margin-bottom:6px;}
.le_pw_wrap{position:relative;}
.le_pw_wrap .form-control{
    height:38px;padding:0 40px 0 12px;
    border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#0f172a;
}
.le_pw_wrap .form-control:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.le_pw_eye{
    position:absolute;right:4px;top:50%;transform:translateY(-50%);
    width:32px;height:32px;border:none;border-radius:7px;background:none;
    color:#94a3b8;font-size:14px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.le_pw_eye:hover{background:#f1f5f9;color:#475569;}

.le_pw_msg{margin-top:6px;font-size:11.5px;color:#94a3b8;min-height:16px;line-height:1.4;}
.le_pw_msg.ok{color:#059669;}
.le_pw_msg.ng{color:#dc2626;}
.le_pw_foot{justify-content:center;gap:3px;}
.le_pw_foot > *{margin:0;}

.le_pw_foot .btn-search{background:var(--brand);}
.le_pw_foot .btn-search:hover:not(:disabled){background:var(--brand-2);}
.le_pw_foot .btn-search:disabled{background:#cbd5e1;cursor:not-allowed;box-shadow:none;}

.site-toast{
    position:fixed;left:50%;top:24px;transform:translate(-50%,-14px);z-index:2100;
    max-width:90vw;padding:12px 20px;border-radius:10px;
    background:#0f172a;color:#fff;font-size:13.5px;font-weight:500;
    box-shadow:0 10px 30px rgba(15,23,42,.28);
    opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
}
.site-toast.show{opacity:1;transform:translate(-50%,0);}

.content{padding:16px 24px 18px;min-height:700px;flex:1;}
.card{border:none!important;border-radius:14px!important;box-shadow:var(--card-shadow);background:#fff;}
.card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;}
.section-title{font-size:14px;font-weight:600;color:#111;display:flex;align-items:center;gap:7px;}
.section-title i{color:var(--brand);}

.view-all{
    font-size:11.5px;color:var(--brand);font-weight:700;cursor:pointer;text-decoration:none;
    background:#eef2ff;border:1px solid #e0e7ff;border-radius:20px;padding:4px 11px;
    display:inline-flex;align-items:center;gap:4px;transition:all .18s;
}
.view-all:hover{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 10px rgba(79,70,229,.3);}

.kpi-card{padding:13px 15px 8px;overflow:hidden;position:relative;transition:transform .2s,box-shadow .2s;}
.kpi-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(15,23,42,.1);}
.kpi-top{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.kpi-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex-shrink:0;}
.kpi-ic.naver{background:var(--naver);font-weight:900;font-size:17px;font-family:Arial,sans-serif;}
.kpi-label{font-size:12px;color:#333;font-weight:600;line-height:1.15;}
.kpi-val{font-size:20px;font-weight:700;color:#0f172a;letter-spacing:-.5px;line-height:1.1;}
.kpi-val small{font-size:13px;font-weight:600;color:#94a3b8;}
.kpi-val .new{color:var(--orange);}
.kpi-delta{font-size:11.5px;font-weight:700;margin:4px 0 6px;display:flex;align-items:center;gap:3px;}
.kpi-delta.up{color:var(--red);}
.kpi-delta.down{color:var(--bright-blue);}
.kpi-delta span{color:#94a3b8;font-weight:500;font-size:10.5px;}

.kpi-spark{height:24px;position:relative;margin:0 -15px;z-index:0;}
.kpi-spark-box{position:absolute;left:0;right:0;bottom:0;height:28px;}
.kpi-spark canvas{position:absolute;inset:0;width:100%!important;height:100%!important;}

.kpi-top,.kpi-val,.kpi-delta{position:relative;z-index:1;}

.chart-tip{
    position:fixed;z-index:99990;left:0;top:0;
    background:#1e293b;color:#fff;border-radius:8px;padding:9px 11px;
    font-size:12px;line-height:1.5;white-space:nowrap;pointer-events:none;
    box-shadow:0 8px 22px rgba(15,23,42,.28);
    opacity:0;visibility:hidden;transition:opacity .12s ease;
}
.chart-tip.show{opacity:1;visibility:visible;}
.chart-tip .ct-title{font-weight:700;margin-bottom:3px;}
.chart-tip .ct-row{display:flex;align-items:center;gap:6px;}
.chart-tip .ct-sw{width:9px;height:9px;border-radius:2px;flex-shrink:0;}

.rank-row{display:flex;align-items:center;padding:8.5px 4px;border-bottom:1px solid #f1f5f9;transition:background .15s;border-radius:8px;}
.rank-row:hover{background:#f8fafc;}
.rank-row:last-child{border-bottom:none;}
.rank-badge{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;color:#64748b;background:#f1f5f9;margin-right:11px;flex-shrink:0;}
.rank-badge.r1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 3px 8px rgba(245,158,11,.4);}
.rank-badge.r2{background:linear-gradient(135deg,#cbd5e1,#94a3b8);color:#fff;}
.rank-badge.r3{background:linear-gradient(135deg,#fb923c,#ea580c);color:#fff;}

.rank-name{font-size:13px;font-weight:600;color:#1e293b;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rank-chip{display:inline-block;font-size:10.5px;font-weight:700;color:#4f46e5;background:#eef2ff;border-radius:6px;padding:2px 8px;margin-left:8px;vertical-align:middle;}

.rank-name.has-chip{display:flex;align-items:center;}
.rank-name.has-chip .rank-nm{flex-shrink:0;overflow:hidden;text-overflow:ellipsis;}
.rank-name.has-chip .rank-chip{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-amt{margin-left:auto;padding-left:10px;flex-shrink:0;font-size:13px;font-weight:700;color:#0f172a;}
.rank-amt small{font-size:10.5px;color:#94a3b8;font-weight:600;}

.rank-meta-chip{font-size:10.5px;font-weight:700;color:#64748b;background:#f1f5f9;border-radius:6px;padding:2px 7px;}
.rank-meta-chip:empty{display:none;}

.rank-msg{display:flex;align-items:center;justify-content:center;gap:8px;padding:38px 12px;font-size:12.5px;font-weight:600;color:#94a3b8;text-align:center;line-height:1.5;}
.rank-msg.err{color:#ef4444;}
.rank-msg.err b{font-size:12.5px;}
.rank-msg.err span{font-weight:600;color:#94a3b8;}
.rank-msg i{font-size:15px;flex-shrink:0;}

.notice-row{display:flex;align-items:center;gap:10px;padding:8.5px 4px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .15s;border-radius:8px;}
.notice-row:hover{background:#f8fafc;}
.notice-row:last-child{border-bottom:none;}

.notice-tag{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px;flex-shrink:0;}
.notice-tag.notice{background:#fef2f2;color:#dc2626;}
.notice-tag.normal{background:#e5eef7;color:#64748b;}
.notice-txt{font-size:12.5px;color:#334155;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.notice-date{font-size:11px;color:#94a3b8;flex-shrink:0;}

.donut-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;z-index:0;}
.donut-center .dc-lab{font-size:11px;color:#94a3b8;font-weight:600;margin-bottom:3px;}
.donut-center .dc-val{font-size:22px;font-weight:800;color:#0f172a;line-height:1;}
.donut-side{position:absolute;top:14px;right:14px;z-index:4;display:flex;flex-direction:column;gap:1px;}
.donut-side .ds-row{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#475569;}
.donut-side .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.donut-side .ds-cnt{font-size:10.5px;font-weight:700;margin-left:1px;}
canvas#donutChart{position:relative;z-index:2;}

.chart-tabs{display:flex;background:#f1f5f9;border-radius:8px;padding:3px;}
.chart-tabs button{border:none;background:none;font-size:11.5px;font-weight:600;color:#64748b;padding:4px 12px;border-radius:6px;}
.chart-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.08);}

.dash-footer{padding:20px 24px 10px;color:#94a3b8;font-size:12px;line-height:1.7;border-top:1px solid #eceff5;background:#fff;}
.dash-footer .f-line1{font-weight:500;color:#64748b;}
.dash-footer a{color:#94a3b8;text-decoration:none;margin:0 6px;}
.dash-footer a:hover{color:var(--brand);}

.modal-rank-head{position:sticky;top:0;background:#f8fafc;z-index:2;font-size:12.5px;color:#64748b;font-weight:700;}
.modal-rank-head th{padding:13px 16px;border-bottom:2px solid #e2e8f0;}
.modal-scroll{max-height:54vh;overflow-y:auto;}
.modal-scroll table{margin-bottom:0;}
.modal-scroll td{padding:11px 16px;vertical-align:middle;font-size:13.5px;}
.modal-scroll tbody tr:hover{background:#f8fafc;}
.modal-scroll::-webkit-scrollbar{width:8px;}
.modal-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;}

.modal-title{font-weight:600;font-size:18px;}

@media(min-width:992px){
    .cc-4{flex:0 0 40%;max-width:40%;}
    .cc-2{flex:0 0 20%;max-width:20%;}
}

.mobile-logo{display:none;align-items:center;gap:8px;text-decoration:none;}
.mobile-logo img{width:32px;height:32px;border-radius:9px;flex-shrink:0;}
.mobile-logo span{font-weight:800;font-size:15px;color:#1e293b;white-space:nowrap;}

.overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1030;}

.chart-box{position:relative;}
#weekChart{height:240px;margin-top:10px;}
#hourChart{height:240px;}
#donutChart{height:200px;margin-top:10px;}
.donut-box{position:relative;height:242px;}
.chev-sm{font-size:12px;color:#94a3b8;}
.chev-fixed{transform:none!important;}
.icon-orange{color:var(--orange);}
.icon-brand{color:var(--brand);}
.icon-pink{color:var(--pink);}
.icon-purple-xs{color:var(--purple);font-size:8px;}
.chart-leg-dot{font-size:12px;color:#64748b;display:flex;align-items:center;gap:4px;}
.date-edit-wrap{display:none;align-items:center;gap:7px;}
.date-edit-wrap input[type="text"]{width:130px;border:1px solid #ddd;padding-left:10px;border-radius: 5px;}
.date-edit-wrap input[type="text"]:focus{border:1px solid #ddd;outline: none;}
.modal-card{border:none!important;border-radius:16px!important;overflow:hidden!important;}
.modal-hd{border-bottom:1px solid #f1f5f9!important;}
.ds-pct{font-size:10.5px;color:#94a3b8;font-weight:600;margin-left:2px;}

.period-bar{display:none;background:#fff;border-bottom:1px solid #eceff5;padding:8px 16px 9px;position:relative;}
.pb-inner{display:flex;flex-direction:column;gap:6px;}
.pb-branch{position:relative;}
.pb-branch .branch-select{width:100%;justify-content:space-between;padding:7px 12px;font-size:13.5px;}
.pb-branch .branch-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;width:auto;max-width:100%;}
.pb-date-badge{display:flex;align-items:center;justify-content:center;margin-top:1px;}
.pb-date-badge .db-pill{display:inline-flex;align-items:center;gap:5px;background:#eef2ff;color:var(--brand);font-size:11.5px;font-weight:700;padding:4px 13px;border-radius:20px;border:1px solid #e0e7ff;}
.pb-date-badge .db-pill i{font-size:11px;}
.pb-tabs .period-tabs{display:flex;background:#f1f5f9;border-radius:8px;padding:3px;}
.pb-tabs .period-tabs button{flex:1;text-align:center;border:none;background:none;font-size:12.5px;font-weight:600;color:#64748b;padding:5px 0;border-radius:6px;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent;}
.pb-tabs .period-tabs button:focus,.pb-tabs .period-tabs button:focus-visible{outline:none;}
.pb-tabs .period-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(0,0,0,.08);}
.pb-date-text{font-size:11.5px;color:#94a3b8;font-weight:600;text-align:center;padding-top:2px;}
.pb-date-edit-row{display:flex;align-items:center;gap:6px;justify-content:center;flex-wrap:wrap;padding-top:5px;}

.pb-date-edit-row input[type=date]{border:1px solid #e2e8f0;background:#fff;border-radius:7px;padding:4px 8px;font-size:12px;color:#475569;outline:none;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;}
.pb-date-edit-row input[type=date]:focus,.pb-date-edit-row input[type=date]:focus-visible{outline:none;}
.pb-date-edit-row .date-apply{background:var(--brand);color:#fff;border:none;border-radius:7px;font-size:11.5px;font-weight:700;padding:5px 12px;}

.page-breadcrumb{font-size:12.5px;font-weight:600;color:#64748b;display:flex;align-items:center;gap:9px;}

.page-breadcrumb .sep{color:var(--brand);font-size:16px;font-weight:600;line-height:1;margin:0 1px;opacity:.85;}
.page-breadcrumb .cur{color:var(--brand);font-weight:600;}

.content-admin{padding:14px 24px 18px;flex:1;}

.preview-banner{border-radius:12px;padding:11px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;}
.preview-banner.warn{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fcd34d;color:#92400e;}
.preview-banner.warn i{font-size:16px;color:#d97706;}
.preview-banner.ok{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1px solid #86efac;color:#166534;}
.preview-banner.ok i{font-size:16px;color:#16a34a;}
.preview-banner b{color:#78350f;}
.preview-banner.ok b{color:#14532d;}

.page-hd{margin-bottom:18px;}
.page-hd h4{font-weight:800;font-size:18px;color:#0f172a;margin:0 0 4px;}
.page-hd .sub{font-size:13px;color:#94a3b8;}

.stat-card{padding:18px 20px;border-radius:14px;box-shadow:var(--card-shadow);background:#fff;display:flex;align-items:center;gap:16px;}
.stat-ic{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;flex-shrink:0;}
.stat-ic-all{background:linear-gradient(135deg,#4f46e5,#6366f1);}
.stat-ic-use{background:linear-gradient(135deg,#10b981,#059669);}
.stat-ic-unuse{background:linear-gradient(135deg,#94a3b8,#64748b);}
.stat-val{font-size:26px;font-weight:800;color:#0f172a;line-height:1.1;}
.stat-val-use{color:#15803d;}
.stat-val-unuse{color:#475569;}
.stat-label{font-size:12.5px;color:#64748b;font-weight:600;margin-top:2px;}

.search-card{padding:10px 20px;}
.search-input-wrap{position:relative;}
.search-input-wrap i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:15px;}
.search-input-wrap input{padding-left:38px;border:1px solid #e2e8f0;border-radius:10px;height:42px;font-size:13.5px;color:#1e293b;outline:none;transition:border-color .15s;}
.search-input-wrap input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(79,70,229,.12);}
.search-field{min-width:200px;max-width:250px;}
.filter-select{border:1px solid #e2e8f0;border-radius:5px;height:42px;padding:0 14px;font-size:13.5px;color:#475569;outline:none;cursor:pointer;transition:border-color .15s;}
.filter-select:focus{border-color:var(--brand);}
.btn-search{background:var(--brand);color:#fff;border:none;border-radius:10px;height:42px;padding:0 22px;font-size:13.5px;font-weight:500;transition:all .18s;}
.btn-search:hover{background:#4338ca;box-shadow:0 4px 12px rgba(79,70,229,.35);}
.btn-reset{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;border-radius:10px;height:42px;padding:0 11px;font-size:13.5px;font-weight:600;transition:all .18s;text-decoration:none;display:inline-flex;align-items:center;gap:5px;cursor:pointer;}
.btn-reset:hover{background:#e2e8f0;color:#1e293b;}

.btn-excel-dl{background:#05a64a;color:#fff;border:1px solid #05a64a;border-radius:10px;height:32px;padding:0 16px;font-size:12px;font-weight:700;transition:all .18s;text-decoration:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;}
.btn-excel-dl:hover{background:#048a3e;border-color:#048a3e;color:#fff;box-shadow:0 4px 12px rgba(5,166,74,.35);}
.quick-date{display:flex;gap:6px;flex-wrap:wrap;}
.quick-date button{font-size:12px;font-weight:700;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:6px 12px;transition:all .15s;cursor:pointer;}
.quick-date button:hover{background:#eef2ff;color:var(--brand);border-color:#e0e7ff;}
.quick-date button.on{background:var(--brand);color:#fff;border-color:var(--brand);}
/* [2026-10-20 PJW] 화면에서 숨기는 보조 텍스트(표 caption 등). 참조 프로젝트 common.css 의 .blind 가 FMS 에 없어 "기간별 매장 매출" 같은 캡션이 표 아래에 보이던 문제 */
.blind{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;font-size:0;}
/* [2026-10-20 PJW] 조회기간 이동(이전/다음) 버튼 */
.quick-date button.nav{padding:6px 9px;}
.quick-date button.nav:disabled{color:#cbd5e1;background:#f8fafc;border-color:#eef2f7;cursor:default;}

.table-card{border-radius:14px;overflow:hidden;box-shadow:var(--card-shadow);}
.table-scroll{overflow-x:auto;}
.tbl-result-bar{padding:7px 20px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;justify-content:space-between;}
.tbl-result-bar .res-txt{font-size:13px;font-weight:600;color:#1e293b;}
.tbl-result-bar .res-txt span{color:var(--brand);}
.tbl-result-bar .res-sub{font-size:12px;color:#6663a9;}
.tbl-left-group{display:flex;align-items:center;gap:10px;}
.tbl-section-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#111;padding-right:10px;border-right:1px solid #e2e8f0;}
.tbl-section-title i{color:var(--brand);}
.res-tag{ font-size:12px;color:#94a3b8;font-weight:500;margin-left:6px;}
.store-table{width:100%;border-collapse:collapse;min-width:900px;}
.store-table thead th{background:#e0e7ff;color:#3942b3;font-size:12.5px;font-weight:700;padding:14px 16px;white-space:nowrap;letter-spacing:.02em;border-bottom:none;}

.store-table thead th:first-child{padding-left:20px;}
.store-table thead th:last-child{padding-right:20px;}
.store-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background .13s;}
.store-table tbody tr:last-child{border-bottom:none;}
.store-table tbody tr:hover{background:#f8fafc;}
.store-table tbody td{padding:13px 16px;font-size:13.5px;color:#111;vertical-align:middle;}
.store-table tbody td:first-child{padding-left:20px;color:#94a3b8;font-size:12px;font-weight:600;}
.store-table tbody td:last-child{padding-right:20px;}
.store-nm{font-weight:700;color:#0f172a;}
.store-code{font-size:11.5px;color:#64748b;font-family:monospace;background:#f1f5f9;padding:2px 8px;border-radius:6px;}
.brand-chip{font-size:11px;font-weight:700;color:#7c3aed;background:#ede9fe;padding:3px 9px;border-radius:6px;display:inline-block;}
.brand-empty{color:#cbd5e1;font-size:12px;}
.status-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:20px;}
.status-badge.use{background:#dcfce7;color:#15803d;}
.status-badge.use::before{content:"";width:7px;height:7px;border-radius:50%;background:#22c55e;display:inline-block;}
.status-badge.unuse{background:#f1f5f9;color:#64748b;}
.status-badge.unuse::before{content:"";width:7px;height:7px;border-radius:50%;background:#94a3b8;display:inline-block;}
.addr-txt{font-size:12.5px;color:#64748b;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.reg-date{font-size:12px;color:#94a3b8;}
.btn-detail{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;color:var(--brand);border:1px solid #e0e7ff;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;text-decoration:none;transition:all .15s;cursor:pointer;}
.btn-detail:hover{background:var(--brand);color:#fff;border-color:var(--brand);}

.col-no{width:52px;text-align:center;}
.col-status{width:88px;text-align:center;}
.col-130{width:130px;}
.col-120{width:120px;}
.col-110{width:110px;}
.col-90{width:90px;}
.col-100{width:100px;}
.col-70c{width:70px;text-align:center;}
.col-pay{width:120px;text-align:right;}
.col-mng{width:80px;text-align:center;}
.col-rank{width:70px;}
.td-no{text-align:center;color:#94a3b8;font-size:12px;font-weight:600;}
.td-center{text-align:center;}
.td-contact{font-size:13px;}
.td-num{text-align:right;font-size:12.5px;color:#475569;font-weight:600;}
.td-pay{text-align:right;font-size:12.5px;font-weight:700;color:#0f172a;}
.td-id{font-size:11.5px;color:#64748b;font-family:monospace;}

.naver-badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:12px;}
.naver-badge.on{background:#e8faf0;color:#05a64a;}
.naver-badge.on::before{content:"";width:6px;height:6px;border-radius:50%;background:#03c75a;display:inline-block;}
.naver-badge.off{background:#f1f5f9;color:#94a3b8;}

.store-table{min-width:1700px;}

.empty-state{padding:60px 20px;text-align:center;color:#94a3b8;}
.empty-state i{font-size:46px;margin-bottom:14px;opacity:.5;display:block;color:#cbd5e1;}
.empty-state p{font-size:14px;margin:0;}
.empty-title{font-weight:700;color:#475569;margin-bottom:4px;}
.empty-desc{font-size:12.5px;}

.pagination-wrap{padding:16px 20px;border-top:1px solid #f1f5f9;display:flex;align-items:center;justify-content:center;}
.pg-nav{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:center;}
.pg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 6px;border-radius:9px;font-size:13.5px;font-weight:600;color:#475569;background:#fff;border:1px solid #e2e8f0;text-decoration:none;transition:all .15s;cursor:pointer;}
.pg-btn:hover{background:#eef2ff;color:var(--brand);border-color:#e0e7ff;}
.pg-btn.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 10px rgba(79,70,229,.3);}
.pg-btn.disabled{opacity:.4;pointer-events:none;}
.pg-ellipsis{min-width:30px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;}

.text-brand{color:var(--brand)!important;}
.date-sep{color:#94a3b8;font-size:13px;}
.dot-blue{background:#3b82f6;}
.dot-naver{background:#03c75a;}
.txt-blue{color:#3b82f6;}
.txt-green{color:#10b981;}

@media(max-width:1280px){
    .sidebar{transform:translateX(-100%);}
    .sidebar.open{transform:translateX(0);}
    .main{margin-left:0;padding-top:var(--topbar-h,54px);}
    .hamburger{display:block;}
    .sidebar-close{display:flex;}
    .overlay.show{display:block;}
    .topbar-tabs,.topbar #dateBox,.topbar-search{display:none!important;}
    .topbar .branch-wrap{display:none!important;}
    .topbar{left:0;padding: 7px 24px 7px 15px;}

    .mobile-logo{display:flex;position:absolute;left:50%;transform:translateX(-50%);}

    .logout-btn{display:none!important;}
    .period-bar{display:block;}
}

@media(max-width:576px){
    .topbar{padding:10px 14px;}
    .topbar .profile .d-none{display:none!important;}
    .topbar .profile i{display:none!important;}
    .topbar .profile{gap:0;}
    .bell{font-size:18px;}
    .hamburger{font-size:24px;margin-right:2px;}
    .content{padding:10px 10px 12px;}
    .content-admin{padding:12px 12px 14px;}
    .row.g-3{--bs-gutter-x:.6rem;--bs-gutter-y:.6rem;}
    #kpiRow .col-6{padding-left:calc(var(--bs-gutter-x)*.5);}
    .kpi-card{padding:11px 12px 6px;}
    .kpi-val{font-size:17px;}
    .kpi-label{font-size:11px;}
    .cc-4,.cc-2{flex:0 0 100%;max-width:100%;}
    .col-lg-4{flex:0 0 100%;max-width:100%;}
    :root{--sidebar-w:240px;}
    .dash-footer{padding:12px 14px 18px;font-size:11px;}
    .dash-footer a{display:inline-block;}
    .pb-tabs .period-tabs button{font-size:12px;}
    .pb-date-text{font-size:11px;}
    .pb-date-edit-row input[type=date]{font-size:11.5px;padding:3px 6px;}

    .stat-card{padding:14px 16px;}
    .stat-val{font-size:22px;}
    .addr-txt{max-width:130px;}
}
@media(max-width:360px){
    .kpi-val{font-size:15px;}
    :root{--sidebar-w:88vw;}
}

.login-brand{
    position:relative;z-index:1;flex:0 0 37%;max-width:400px;align-self:stretch;
    display:flex;align-items:center;justify-content:center;
    padding:48px 44px;overflow:hidden;color:#fff;
    background:linear-gradient(155deg,#4c1d95 0%,#5b21b6 42%,#4f46e5 100%);
}

.login-brand::before,.login-brand::after{display:none;
    content:"";position:absolute;border-radius:50%;pointer-events:none;
    background:rgba(255,255,255,.07);
}
.login-brand::before{width:300px;height:300px;top:-96px;left:-116px;}
.login-brand::after{width:220px;height:220px;bottom:-72px;right:-52px;background:rgba(255,255,255,.055);}
.lb-inner{position:relative;width:100%;max-width:390px;text-align:center;}
.lb-head{
    font-size:clamp(22px,2.4vw,30px);font-weight:700;line-height:1.4;
    letter-spacing:-.02em;margin:0 0 14px;color:#fff;text-wrap:balance;
}

.lb-desc{
    font-size:13.5px;line-height:1.75;margin:0 auto 30px;
    color:rgba(255,255,255,.78);padding:0 22px;
}
.lb-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;}
.lb-item{
    display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:13px;
    text-align:left;
    background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.13);
}
.lb-ic{
    width:34px;height:34px;border-radius:10px;flex:none;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.17);color:#fff;font-size:15px;
}
.lb-txt{display:flex;flex-direction:column;min-width:0;}
.lb-t{font-size:13px;font-weight:700;letter-spacing:-.01em;color:#fff;}
.lb-d{font-size:11px;line-height:1.5;margin-top:2px;color:rgba(255,255,255,.66);}

@media(max-width:900px){
    .login-brand{display:none;}
}

.bg-deco{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.bg-deco::before{display:none; content:"";position:absolute;width:660px;height:660px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.18) 0%,transparent 70%);top:-160px;left:-180px;}
.bg-deco::after{display:none;content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(79,70,229,.13) 0%,transparent 70%);bottom:-140px;right:-130px;}
.bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(79,70,229,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(79,70,229,.04) 1px,transparent 1px);background-size:48px 48px;}

.login-wrap{position:relative;z-index:1;flex:1 1 auto;min-width:0;padding:20px;display:flex;align-items:center;justify-content:center;}
.login-card{width:100%;max-width:400px;background:#fff;border-radius:24px;box-shadow:0 20px 60px rgba(15,23,42,.10),0 4px 16px rgba(79,70,229,.08);padding:44px 40px 36px;}
.login-header{text-align:center;margin-bottom:32px;}
.login-logo{width:137px;margin-bottom:5px;}
.login-logo img{width:auto;}
.login-title{font-size:18px;font-weight:600;color:#0f172a;margin-bottom:4px;}
.login-sub{font-size:13px;color:#94a3b8;font-weight:500;}
.field-group{display:flex;flex-direction:column;gap:14px;margin-bottom:10px;}
.field-label{font-size:12.5px;font-weight:700;color:#475569;margin-bottom:6px;display:block;}
.field-wrap{position:relative;}
.field-wrap .field-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;color:#94a3b8;pointer-events:none;transition:color .2s;}
.field-input{width:100%;border:1.5px solid #e2e8f0;border-radius:12px;padding:12px 14px 12px 42px;font-size:14.5px;font-weight:500;color:#1e293b;background:#f8fafc;outline:none;transition:all .2s;}
.field-input::placeholder{color:#cbd5e1;}
.field-input:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 4px rgba(79,70,229,.10);}
.field-input:focus + .field-icon,.field-wrap:focus-within .field-icon{color:var(--brand);}
.field-icon{order:-1;}
.pw-toggle{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;color:#94a3b8;font-size:16px;cursor:pointer;transition:color .2s;}
.pw-toggle:hover{color:var(--brand);}
.login-options{display:flex;align-items:center;justify-content:space-between;margin:16px 0 22px;}

.remember-wrap{display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none;}
.remember-wrap input[type=checkbox]{appearance:none;-webkit-appearance:none;width:17px;height:17px;border:1.5px solid #cbd5e1;border-radius:5px;background:#f8fafc;cursor:pointer;transition:all .18s;flex-shrink:0;position:relative;}
.remember-wrap input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand);}
.remember-wrap input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg);}
.remember-wrap span{font-size:13px;color:#64748b;font-weight:500;}
.forgot-link{font-size:13px;color:var(--brand);font-weight:600;text-decoration:none;}
.forgot-link:hover{text-decoration:underline;}
.btn-login{width:100%;padding:14px;border:none;border-radius:13px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);color:#fff;font-size:15.5px;font-weight:800;letter-spacing:.01em;cursor:pointer;transition:all .2s;box-shadow:0 6px 20px rgba(79,70,229,.30);position:relative;overflow:hidden;}
.btn-login::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .2s;}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(79,70,229,.38);}
.btn-login:hover::after{opacity:1;}
.btn-login:active{transform:translateY(0);}
.divider{display:none;align-items:center;gap:12px;margin:22px 0 18px;}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:#e9ecf1;}
.divider span{font-size:12px;color:#94a3b8;font-weight:600;white-space:nowrap;}
.social-list{display:none;flex-direction:column;gap:10px;}
.btn-social{width:100%;display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:12px;border:1.5px solid #e2e8f0;background:#fff;font-size:14px;font-weight:600;color:#374151;cursor:pointer;transition:all .18s;text-align:left;}
.btn-social:hover{background:#f8fafc;border-color:#c7d2fe;transform:translateY(-1px);}
.btn-social .s-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.btn-social.naver .s-icon{background:#03c75a;color:#fff;}
.btn-social.kakao .s-icon{background:#fee500;color:#3c1e1e;}
.s-icon-k{font-size:17px;font-weight:900;line-height:1;}
.btn-social span{flex:1;}
.btn-social .s-arrow{font-size:13px;color:#cbd5e1;}
.login-footer{text-align:center;margin-top:28px;font-size:12.5px;color:#94a3b8;}
.login-footer a{color:var(--brand);font-weight:700;text-decoration:none;}
.login-footer a:hover{text-decoration:underline;}
.security-badge{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:20px;font-size:11.5px;color:#94a3b8;font-weight:500;}
.security-badge i{color:#10b981;font-size:13px;}
@media(max-width:480px){
    .login-card{padding:32px 24px 28px;border-radius:20px;}
    .login-wrap{padding:16px;}
}

.qa-input{width:100%;border:1px solid #e2e8f0;border-radius:9px;padding:9px 12px;font-size:13px;
    color:#1e293b;outline:none;transition:border .15s;}
.qa-input:focus{border-color:var(--brand);}
.qa-footer{border-top:1px solid #f1f5f9!important;gap:8px;}
.qa-btn{border:none;border-radius:9px;font-size:13px;font-weight:700;padding:9px 20px;transition:all .2s;}
.qa-btn.cancel{background:#f1f5f9;color:#64748b;}
.qa-btn.cancel:hover{background:#e2e8f0;}
.qa-btn.confirm{background:var(--brand);color:#fff;display:inline-flex;align-items:center;gap:5px;text-decoration:none ;}

.qa-btn.confirm:hover{background:var(--brand-2);}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes shake{
    0%,100%{transform:translateX(0);}
    20%{transform:translateX(-8px);}
    40%{transform:translateX(8px);}
    60%{transform:translateX(-6px);}
    80%{transform:translateX(6px);}
}

.site-dlg-backdrop{
    position:fixed;inset:0;z-index:2000;
    display:flex;align-items:center;justify-content:center;padding:20px;
    background:rgba(15,23,42,.45);backdrop-filter:blur(2px);
    opacity:0;transition:opacity .16s ease;
}
.site-dlg-backdrop.show{opacity:1;}
.site-dlg{
    width:100%;max-width:390px;background:#fff;border-radius:18px;
    box-shadow:0 20px 50px rgba(15,23,42,.25);
    padding:28px 26px 22px;text-align:center;
    transform:translateY(10px) scale(.97);transition:transform .18s cubic-bezier(.34,1.4,.64,1);
}
.site-dlg-backdrop.show .site-dlg{transform:translateY(0) scale(1);}
.site-dlg-ic{
    width:54px;height:54px;margin:0 auto 14px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;font-size:26px;
    background:#eef2ff;color:var(--brand);
}
.site-dlg-ic.success{background:#ecfdf5;color:var(--green);}
.site-dlg-ic.warn{background:#fffbeb;color:var(--orange);}
.site-dlg-ic.error,.site-dlg-ic.danger{background:#fef2f2;color:#dc2626;}
.site-dlg-ic.ask{background:#eef2ff;color:var(--brand);}
.site-dlg-tit{font-size:16px;font-weight:800;color:#1e293b;margin-bottom:6px;}
.site-dlg-msg{font-size:14px;font-weight:500;color:#475569;line-height:1.62;word-break:break-all;}
.site-dlg-btns{display:flex;gap:8px;justify-content:center;margin-top:22px;}
.site-dlg-btn{
    min-width:104px;border:none;border-radius:10px;padding:11px 18px;
    font-size:13.5px;font-weight:700;transition:background .16s;
}
.site-dlg-btn.ok{background:var(--brand);color:#fff;}
.site-dlg-btn.ok:hover{background:var(--brand-2);}
.site-dlg-btn.ok.danger{background:#dc2626;}
.site-dlg-btn.ok.danger:hover{background:#b91c1c;}
.site-dlg-btn.cancel{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;}
.site-dlg-btn.cancel:hover{background:#e2e8f0;}
.site-dlg-btn:focus,.site-dlg-btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(79,70,229,.22);}
.site-dlg-btn.ok.danger:focus,.site-dlg-btn.ok.danger:focus-visible{box-shadow:0 0 0 3px rgba(220,38,38,.25);}
@media (max-width:420px){
    .site-dlg{padding:24px 20px 18px;}
    .site-dlg-btns{flex-direction:column-reverse;}
    .site-dlg-btn{width:100%;}
}
