/*
 * Bonnext ERP presentation layer
 *
 * This stylesheet intentionally changes visuals only. Existing element IDs,
 * event bindings, Firebase reads/writes, calculations and role checks remain
 * owned by index.html and app-main.js.
 */

:root{
  --navy:#14243a;
  --navy2:#1d3049;
  --navy3:#2a3d55;
  --blue:#2e6fa6;
  --blue-light:#edf4f9;
  --blue-mid:#c8dce9;
  --teal:#2d7b6d;
  --teal-light:#edf7f4;
  --amber:#9a6a1f;
  --amber-light:#fbf5e8;
  --red:#b14949;
  --red-light:#fbefef;
  --green:#2d7b6d;
  --green-light:#edf7f4;
  --purple:#66558c;
  --purple-light:#f2eff7;
  --gray0:#f4f5f7;
  --gray1:#edf0f3;
  --gray2:#dfe4ea;
  --gray3:#98a2b1;
  --gray4:#687487;
  --gray5:#334155;
  --text:#17202d;
  --card:#fff;
  --border:#dfe4ea;
  --shadow:0 8px 24px rgba(20,36,58,.055);
  --radius:8px;
  --radius-lg:10px;
  --app-sidebar:224px;
}

html{background:var(--gray0)}
body{
  background:var(--gray0);
  color:var(--text);
  font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Noto Sans KR","Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font-family:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid rgba(46,111,166,.46);
  outline-offset:2px;
}

/* App shell */
#appShell{background:var(--gray0)}
.header{
  position:fixed;
  inset:0 0 auto var(--app-sidebar);
  height:64px;
  padding:0 30px;
  background:rgba(255,255,255,.96);
  color:var(--text);
  border-bottom:1px solid var(--gray2);
  box-shadow:none;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  z-index:120;
}
.headerLeft{min-width:0}
.headerLogo{
  color:var(--gray4);
  font-size:12px;
  font-weight:600;
  letter-spacing:-.01em;
}
.headerLogo img{display:none}
.headerLogo::before{content:"업무  /";color:var(--gray3);font-weight:500;margin-right:2px}
.headerRight{gap:8px}
.syncBadge{
  min-height:28px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--gray2);
  background:#fff!important;
  color:var(--teal)!important;
  border-radius:6px;
  font-size:10px;
}
.roleBadge{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--gray2);
  background:#fff;
  color:var(--gray4);
  border-radius:6px;
  font-size:10px;
}
.logoutBtn{
  min-height:32px;
  padding:0 11px;
  border:1px solid var(--gray2);
  background:#fff;
  color:var(--text);
  border-radius:7px;
  font-size:11px;
  font-weight:650;
}
.logoutBtn:hover{border-color:#b8c2ce;background:#fafbfc}
.menuToggleBtn{display:none}
.appBody{
  display:block;
  min-height:100vh;
  padding:64px 0 0 var(--app-sidebar);
}
.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--app-sidebar);
  min-width:var(--app-sidebar);
  height:100vh;
  padding:24px 16px 18px;
  gap:3px;
  background:var(--navy);
  overflow-y:auto;
  z-index:130;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.16) transparent;
}
.sidebarBrand{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:0 9px;
  margin-bottom:27px;
  color:#fff;
  flex:0 0 auto;
}
.sidebarBrandMark{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.32);
  border-radius:7px;
  font-size:14px;
  font-weight:800;
  letter-spacing:-.07em;
}
.sidebarBrandCopy{display:flex;flex-direction:column;line-height:1}
.sidebarBrandCopy b{font-size:16px;font-weight:750;letter-spacing:.12em}
.sidebarBrandCopy small{margin-top:5px;color:rgba(255,255,255,.45);font-size:9px;letter-spacing:.18em}
.sideSection{
  padding:0 11px;
  margin:18px 0 7px;
  color:rgba(255,255,255,.38);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
}
.sidebar>.sideSection:first-of-type{margin-top:0}
.sideBtn{
  min-height:40px;
  padding:0 11px;
  gap:11px;
  border-radius:7px;
  color:rgba(255,255,255,.66);
  font-size:13px;
  font-weight:560;
  transition:background .16s ease,color .16s ease;
}
.sideBtn:hover{background:rgba(255,255,255,.07);color:#fff}
.sideBtn.active{
  border-left:0;
  background:#fff;
  color:var(--navy);
  font-weight:700;
}
.sideBtn .sideIcon{width:18px;font-size:16px;line-height:1}
.sideBtn .bnxLucideIcon{width:17px;height:17px;stroke-width:1.8}
.sideHospitalName{
  margin-top:auto;
  padding:16px 10px 2px;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.78);
  font-size:12px;
  font-weight:650;
}
.main{
  width:100%;
  max-width:1560px;
  min-height:calc(100vh - 64px);
  margin:0 auto;
  padding:28px 30px 44px;
}

/* Page-level controls */
.hospitalTabs{
  width:max-content;
  max-width:100%;
  flex-wrap:nowrap;
  overflow-x:auto;
  margin-bottom:18px;
  padding:3px;
  gap:2px;
  border-radius:7px;
  background:#e9edf1;
  scrollbar-width:none;
}
.hospitalTabs::-webkit-scrollbar{display:none}
.hTab{
  flex:0 0 auto;
  padding:7px 13px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--gray4);
  font-size:11px;
  font-weight:650;
  white-space:nowrap;
}
.hTab.active{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(20,36,58,.09)}
.staffNotice,.viewOnlyBadge{
  margin-bottom:14px;
  padding:10px 12px;
  border-radius:7px;
  box-shadow:none;
  font-size:11px;
  line-height:1.5;
}
.staffNotice{background:var(--blue-light);border-color:var(--blue-mid);color:var(--blue)}
.viewOnlyBadge{background:var(--amber-light);border-color:#ead9b8;color:var(--amber)}

/* Dashboard KPI cards */
.summaryGrid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.summaryCard{
  position:relative;
  min-width:0;
  min-height:132px;
  padding:16px 17px;
  overflow:hidden;
  container-type:inline-size;
  background:#fff!important;
  border:1px solid var(--gray2)!important;
  border-radius:10px;
  box-shadow:0 2px 8px rgba(20,36,58,.025);
}
.summaryCard::after{
  content:"";
  position:absolute;
  top:15px;
  right:16px;
  width:27px;
  height:27px;
  border-radius:6px;
  background:var(--blue-light);
  pointer-events:none;
}
.summaryCard.sc-teal::after,.summaryCard.sc-green::after{background:var(--teal-light)}
.summaryCard.sc-amber::after{background:var(--amber-light)}
.summaryCard>div:first-child{position:relative;z-index:1;padding-right:36px}
.summaryCard .sLabel{color:var(--gray4);font-size:11px;font-weight:650;margin-bottom:14px}
.summaryCard .sVal{
  max-width:100%;
  overflow:hidden;
  color:var(--navy)!important;
  font-size:clamp(18px,10cqi,25px);
  font-weight:770;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.045em;
  line-height:1.1;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.summaryCard .sUnit{margin-left:3px;color:var(--gray4);font-size:11px;font-weight:600;letter-spacing:0}
.summaryCard .sSub{margin-top:10px;color:var(--gray3);font-size:10px;line-height:1.4}
.summaryCard .kpiToggleBtn{
  position:relative;
  z-index:2;
  max-width:72px;
  overflow:hidden;
  text-overflow:ellipsis;
  padding:4px 7px!important;
  border:1px solid var(--gray2)!important;
  background:#fff!important;
  color:var(--gray4)!important;
  box-shadow:none!important;
  font-size:9px!important;
}

/* Calendar */
.calNav{
  min-height:60px;
  margin:0;
  padding:11px 16px;
  gap:5px;
  border:1px solid var(--gray2);
  border-bottom:0;
  border-radius:10px 10px 0 0;
  background:#fff;
}
.calNav::before{
  content:"월간 기록";
  margin-right:auto;
  color:var(--navy);
  font-size:14px;
  font-weight:740;
}
.calNav h2{
  min-width:112px;
  margin:0;
  color:var(--navy);
  font-size:13px;
  font-weight:700;
  text-align:center;
  white-space:nowrap;
}
.navBtn{
  min-width:32px;
  min-height:32px;
  padding:0 10px;
  border:1px solid var(--gray2);
  border-radius:6px;
  background:#fff;
  color:var(--gray4);
  font-size:11px;
  font-weight:650;
  white-space:nowrap;
}
.navBtn:hover{border-color:#aabfd0;background:var(--blue-light);color:var(--blue)}
.todayBtn{border-color:var(--gray2);background:#fff;color:var(--navy)}
.calScroll{
  overflow-x:auto;
  border:1px solid var(--gray2);
  border-radius:0 0 10px 10px;
  box-shadow:var(--shadow);
  background:#fff;
}
.calInner{background:#fff}
.calHeadRow{background:#f7f8fa;border-bottom:1px solid var(--gray2)}
.calHeadCell{padding:10px 4px;color:var(--gray3);font-size:10px;font-weight:700}
.calHeadCell.sun{color:var(--red)}
.calHeadCell.sat{color:var(--blue)}
.calHeadCell.wk{background:#f3f5f7;color:var(--gray4)}
.calRow{border-top:0;border-bottom:1px solid var(--gray1)}
.dayCell{
  min-height:144px;
  padding:9px;
  border-right:1px solid var(--gray1);
  background:#fff;
}
.dayCell.empty,.dayCell.other-month{background:#fafbfc}
.dayCell.clickable:hover{background:#fafbfd}
.dayCell.isToday{position:relative;background:#f7fafd}
.dayCell.isToday::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--blue)}
.dayNum{font-size:11px;font-weight:650}
.dayNum.tdMark{width:22px;height:22px;background:var(--navy);font-size:11px}
.dc{margin-top:10px;line-height:1.5}
.dc-lbl{color:var(--gray4);font-size:9px}
.dc-val,.dc-sales-val{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
  font-variant-numeric:tabular-nums;
}
.dc-sales-val{color:var(--blue)}
.dc-memo-btn{
  margin-top:7px;
  padding:5px 0 0;
  border:0;
  border-top:1px solid var(--gray1);
  border-radius:0;
  background:transparent;
  color:var(--blue);
  font-size:9px;
  font-weight:700;
  text-align:left;
}
.dc-memo-btn:hover{background:transparent;text-decoration:underline}
.weekCell{background:#f7f8fa;border-left:1px solid var(--gray2)}

/* Statistics and analysis pages */
.statsWrap{min-width:0;overflow:visible}
.statsTitle{color:var(--navy);font-size:20px;font-weight:760;letter-spacing:-.035em}
.statsSubtitle{color:var(--gray4);font-size:11px;line-height:1.55}
.statsViewSwitch{
  width:max-content;
  max-width:100%;
  overflow-x:auto;
  margin-bottom:14px;
  padding:3px;
  gap:2px;
  border-radius:7px;
  background:#e9edf1;
  scrollbar-width:none;
}
.statsViewSwitch::-webkit-scrollbar{display:none}
.statsViewBtn{
  flex:0 0 auto;
  height:34px;
  padding:0 14px;
  border-radius:5px;
  color:var(--gray4);
  font-size:11px;
  font-weight:650;
}
.statsViewBtn.active{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(20,36,58,.09)}
.statsPeriodToggle{padding:3px;gap:2px;border-radius:7px;background:#e9edf1}
.statsPeriodBtn{height:30px;padding:0 11px;border-radius:5px;font-size:11px;font-weight:650}
.statsPeriodBtn.active{color:var(--navy);box-shadow:0 1px 3px rgba(20,36,58,.09)}
#statsStickyNav{
  top:64px!important;
  margin-bottom:16px!important;
  padding:12px 0!important;
  border-bottom:1px solid var(--gray2)!important;
  background:rgba(244,245,247,.96)!important;
  box-shadow:none!important;
  backdrop-filter:blur(12px);
}
.trendGrid,.kpiRow{gap:10px;margin-bottom:14px}
.trendCard,.kpiCard,.chartCard,.kpi2Card,.kpi2Guide,.kpi2Context,.reportCard{
  min-width:0;
  border:1px solid var(--gray2)!important;
  border-radius:10px!important;
  background:#fff;
  box-shadow:0 2px 8px rgba(20,36,58,.025)!important;
}
.trendCard,.kpiCard{padding:16px}
.trendCard .tVal,.kpiCard .kVal{
  max-width:100%;
  overflow:hidden;
  color:var(--navy);
  font-size:clamp(18px,2vw,24px);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.04em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.chartCard{padding:17px;margin-bottom:14px;overflow:hidden}
.chartCard h3{color:var(--navy);font-size:13px;font-weight:740}
.weekTable{min-width:680px;font-size:11px}
.weekTable th{
  padding:10px 12px;
  border-bottom:1px solid var(--gray2);
  background:#f7f8fa;
  color:var(--gray4);
  font-weight:650;
}
.weekTable td{padding:10px 12px;border-bottom:1px solid var(--gray1)}
.weekTable th:first-child,.weekTable th:last-child{border-radius:0}
.statsPeriodNav{gap:6px}
.statsPeriodNav span{color:var(--navy);font-size:13px}

/* Forms, reports, admin surfaces and overlays */
.field input,.field select,.field textarea,.formGroup input,
input[type="text"],input[type="number"],input[type="password"],input[type="date"],input[type="month"],select,textarea{
  border-color:var(--gray2);
  border-radius:7px;
}
.field input:focus,.field select:focus,.field textarea:focus,
input:focus,select:focus,textarea:focus{border-color:#9bbbd2;box-shadow:0 0 0 3px rgba(46,111,166,.10)}
.btnPrimary{border-radius:7px;background:var(--navy);font-weight:650}
.btnPrimary:hover{background:var(--navy2)}
.btnSecondary{border:1px solid var(--gray2);border-radius:7px;background:#fff;color:var(--gray5)}
.modal,.memoModal,.forecastDetailModal,.logoutConfirmCard,.kpi2BasisModal{
  border:1px solid var(--gray2);
  box-shadow:0 24px 70px rgba(10,22,38,.24);
}
.modalHead,.memoHead,.forecastDetailHead{
  background:var(--navy);
  box-shadow:none;
}
.modalBody.entryGrid .mSection,.forecastDetailCard{
  border-color:var(--gray2);
  border-radius:8px;
  box-shadow:none;
}
.memoText{border:1px solid var(--gray1);background:#f7f8fa;border-radius:8px}
.logoutConfirmTitle{color:var(--navy)}
.globalBusy{background:rgba(20,36,58,.26)}
.globalBusyPanel{border-radius:9px;background:rgba(20,36,58,.96)}

/* Mid-size windows: preserve information without letting cards overflow. */
@media(max-width:1260px) and (min-width:821px){
  .summaryGrid,.trendGrid,.kpiRow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summaryCard{min-height:122px}
}

@media(max-width:1120px) and (min-width:821px){
  .calInner{min-width:0}
  .calHeadRow,.calRow,.calWeekRow{grid-template-columns:repeat(7,minmax(0,1fr))}
  .calHeadCell.wk,.weekCell,.calAverageHead,.calAverageRow{display:none}
}

@media(max-width:1000px) and (min-width:821px){
  :root{--app-sidebar:196px}
  .header{padding-left:22px;padding-right:22px}
  .main{padding:24px 22px 38px}
  .sidebar{padding-left:12px;padding-right:12px}
  .dayCell{min-height:112px;padding:8px 4px;text-align:center}
  .dayCell .dc-row,.dayCell .dc-div,.dayCell .dc-sub,.dayCell .dc-add-btn{display:none}
  .dayCell .dc-memo-btn{margin-top:12px;padding:5px 2px;border:0;border-radius:5px;background:var(--blue-light);text-align:center}
}

/* Mobile app shell */
@media(max-width:820px){
  :root{--app-sidebar:0px}
  html,body{max-width:100%;overflow-x:hidden}
  .header{
    inset:0 0 auto 0;
    height:56px;
    padding:0 12px;
    gap:8px;
  }
  .headerLeft{flex:1}
  .menuToggleBtn{
    display:inline-grid;
    place-items:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border:1px solid var(--gray2);
    border-radius:7px;
    background:#fff;
    color:var(--navy);
  }
  .headerLogo{font-size:12px;color:var(--navy);font-weight:780;letter-spacing:.08em}
  .headerLogo::before{display:none}
  .headerLogo img{display:block!important;width:27px!important;height:27px!important;border-radius:6px!important;margin-right:0!important}
  .syncBadge{display:none}
  .roleBadge,#autoLogoutBadge{display:none!important}
  .logoutBtn{min-height:30px;padding:0 8px;font-size:10px}
  .appBody{padding:56px 0 0}
  .sidebar{
    inset:56px auto 0 0;
    width:224px!important;
    min-width:224px!important;
    height:calc(100dvh - 56px);
    padding:16px 12px 18px;
    transform:translateX(-100%);
  }
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebarBrand{display:none}
  .main{
    max-width:none;
    min-height:calc(100dvh - 56px);
    padding:20px 14px 88px;
  }
  .main>div{padding:0!important}
  .hospitalTabs{
    width:calc(100% + 28px);
    max-width:none;
    margin:0 -14px 14px;
    padding:0 14px 4px;
    gap:6px;
    border-radius:0;
    background:transparent;
  }
  .hTab{border:1px solid var(--gray2);background:#fff}
  .hTab.active{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:none}
  .summaryGrid{
    display:flex;
    width:calc(100% + 28px);
    max-width:none;
    margin:0 -14px 14px;
    padding:0 14px 4px;
    gap:8px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .summaryGrid::-webkit-scrollbar{display:none}
  .summaryCard{
    flex:0 0 164px;
    min-height:116px;
    padding:14px;
    scroll-snap-align:start;
  }
  .summaryCard::after{top:13px;right:13px;width:26px;height:26px}
  .summaryCard .sLabel{margin-bottom:12px}
  .summaryCard .sVal{font-size:clamp(17px,10cqi,21px)}
  .summaryCard .sUnit{font-size:10px}
  .summaryCard .sSub{margin-top:8px;font-size:9px}
  .calNav{
    min-height:58px;
    padding:10px 11px;
    gap:3px;
    overflow:visible;
  }
  .calNav::before{display:none}
  .calNav h2{
    order:0;
    flex:1;
    min-width:76px;
    font-size:12px;
    text-align:center;
  }
  .calNav #prevBtn{order:-1}
  .calNav #nextBtn{order:1}
  .calNav #todayBtnEl{order:2}
  .navBtn{min-width:30px;min-height:30px;padding:0 8px}
  .calScroll{margin:0;border-radius:0 0 9px 9px;overflow:visible}
  .calInner{min-width:0}
  .calHeadRow,.calRow,.calWeekRow{grid-template-columns:repeat(7,minmax(0,1fr))}
  .calHeadCell{padding:9px 2px}
  .calHeadCell.wk,.weekCell,.calAverageHead,.calAverageRow{display:none}
  .dayCell{
    min-height:88px;
    padding:7px 3px 6px;
    border-right:0;
    text-align:center;
  }
  .dayNum{font-size:11px}
  .dayNum.tdMark{width:23px;height:23px}
  .dayCell>.dc-memo-btn,.dc-memo-btn{
    width:calc(100% - 4px);
    max-width:56px;
    margin:12px auto 0;
    padding:5px 1px;
    border:0;
    border-radius:5px;
    background:var(--blue-light);
    font-size:9px;
    line-height:1.15;
    text-align:center;
    white-space:normal;
  }
  .bottomNav{
    display:flex;
    padding:7px 8px max(7px,env(safe-area-inset-bottom));
    border-top:1px solid var(--gray2);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    z-index:110;
  }
  .bottomNavBtn{height:45px;color:var(--gray3);font-size:9px;gap:3px}
  .bottomNavBtn.active{color:var(--navy);font-weight:750}
  .bottomNavBtn .bnIcon{font-size:17px}
  .statsTitle{font-size:20px}
  .statsViewSwitch{
    width:calc(100% + 28px);
    max-width:none;
    margin-left:-14px;
    padding:0 14px 5px;
    gap:6px;
    border-radius:0;
    background:transparent;
  }
  .statsViewBtn{border:1px solid transparent;background:#e9edf1}
  .statsViewBtn.active{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:none}
  #statsStickyNav{top:56px!important;padding-top:10px!important}
  .trendGrid,.kpiRow{display:flex;overflow-x:auto;margin-left:-14px;margin-right:-14px;padding:0 14px 4px;gap:8px;scrollbar-width:none}
  .trendGrid::-webkit-scrollbar,.kpiRow::-webkit-scrollbar{display:none}
  .trendCard,.kpiCard{flex:0 0 164px;padding:14px}
  .chartCard{padding:14px}
  .mobileWideScroll,.chartCard>div[style*="overflow-x:auto"]{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .modal{max-width:calc(100vw - 24px);max-height:calc(100dvh - 76px)}
  .memoModal{border-left:0;border-right:0;border-bottom:0}
}

@media(max-width:360px){
  .header{padding-left:8px;padding-right:8px}
  .main{padding-left:10px;padding-right:10px}
  .summaryGrid,.trendGrid,.kpiRow{width:calc(100% + 20px);margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}
  .hospitalTabs,.statsViewSwitch{width:calc(100% + 20px);margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}
  .calNav{padding-left:8px;padding-right:8px}
  .calNav h2{min-width:68px;font-size:11px}
  .navBtn{min-width:28px;min-height:28px;padding:0 7px;font-size:10px}
  .dayCell{min-height:84px}
}

/* ── Approved demo parity layer ── */
.erpIconSprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.erpLineIcon{
  width:18px;
  height:18px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:0 0 auto;
}
.headerLeft{display:flex;align-items:center;gap:10px}
.headerLogo{display:none}
.headerLogo::before{content:none}
.headerCrumb{display:flex;align-items:center;gap:8px;color:var(--gray4);font-size:12px}
.headerCrumb b{color:var(--text);font-weight:650}
.headerHospital{
  height:36px;
  max-width:280px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  border:1px solid var(--gray2);
  border-radius:7px;
  background:#fff;
  color:var(--text);
  font-size:12px;
  font-weight:600;
}
.headerHospital>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.headerHospital .headerChevron{width:15px;height:15px;margin-left:2px;color:var(--gray4)}
.headerUser{height:36px;display:flex;align-items:center;gap:7px;padding:0 8px 0 5px;border:1px solid var(--gray2);border-radius:7px;background:#fff}
.headerAvatar{width:26px;height:26px;display:grid;place-items:center;border-radius:6px;background:var(--navy);color:#fff}
.headerAvatar .erpLineIcon{width:14px;height:14px}
.headerUser .roleBadge{min-height:0;padding:0;border:0;background:transparent;color:var(--text);font-size:11px}
.syncBadge{height:30px;min-height:30px}
.sidebar .erpLineIcon{width:17px;height:17px}
.bottomNav .erpLineIcon{width:17px;height:17px}

.erpPageHead{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  min-width:0;
  margin-bottom:22px;
}
.erpPageIntro{min-width:0}
.erpEyebrow{margin-bottom:8px;color:var(--blue);font-size:11px;font-weight:750;letter-spacing:.1em}
.erpPageIntro h1{margin:0;color:var(--navy);font-size:24px;font-weight:760;letter-spacing:-.035em;line-height:1.2}
.erpPageIntro p{margin-top:7px;color:var(--gray4);font-size:12px;line-height:1.55}
.erpPageActions{display:flex;gap:7px;flex:0 0 auto}
.erpActionBtn{
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 13px;
  border:1px solid var(--gray2);
  border-radius:7px;
  background:#fff;
  color:var(--text);
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
}
.erpActionBtn:hover{border-color:#b7c2cd;background:#fafbfc}
.erpActionBtn.primary{border-color:var(--navy);background:var(--navy);color:#fff}
.erpActionBtn.primary:hover{background:var(--navy2)}
.staffNotice,.viewOnlyBadge{margin-top:-8px;margin-bottom:16px;background:transparent;border:0;border-left:2px solid var(--blue);border-radius:0;padding:2px 0 2px 9px;color:var(--gray4)}
.viewOnlyBadge{border-left-color:var(--amber)}

.summaryCard::after{display:none!important;content:none!important}
.summaryCard{
  min-height:144px;
  padding:16px 17px;
  border-color:var(--gray2)!important;
  box-shadow:0 2px 8px rgba(20,36,58,.025)!important;
}
.summaryCard>div:first-child{padding-right:0}
.sCardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.summaryCard .sLabel{margin:2px 0 16px;color:var(--gray4);font-size:11px;font-weight:650}
.sKpiActions{position:relative;flex:0 0 auto}
.sIcon{width:30px;height:30px;display:grid;place-items:center;border-radius:6px;background:var(--blue-light);color:var(--blue)}
.sIcon .erpLineIcon{width:16px;height:16px}
.sc-teal .sIcon,.sc-green .sIcon{background:var(--teal-light);color:var(--teal)}
.sc-amber .sIcon{background:var(--amber-light);color:var(--amber)}
.summaryCard .kpiToggleBtn{
  position:absolute;
  right:-5px;
  bottom:-5px;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  padding:0!important;
  border:1px solid var(--gray2)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--gray4)!important;
}
.summaryCard .kpiToggleBtn .erpLineIcon{width:10px;height:10px}
.summaryCard .sVal{font-size:clamp(18px,10cqi,25px);line-height:1;letter-spacing:-.04em}
.summaryCard .sSub{margin-top:11px}

.erpDashboard{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:14px;align-items:start}
.erpCalendarPanel{position:relative;min-width:0;overflow:hidden;border:1px solid var(--gray2);border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.calNav{
  min-height:60px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0;
  padding:11px 16px;
  border:0;
  border-bottom:1px solid var(--gray2);
  border-radius:0;
  background:#fff;
}
.calNav::before{display:none!important;content:none!important}
.calPanelHeading{min-width:0}
.calPanelHeading h2{min-width:0;margin:0;color:var(--navy);font-size:14px;font-weight:740;text-align:left}
.calPanelHeading span{display:block;margin-top:3px;color:var(--gray3);font-size:10px;line-height:1.35}
.calControls{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.calMonthTitle{
  min-width:98px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  border:0;
  background:transparent;
  color:var(--navy);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.calMonthTitle .erpLineIcon{width:13px;height:13px}
.navBtn{display:grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0}
.navBtn .erpLineIcon{width:16px;height:16px}
.todayBtn{display:block;width:auto;padding:0 10px}
.calScroll{margin:0;border:0;border-radius:0;box-shadow:none}
.erpCalendarPanel .calInner{min-width:0}
.calHeadRow{background:#fff;border-bottom:1px solid var(--gray2)}
.calHeadCell{padding:10px 4px}
.dayCell{min-height:132px;padding:9px}
.dayCell.other-month{background:#fafbfc}
.weekCell{background:#f7f8fa}

.erpSideStack{display:grid;gap:14px}
.erpSidePanel{padding:17px;border:1px solid var(--gray2);border-radius:10px;background:#fff;box-shadow:var(--shadow)}
.erpSideTitle{color:var(--navy);font-size:13px;font-weight:740}
.erpSideDate{margin-top:4px;color:var(--gray3);font-size:10px}
.erpTodayTotal{margin:17px 0 14px;padding-bottom:15px;border-bottom:1px solid var(--gray2)}
.erpTodayTotal>span{display:block;color:var(--gray4);font-size:10px}
.erpTodayTotal strong{display:block;max-width:100%;margin-top:6px;overflow:hidden;color:var(--navy);font-size:clamp(20px,2vw,27px);font-weight:770;font-variant-numeric:tabular-nums;letter-spacing:-.045em;text-overflow:ellipsis;white-space:nowrap}
.erpTodayTotal small{margin-left:3px;color:var(--gray4);font-size:11px;font-weight:650;letter-spacing:0}
.erpSummaryList,.erpMonthProgress{display:grid;gap:11px}
.erpSummaryList>div,.erpMonthProgress>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--gray4);font-size:11px}
.erpSummaryList b,.erpMonthProgress b{color:var(--text);font-size:11px;font-weight:700;text-align:right}
.erpNoteBox{margin-top:16px;padding:10px 11px;border-left:2px solid var(--amber);background:#fcfaf5;color:#5f5544;font-size:10px;line-height:1.6}
.erpNoteBox b,.erpNoteBox span{display:block}
.erpNoteBox span{margin-top:3px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.erpMonthProgress{margin-top:16px}

/* 데모와 다른 과한 구형 색상을 공통 표면에서 제거한다. */
.chartCard,.trendCard,.kpiCard,.kpi2Card,.kpi2Guide,.kpi2Context,.reportCard,
.forecastDetailCard,.modalBody.entryGrid .mSection{background:#fff!important;border-color:var(--gray2)!important;box-shadow:0 2px 8px rgba(20,36,58,.025)!important}
.statsViewSwitch,.statsPeriodToggle{background:#e9edf1}
.weekTable th{background:#f7f8fa;color:var(--gray4)}

@media(max-width:1260px) and (min-width:821px){
  .summaryGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summaryCard{min-height:136px}
}

@media(max-width:1120px){
  .erpDashboard{grid-template-columns:1fr}
  .erpSideStack{grid-template-columns:1fr 1fr}
  .calInner{min-width:0}
  .calHeadRow,.calRow,.calWeekRow{grid-template-columns:repeat(7,minmax(0,1fr))}
  .calHeadCell.wk,.weekCell,.calAverageHead,.calAverageRow{display:none}
}

@media(max-width:820px){
  .headerLogo{display:flex;align-items:center;gap:7px;color:var(--navy);font-size:12px;font-weight:800;letter-spacing:.08em}
  .headerLogo img{display:block!important}
  .headerCrumb,.headerHospital,.headerUser{display:none}
  .erpPageHead{align-items:flex-start;margin-bottom:18px;gap:10px}
  .erpEyebrow{margin-bottom:6px;font-size:9px}
  .erpPageIntro h1{font-size:21px}
  .erpPageIntro p{max-width:230px;font-size:10px}
  .erpPageActions{margin-left:auto}
  .erpActionBtn{height:36px;padding:0 10px}
  .erpActionBtn:not(.primary){display:none}
  .staffNotice,.viewOnlyBadge{margin-top:-5px;font-size:10px}
  .summaryCard{min-height:122px}
  .summaryCard .sLabel{margin-bottom:12px}
  .erpSideStack{display:none}
  .erpCalendarPanel{border-radius:9px;box-shadow:none}
  .calNav{min-height:58px;padding:10px 11px;gap:5px}
  .calPanelHeading span{display:none}
  .calPanelHeading h2{font-size:12px}
  .calControls{gap:3px}
  .calMonthTitle{min-width:78px;height:30px;font-size:11px}
  .navBtn{width:30px;height:30px;min-width:30px;min-height:30px}
  .todayBtn{width:auto;padding:0 8px}
  .calInner{min-width:0}
  .dayCell{min-height:88px;padding:7px 3px 6px}
}

@media(max-width:360px){
  .erpPageIntro p{max-width:200px}
  .erpActionBtn{padding:0 8px}
  .calNav{padding-left:8px;padding-right:8px}
  .calPanelHeading{display:none}
  .calControls{width:100%}
  .calMonthTitle{flex:1;min-width:64px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation-duration:.001ms!important}
}

/* ── Detail refinement: restrained color, clean chrome and optional density ── */
.syncBadge,#autoLogoutBadge{display:none!important}
.headerHospitalWrap,.headerUserWrap{position:relative;flex:0 1 auto}
.headerHospital{font-family:inherit;cursor:pointer}
.headerHospital.isStatic{cursor:default}
.headerIconBtn{
  width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;
  border:1px solid var(--gray2);border-radius:7px;background:#fff;color:var(--navy);cursor:pointer;
}
.headerIconBtn:hover,.headerHospital:not(.isStatic):hover,.headerUser:hover{border-color:#b8c2ce;background:#fafbfc}
.headerDropMenu{
  position:absolute;top:calc(100% + 7px);right:0;z-index:180;display:none;min-width:210px;
  padding:5px;border:1px solid var(--gray2);border-radius:9px;background:#fff;
  box-shadow:0 14px 36px rgba(20,36,58,.14);
}
.headerDropMenu.open{display:block}
.headerHospitalMenu{left:0;right:auto;max-height:320px;overflow-y:auto}
.headerHospitalOption{
  width:100%;display:block;padding:9px 10px;border:0;border-radius:6px;background:transparent;
  color:var(--gray5);font-size:11px;font-weight:560;text-align:left;cursor:pointer;
}
.headerHospitalOption:hover{background:#f5f6f8;color:var(--navy)}
.headerHospitalOption.active{background:#eef1f4;color:var(--navy);font-weight:720}
.headerUser{font-family:inherit;cursor:pointer}
.headerAvatar{font-size:11px;font-weight:750}
.headerUser>.headerChevron{width:13px;height:13px;color:var(--gray3)}
.headerUserMeta{display:flex;flex-direction:column;gap:3px;padding:9px 10px 11px;border-bottom:1px solid var(--gray1)}
.headerUserMeta b{color:var(--text);font-size:12px}
.headerUserMeta span{color:var(--gray3);font-size:10px}
.headerUserMenu .logoutBtn{width:100%;margin-top:5px;border:0;text-align:left}
.sidebarBrand{gap:0}
.sidebarBrandCopy b{font-size:15px;letter-spacing:.11em;white-space:nowrap}
.sidebarBrandCopy small,.sidebarBrandMark{display:none}
.sidebarOverlay{z-index:140;background:rgba(14,25,40,.36);backdrop-filter:blur(1px)}
.sidebar.mobile-open{z-index:150}

.erpEyebrow{color:var(--gray4)}
.summaryCard .sIcon,.summaryCard.sc-teal .sIcon,.summaryCard.sc-green .sIcon,.summaryCard.sc-amber .sIcon{
  background:#f1f3f5;color:var(--navy);
}
.summaryCard .sVal{color:var(--navy)!important}
.summaryCard .sSub{color:var(--gray3)!important}

.calendarStatsToggle{
  height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;
  border:1px solid var(--gray2);border-radius:6px;background:#fff;color:var(--gray4);
  font-size:10px;font-weight:650;white-space:nowrap;cursor:pointer;
}
.calendarStatsToggle .erpLineIcon{width:14px;height:14px}
.calendarStatsToggle:hover,.calendarStatsToggle[aria-expanded="true"]{border-color:#aebbc8;background:#f5f7f9;color:var(--navy)}
.erpCalendarPanel:not(.showCalendarStats) .calHeadCell.wk,
.erpCalendarPanel:not(.showCalendarStats) .weekCell,
.erpCalendarPanel:not(.showCalendarStats) .calAverageHead,
.erpCalendarPanel:not(.showCalendarStats) .calAverageRow{display:none!important}
.erpCalendarPanel:not(.showCalendarStats) .calHeadRow,
.erpCalendarPanel:not(.showCalendarStats) .calRow,
.erpCalendarPanel:not(.showCalendarStats) .calWeekRow{grid-template-columns:repeat(7,minmax(0,1fr))!important}
.erpCalendarPanel.showCalendarStats .calInner{min-width:920px}
.erpCalendarPanel.showCalendarStats .calHeadRow,
.erpCalendarPanel.showCalendarStats .calRow,
.erpCalendarPanel.showCalendarStats .calWeekRow{grid-template-columns:repeat(7,minmax(0,1fr)) 168px!important}
.erpCalendarPanel.showCalendarStats .calHeadCell.wk,
.erpCalendarPanel.showCalendarStats .weekCell{display:block!important}
.erpCalendarPanel.showCalendarStats .calAverageHead,
.erpCalendarPanel.showCalendarStats .calAverageRow{display:grid!important}
.calPrimaryMetrics{display:grid;gap:3px}
.calPrimaryMetrics .dc-row{display:flex!important;align-items:center;justify-content:space-between;gap:4px}
.calPrimaryMetrics .dc-memo-btn{width:100%}
.dayNoteBadgeAfter{
  display:block;width:max-content;max-width:100%;margin:5px 0 0;padding:1px 5px;
  border:1px solid var(--gray2);background:#f5f6f8;color:var(--gray4);overflow:hidden;text-overflow:ellipsis;
}
.erpWeekFlow{display:grid;gap:9px;margin-top:17px}
.erpFlowRow{display:grid;grid-template-columns:14px minmax(0,1fr) 64px;align-items:center;gap:8px;color:var(--gray4);font-size:10px}
.erpFlowRow b{overflow:hidden;color:var(--gray5);font-size:10px;font-weight:650;text-align:right;text-overflow:ellipsis;white-space:nowrap}
.erpFlowTrack{height:4px;overflow:hidden;border-radius:10px;background:#edf0f3}
.erpFlowTrack i{height:100%;display:block;border-radius:10px;background:#66778c}

/* 업무일지는 상태색 대신 동일한 정보 표면과 타이포 위계로 구분한다. */
.diaryBigCard{
  min-width:0;padding:14px 16px;border:1px solid var(--gray2);border-radius:9px;background:#fff;text-align:left;container-type:inline-size;
}
.diaryBigLabel{margin-bottom:8px;color:var(--gray4);font-size:10px;font-weight:650;letter-spacing:.02em}
.diaryBigValue{
  max-width:100%;overflow:hidden;color:var(--navy);font-size:clamp(15px,13cqi,25px);font-weight:780;
  font-variant-numeric:tabular-nums;letter-spacing:-.045em;line-height:1.1;text-overflow:ellipsis;white-space:nowrap;
}
.diaryHighlightRow{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:3px 0;padding:10px 0;
  border-bottom:1px solid var(--gray1);color:var(--gray5);
}
.diaryHighlightRow span{font-size:12px;font-weight:550}
.diaryHighlightRow b{color:var(--text);font-size:13px;font-weight:700}
.diaryMiniCard{
  min-width:0;padding:10px 6px;border:1px solid var(--gray2);border-radius:8px;background:#fff;text-align:center;
}
.diaryMiniCard.hasValue{border-color:#cfd6de;background:#f8f9fa}
.diaryMiniLabel{margin-bottom:4px;color:var(--gray3);font-size:10px;font-weight:600}
.diaryMiniValue{overflow:hidden;color:var(--gray5);font-size:17px;font-weight:730;text-overflow:ellipsis;white-space:nowrap}
.diaryTreatmentRevenue{
  min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;
  border:1px solid var(--gray2);border-radius:8px;background:#fff;color:var(--gray4);font-size:11px;
}
.diaryTreatmentRevenue b{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.diaryNote{padding:13px 14px;border:1px solid var(--gray2);border-radius:8px;background:#f8f9fa;color:var(--text);font-size:12px;line-height:1.75;white-space:pre-wrap}
.diaryRangeMetric{min-width:0;padding:9px 10px;border:1px solid var(--gray2);border-radius:8px;background:#fff;text-align:left}
.diaryRangeMetric>div{overflow:hidden;color:var(--gray4)!important;text-overflow:ellipsis;white-space:nowrap}
.diaryRangeMetric>div:last-child{color:var(--navy)!important}
.diaryRangeSummary{border:1px solid var(--gray2);background:#f7f8fa;color:var(--gray5)}
.diaryRangeSummary [style*="color:var(--blue)"]{color:var(--navy)!important}

/* Statistics summary: approved demo proportions with real data. */
.reportCard{color:var(--text)!important}
.reportCard h3{color:var(--navy)!important;opacity:1!important}
.reportCard>div{border-color:var(--gray1)!important}
.statsSummaryPage{min-width:0}
.statsSummaryHead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.statsSummaryHead .statsTitle{margin-bottom:3px}
.statsSummaryHead .statsSubtitle{margin-bottom:0}
.statsSummaryHead>.statsSubtitle{min-width:0;flex:1}
.statsSummaryMonthNav{position:relative;display:flex;align-items:center;gap:8px;flex:0 0 auto}
.statsSummaryMonthNav b{min-width:108px;color:var(--navy);font-size:13px;font-weight:700;text-align:center;white-space:nowrap}
.statsSummaryMonthNav .navBtn .erpLineIcon{width:15px;height:15px}
.statsSummaryMonthPickerLabel{
  min-width:108px;height:30px;display:flex;align-items:center;justify-content:center;gap:3px;padding:0;
  border:0;background:transparent;color:var(--navy);font-family:inherit;font-size:13px;font-weight:700;
  line-height:1;text-align:center;white-space:nowrap;cursor:pointer
}
.statsSummaryMonthPickerLabel .erpLineIcon{width:12px;height:12px;color:var(--gray4)}
.statsDetailPeriodRow{display:flex;justify-content:flex-end;margin:-6px 0 14px}
.statsSummaryKpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.statsSummarySecondaryKpis{margin-top:14px}
.statsSummaryKpi{
  box-sizing:border-box;min-width:0;min-height:134px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
  padding:15px;border:1px solid var(--gray2);border-radius:9px;
  background:#fff;color:var(--text);box-shadow:0 2px 8px rgba(20,36,58,.025);text-align:left
}
button.statsSummaryKpi{margin:0;appearance:none;-webkit-appearance:none;font:inherit;line-height:normal;cursor:pointer}
button.statsSummaryKpi:hover,button.statsSummaryKpi:focus-visible{border-color:#abb8c5;background:#fafbfc}
.statsSummaryKpiHead{min-height:15px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--gray4);font-size:11px;font-weight:650;line-height:1.35}
.statsSummaryKpiHead i{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border-radius:6px;background:#f1f3f5;color:var(--navy);font-style:normal}
.statsSummaryKpiHead .erpLineIcon{width:15px;height:15px}
.statsSummaryKpi>strong{display:block;max-width:100%;margin-top:14px;overflow:hidden;color:var(--navy);font-size:clamp(20px,2.2vw,27px);font-weight:760;letter-spacing:-.045em;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}
.statsSummaryKpi>strong small{margin-left:3px;color:var(--gray4);font-size:11px;font-weight:600}
.statsSummaryKpi>strong.statsSummaryStatus{font-size:24px}
.statsSummaryKpi>strong.statsSummaryStatus.good{color:#316b5f}
.statsSummaryKpi>strong.statsSummaryStatus.normal{color:#80663f}
.statsSummaryKpi>strong.statsSummaryStatus.warn{color:#a34d4d}
.statsSummaryKpi>strong.statsSummaryStatus.flat{color:var(--gray4)}
.statsSummaryKpiMeta{min-width:0;display:flex;align-items:center;gap:6px;margin-top:10px;color:var(--gray3);font-size:9px;white-space:nowrap}
.statsSummaryKpiMeta>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.statsSummaryKpiMeta.statsSummaryChangeMeta{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:1px;line-height:1.4;white-space:normal}
.statsSummaryKpiMeta.statsSummaryChangeMeta>span{min-width:0;overflow:visible;text-overflow:clip;white-space:normal}
.statsSummaryDelta{flex:0 0 auto;color:var(--gray4);font-weight:750}
.statsSummaryDelta.up{color:#316b5f}.statsSummaryDelta.down{color:#a34d4d}.statsSummaryDelta.flat{color:var(--gray3)}
.statsSummaryJump{margin-left:auto!important;display:inline-flex;align-items:center;gap:2px;color:var(--navy)!important;font-weight:700}
.statsSummaryJump .erpLineIcon{width:11px;height:11px}
.statsSummaryLayout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:14px;align-items:stretch}
.statsSummaryPanel{min-width:0;padding:17px;border:1px solid var(--gray2);border-radius:9px;background:#fff;box-shadow:0 2px 8px rgba(20,36,58,.025)}
.statsSummaryPanel h3{margin:0;color:var(--navy);font-size:13px;font-weight:720}
.statsSummaryPanel p{margin:4px 0 0;color:var(--gray3);font-size:9px;line-height:1.45}
.statsSummaryPanelHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.statsSummaryPanelHead>strong{overflow:hidden;color:var(--navy);font-size:21px;font-weight:760;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}
.statsSummaryPanelHead>strong small{margin-left:3px;color:var(--gray4);font-size:10px;font-weight:600}
.statsSummaryBars{height:226px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:12px;padding:16px 4px 0;border-bottom:1px solid var(--gray2)}
.statsSummaryBarColumn{height:100%;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}
.statsSummaryBarValue{color:var(--gray4);font-size:9px;font-weight:700;white-space:nowrap}
.statsSummaryBar{width:min(38px,72%);min-height:4px;display:block;border-radius:4px 4px 0 0;background:#54769a}
.statsSummaryBar.current{background:var(--navy)}
.statsSummaryBarMonth{padding-bottom:7px;color:var(--gray3);font-size:9px;white-space:nowrap}
.statsSummaryRatio>p{margin-bottom:0}
.statsSummaryRing{width:126px;height:126px;display:grid;place-items:center;position:relative;margin:18px auto 16px;border-radius:50%;background:conic-gradient(#4f7a70 0 var(--summary-ratio),#e8ecef var(--summary-ratio) 100%)}
.statsSummaryRing::after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff}
.statsSummaryRing strong{position:relative;z-index:1;color:var(--navy);font-size:23px;font-weight:760;letter-spacing:-.04em}
.statsSummaryRing strong small{margin-left:2px;color:var(--gray4);font-size:11px}
.statsSummaryRatioList{display:grid;gap:9px}
.statsSummaryRatioList>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--gray1);color:var(--gray4);font-size:11px}
.statsSummaryRatioList>div:last-child{padding-bottom:0;border-bottom:0}
.statsSummaryRatioList b{color:var(--text);font-size:12px;white-space:nowrap}
.statsSummaryDetails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.statsSummaryDetails>article,.statsSummaryDetails>button{min-width:0;padding:15px;border:1px solid var(--gray2);border-radius:9px;background:#fff;color:var(--text);text-align:left}
.statsSummaryDetails>button{font:inherit;cursor:pointer}
.statsSummaryDetails>button:hover,.statsSummaryDetails>button:focus-visible{border-color:#abb8c5;background:#fafbfc}
.statsSummaryDetails span{color:var(--gray4);font-size:10px;font-weight:650}
.statsSummaryDetails strong{display:block;margin-top:8px;overflow:hidden;color:var(--navy);font-size:19px;font-weight:750;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap}
.statsSummaryDetails strong small{margin-left:3px;color:var(--gray4);font-size:10px}
.statsSummaryDetails strong.up,.statsSummaryDetails p b.up{color:#316b5f}.statsSummaryDetails strong.down,.statsSummaryDetails p b.down{color:#a34d4d}.statsSummaryDetails strong.flat,.statsSummaryDetails p b.flat{color:var(--gray4)}
.statsSummaryDetails p{margin:7px 0 0;color:var(--gray3);font-size:9px;line-height:1.45}
.statsSummaryDetails p b{font-weight:750}
.statsSummaryTableWrap{margin-top:14px;overflow-x:auto;border:1px solid var(--gray2);border-radius:9px;background:#fff;-webkit-overflow-scrolling:touch;touch-action:pan-x}
.statsSummaryTable{width:100%;min-width:680px;border-collapse:collapse;font-size:10px}
.statsSummaryTable th{height:38px;padding:0 13px;border-bottom:1px solid var(--gray2);background:#f7f8fa;color:var(--gray4);font-weight:650;text-align:left}
.statsSummaryTable td{height:42px;padding:0 13px;border-bottom:1px solid var(--gray1);color:var(--text);white-space:nowrap}
.statsSummaryTable tr:last-child td{border-bottom:0}
.statsSummaryTable th:not(:first-child),.statsSummaryTable td:not(:first-child){text-align:right}
.statsSummaryFlow{font-weight:750}.statsSummaryFlow.up{color:#316b5f}.statsSummaryFlow.down{color:#a34d4d}.statsSummaryFlow.flat{color:var(--gray4)}

@media(max-width:1260px) and (min-width:821px){
  .statsSummaryKpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:1000px) and (min-width:821px){
  .dayCell .calPrimaryMetrics .dc-row{display:flex!important}
  .statsSummaryLayout{grid-template-columns:1fr}
}

@media(max-width:820px){
  .menuToggleBtn{display:none!important}
  .sidebarOverlay{display:none!important}
  .sidebarOverlay.open{display:block!important}
  .headerLogo{display:flex;align-items:center;color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.09em;white-space:nowrap}
  .headerLogo img{display:none!important}
  .headerRight{min-width:0;gap:5px}
  .headerHospitalWrap{display:none}
  .headerHospitalWrap.canSelect{display:block;flex:0 1 120px;min-width:0;max-width:120px}
  .headerHospitalWrap.canSelect .headerHospital{
    width:100%;height:34px;max-width:120px;display:flex!important;gap:5px;padding:0 8px;
    font-size:10px
  }
  .headerHospitalWrap.canSelect .headerHospital>.erpLineIcon:first-child{width:14px;height:14px}
  .headerHospitalWrap.canSelect .headerHospital .headerChevron{width:12px;height:12px;margin-left:0}
  .headerHospitalWrap.canSelect .headerHospitalMenu{
    position:fixed;top:54px;left:10px;right:10px;max-height:calc(100dvh - 72px)
  }
  .headerUserWrap{display:block}
  .headerUser{display:flex!important;width:34px;height:34px;padding:0;justify-content:center}
  .headerUser .roleBadge,.headerUser>.headerChevron{display:none!important}
  .headerIconBtn{width:34px;height:34px;flex-basis:34px}
  .headerUserMenu{position:fixed;top:50px;right:10px;left:auto}
  .calendarStatsToggle{width:30px;padding:0}
  .calendarStatsToggle span{display:none}
  .erpCalendarPanel.showCalendarStats .calInner{min-width:900px}
  .bottomNavBtn{min-width:0}
  .bottomNavBtn .bnIcon{display:grid;place-items:center}
  .dayCell .calPrimaryMetrics{margin-top:7px;gap:2px}
  .dayCell .calPrimaryMetrics .dc-row{display:flex!important;padding:0 1px}
  .dayCell .calPrimaryMetrics .dc-lbl{display:none}
  .dayCell .calPrimaryMetrics .dc-val,.dayCell .calPrimaryMetrics .dc-sales-val{width:100%;font-size:8px;text-align:center}
  .dayCell .calPrimaryMetrics .dc-memo-btn{margin-top:4px}
  .dayNoteBadgeAfter{margin:4px auto 0;padding:1px 4px;font-size:8px}
  .diaryBigCard{padding:12px}
  .diaryBigValue{font-size:clamp(14px,13cqi,20px)!important;letter-spacing:-.045em!important}
  .statsSummaryHead{align-items:center;margin-bottom:12px}
  .statsSummaryHead .statsSubtitle{font-size:10px}
  .statsSummaryMonthNav{gap:3px}
  .statsSummaryMonthNav b{min-width:82px;font-size:11px}
  .statsSummaryKpis{display:flex;width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;padding:0 14px 4px;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;scroll-snap-type:x proximity;scrollbar-width:none}
  .statsSummaryKpis::-webkit-scrollbar{display:none}
  .statsSummaryKpi{flex:0 0 164px;min-height:124px;padding:14px;scroll-snap-align:start}
  .statsSummaryKpi>strong{font-size:20px}
  .statsSummaryKpiMeta{display:grid;grid-template-columns:auto minmax(0,1fr);margin-top:9px}
  .statsSummaryJump{margin-left:0!important}
  .statsSummaryLayout{display:block}
  .statsSummaryPanel{padding:14px;box-shadow:none}
  .statsSummaryLayout>.statsSummaryPanel+.statsSummaryPanel{margin-top:10px}
  .statsSummaryPanelHead{margin-bottom:8px}
  .statsSummaryPanelHead>strong{font-size:17px}
  .statsSummaryBars{height:190px;gap:7px}
  .statsSummaryBar{width:min(28px,70%)}
  .statsSummaryDetails{display:flex;width:calc(100% + 28px);margin:12px -14px 0;padding:0 14px 4px;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;scroll-snap-type:x proximity;scrollbar-width:none}
  .statsSummaryDetails::-webkit-scrollbar{display:none}
  .statsSummaryDetails>article,.statsSummaryDetails>button{flex:0 0 154px;padding:13px;scroll-snap-align:start}
  .statsSummaryTableWrap{border-radius:8px}
}

@media(max-width:360px){
  .headerLogo{font-size:10px}
  .headerHospitalWrap.canSelect{flex-basis:92px;max-width:92px}
  .headerHospitalWrap.canSelect .headerHospital{max-width:92px;padding:0 6px}
  .headerIconBtn,.headerUser{width:32px;height:32px}
  .calControls{gap:2px}
  .statsSummaryKpis,.statsSummaryDetails{width:calc(100% + 20px);margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}
}

/* ── Regression hardening: visible controls and reliable mobile scrolling ── */
.sKpiActions{position:static;display:flex;align-items:center;gap:4px;flex:0 0 auto}
.summaryCard .sLabel{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.summaryCard .kpiToggleBtn{
  position:static!important;right:auto!important;bottom:auto!important;width:auto!important;min-width:43px;height:26px!important;
  display:inline-flex!important;align-items:center;justify-content:center;gap:2px;padding:0 6px!important;
  border:1px solid var(--gray2)!important;border-radius:6px!important;background:#fff!important;color:var(--gray4)!important;
  font-size:9px!important;font-weight:650!important;line-height:1;white-space:nowrap;
}
.summaryCard .kpiToggleBtn:hover,.summaryCard .kpiToggleBtn:focus-visible{border-color:#aebbc8!important;background:#f5f7f9!important;color:var(--navy)!important}
.summaryCard .kpiToggleBtn .erpLineIcon{width:11px;height:11px}
.kpiMenuPortal{
  position:fixed!important;z-index:2200!important;min-width:160px!important;margin:0!important;padding:5px!important;
  border:1px solid var(--gray2)!important;border-radius:9px!important;background:#fff!important;
  box-shadow:0 16px 40px rgba(20,36,58,.2)!important;
}
.kpiMenuPortal .kpiOptBtn{padding:9px 10px!important;border-radius:6px!important;font-size:11px!important}
.headerDropMenu{z-index:2100}
.compareRankGrid{align-items:stretch}
.compareRankCard{min-width:0}
.compareRankValue{overflow:hidden;font-variant-numeric:tabular-nums;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:820px){
  .header{overflow:visible!important}
  .headerUserMenu{top:54px;right:10px;z-index:2200}
  .summaryGrid,.statsViewSwitch,.trendGrid,.kpiRow,
  .mobileWideScroll,.hospitalTabs,
  .chartCard>div[style*="overflow-x:auto"],.kpi2Context>div[style*="overflow-x:auto"]{
    overflow-x:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;
  }
  .summaryGrid,.statsViewSwitch,.trendGrid,.kpiRow{scroll-snap-type:x proximity}
  .summaryCard,.statsViewBtn,.trendGrid>*,.kpiRow>*{scroll-snap-align:start}
  .calScroll{overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain}
  .summaryCard{flex-basis:176px}
  .summaryCard .kpiToggleBtn{min-width:42px;height:25px!important;padding:0 5px!important}
  .summaryCard .sIcon{width:28px;height:28px}
  .calendarStatsToggle{width:auto;min-width:48px;padding:0 7px;gap:3px}
  .calendarStatsToggle span{display:inline;font-size:9px}
  .calControls #prevBtn,.calControls #nextBtn,.calControls #todayBtnEl,
  .calControls .calMonthTitle,.calControls .calendarStatsToggle{order:initial!important}
  .compareRankGrid{align-items:stretch!important}
  .compareRankGrid>.compareRankCard{flex:0 0 180px!important;width:180px!important;min-height:0!important}
  .compareRankValue{font-size:18px!important}
}

@media(max-width:360px){
  .summaryCard{flex-basis:168px}
  .calendarStatsToggle{min-width:44px;padding:0 6px}
}

/* ── Cross-device detail alignment and touch scrolling ── */
.summaryCard .sIcon{display:none!important}
.summaryCard .kpiToggleBtn .erpLineIcon{display:none!important}
.sKpiActions{gap:0}
.sForecastRange{
  margin-top:5px;color:var(--gray4);font-size:10px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.2;white-space:nowrap
}
.summaryCard.hasForecastRange .sSub{margin-top:5px}

#statsStickyNav,#stats2StickyNav,#reservationStatsNav,#cvTestStatsNav,#advancedTestStatsNav{
  position:static!important;top:auto!important;z-index:auto!important;
  margin:0!important;padding:0!important;border:0!important;
  background:transparent!important;box-shadow:none!important;backdrop-filter:none!important
}

@media(max-width:820px){
  .summaryGrid,.statsViewSwitch,.trendGrid,.kpiRow,
  .statsSummaryKpis,.statsSummaryDetails{
    width:100%!important;max-width:100%!important;
    margin-left:0!important;margin-right:0!important;
    padding-left:0!important;padding-right:0!important
  }
  .summaryGrid,.trendGrid,.kpiRow,.statsSummaryKpis,.statsSummaryDetails,
  .statsViewSwitch,.hospitalTabs,.mobileWideScroll,.statsSummaryTableWrap,
  .chartCard>div[style*="overflow-x:auto"],.kpi2Context>div[style*="overflow-x:auto"]{
    -webkit-overflow-scrolling:touch;touch-action:pan-x pan-y!important
  }
  .statsViewSwitch{
    margin-bottom:14px!important;padding:3px!important;gap:2px!important;
    border-radius:7px!important;background:#e9edf1!important
  }
  .statsViewBtn{
    border:0!important;border-radius:5px!important;background:transparent!important;
    color:var(--gray4)!important
  }
  .statsViewBtn.active{
    border:0!important;background:#fff!important;color:var(--navy)!important;
    box-shadow:0 1px 3px rgba(20,36,58,.09)!important
  }
  .statsSummaryHead{min-height:32px;gap:8px}
  .statsSummaryHead>.statsSubtitle{
    max-width:calc(100% - 142px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap
  }
  .statsSummaryMonthPickerLabel{min-width:82px;font-size:11px}
  .statsDetailPeriodRow{margin:-4px 0 12px}
  .summaryCard .sLabel{
    overflow:visible!important;text-overflow:clip!important;white-space:normal!important;
    font-size:10px!important;line-height:1.25
  }
  .summaryCard.hasForecastRange{min-height:138px}

  .erpCalendarPanel:not(.showCalendarStats) .calScroll{
    overflow-x:hidden!important;overflow-y:hidden!important;touch-action:pan-y!important;
    overscroll-behavior-x:auto
  }
  .erpCalendarPanel.showCalendarStats .calScroll{
    overflow-x:auto!important;overflow-y:hidden!important;touch-action:pan-x pan-y!important
  }
  .forecastAuditPage .calScroll{
    overflow-x:hidden!important;overflow-y:visible!important;touch-action:pan-y!important;
    overscroll-behavior-x:auto!important;-webkit-overflow-scrolling:auto
  }
  .forecastAuditPage .calInner{min-width:0!important;max-width:100%!important}
  .forecastDetailOverlay{align-items:flex-end;padding:0}
  .forecastDetailModal{
    width:100%;max-width:none;max-height:calc(100dvh - 58px);overflow-y:auto;
    border-radius:14px 14px 0 0;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain
  }
  .forecastDetailHead{position:sticky;top:0;z-index:2;border-radius:14px 14px 0 0}
  .calInner,.calRow,.calWeekRow,.dayCell,.calPrimaryMetrics,.calPrimaryMetrics .dc-row{
    min-width:0!important;max-width:100%
  }
  .dayCell{overflow:hidden;text-align:center}
  .dayCell .calPrimaryMetrics{width:100%;overflow:hidden}
  .dayCell .calPrimaryMetrics .dc-row{
    width:100%;padding:0!important;overflow:hidden;justify-content:center!important
  }
  .dayCell .calPrimaryMetrics .dc-val,.dayCell .calPrimaryMetrics .dc-sales-val{
    display:block;width:100%!important;min-width:0!important;max-width:100%;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:7.5px!important;letter-spacing:-.04em;line-height:1.25;text-align:center
  }
  .dayCell .calPrimaryMetrics .dc-memo-btn{text-align:center}
}

/* ── Safe new-version notice ── */
.bonnextUpdateNotice{
  position:fixed;left:50%;bottom:22px;z-index:2050;
  width:min(680px,calc(100vw - 32px));box-sizing:border-box;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:14px 15px 14px 18px;border:1px solid #c9d3dd;border-radius:12px;
  background:#fff;color:var(--navy);box-shadow:0 18px 46px rgba(20,36,58,.2);
  opacity:0;visibility:hidden;transform:translate(-50%,12px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease
}
.bonnextUpdateNotice.show{opacity:1;visibility:visible;transform:translate(-50%,0)}
.bonnextUpdateCopy{display:flex;min-width:0;flex-direction:column;gap:3px;line-height:1.35}
.bonnextUpdateCopy strong{font-size:14px;font-weight:760;letter-spacing:-.02em}
.bonnextUpdateCopy>span{color:var(--gray4);font-size:12px}
.bonnextUpdateCopy small{margin-top:2px;color:#536273;font-size:10px;font-weight:650}
.bonnextUpdateCopy kbd{
  display:inline-flex;min-width:21px;height:19px;box-sizing:border-box;align-items:center;justify-content:center;
  padding:0 5px;border:1px solid #c7d0d9;border-bottom-width:2px;border-radius:4px;background:#f6f8fa;
  color:var(--navy);font-family:inherit;font-size:9px;line-height:1
}
.bonnextUpdateButton{
  flex:0 0 auto;min-height:38px;padding:0 15px;border:0;border-radius:8px;background:var(--navy);color:#fff;
  font-family:inherit;font-size:12px;font-weight:720;white-space:nowrap;cursor:pointer
}
.bonnextUpdateButton:hover,.bonnextUpdateButton:focus-visible{background:#243c58;outline:0;box-shadow:0 0 0 3px rgba(37,116,166,.16)}

@media(max-width:820px){
  .bonnextUpdateNotice{
    bottom:76px;width:calc(100vw - 20px);gap:10px;padding:12px;border-radius:10px
  }
  .bonnextUpdateCopy strong{font-size:12px}
  .bonnextUpdateCopy>span{font-size:10px}
  .bonnextUpdateMac{display:none}
  .bonnextUpdateButton{min-height:36px;padding:0 11px;font-size:10px}
}

@media(max-width:360px){
  .bonnextUpdateNotice{align-items:flex-end;flex-direction:column;gap:8px}
  .bonnextUpdateButton{width:100%}
}

/* ── Unified calendar typography and white detail surfaces ── */
:root{
  --app-font:Pretendard,-apple-system,BlinkMacSystemFont,"Noto Sans KR","Segoe UI",sans-serif
}
body,#appShell,#modalOverlay,#memoOverlay,#bulkOverlay,
button,input,select,textarea{
  font-family:var(--app-font)!important
}
.statsWrap,.statsWrap button,.statsWrap input,.statsWrap select,
.erpCalendarPanel,.erpCalendarPanel button,.memoModal,.memoModal *{
  font-family:var(--app-font)!important
}
.gm-doc{font-family:var(--app-font)!important}

.sidebarBrand{
  width:100%;border:0;background:transparent;font-family:var(--app-font);text-align:left;cursor:pointer
}
.sidebarBrand:hover .sidebarBrandCopy b{color:#fff}
.sidebarBrand:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}

.calendarWeekSummary{
  font-family:inherit;font-size:9px;line-height:1.55;color:var(--gray4)
}
.calendarWeekSummary .wPeriod{margin-bottom:5px;font-size:9px;font-weight:650;letter-spacing:0}
.calendarWeekSummary .wSales{margin-bottom:5px;color:var(--navy);font-size:11px;font-weight:720}
.calendarWeekSummary .wRow{gap:7px;color:var(--gray4);font-size:9px;line-height:1.55}
.calendarWeekSummary .wRow span:last-child{color:var(--text);font-weight:650;text-align:right;white-space:nowrap}
.calendarWeekSummary .weekTrend{margin-left:3px}
.calAverageHead{
  background:#fff!important;border-top:1px solid var(--gray2)!important;border-bottom:1px solid var(--gray2)!important
}
.calAverageHead .calHeadCell{background:#fff;color:var(--gray3)}
.calAverageHead .calHeadCell.sun{color:var(--red)}
.calAverageHead .calHeadCell.sat{color:var(--blue)}
.calAverageHead .calHeadCell.wk{background:#f3f5f7;color:var(--gray4)}
.calAverageRow{background:#fff}
.calDetailSummaryCell{min-height:auto!important;padding:10px!important;background:#fff!important;text-align:left!important}
.calDetailSectionLabel,.calDetailAverageLabel{
  margin-bottom:4px;color:var(--gray3);font-size:9px;font-weight:650;letter-spacing:0
}
.calDetailAverageLabel{margin-top:7px}
.calDetailTotal{margin-bottom:3px!important;padding:0!important;color:var(--navy)!important;font-size:11px!important;font-weight:720!important}
.calDetailMeta,.calDetailFootnote{color:var(--gray3);font-size:9px;line-height:1.45}
.calDetailMeta{margin-bottom:6px}
.calDetailFootnote{margin-top:5px}
.calDetailSummaryCell .wRow,.calDetailMonthSummary .wRow{gap:7px;color:var(--gray4);font-size:9px;line-height:1.55}
.calDetailSummaryCell .wRow span:last-child,.calDetailMonthSummary .wRow span:last-child{color:var(--text);font-weight:650;text-align:right;white-space:nowrap}
.calDetailSummaryCell .calDetailSales,.calDetailMonthSummary .calDetailSales{color:var(--navy)!important;font-weight:700!important}
.calDetailSummaryCell .sunValue{color:var(--red)!important}
.calDetailSummaryCell .satValue{color:var(--blue)!important}

/* 업무일지 조회창은 캘린더와 동일한 흰색 표면과 타이포를 사용한다. */
.memoModal{border:1px solid var(--gray2);background:#fff;box-shadow:0 20px 56px rgba(20,36,58,.18)}
.memoHead{
  gap:6px;padding:13px 16px;border-bottom:1px solid var(--gray2);border-radius:20px 20px 0 0;
  background:#fff;color:var(--text)
}
.memoNavButton,.memoTitleButton,.memoCalendarNav,.memoHead .closeBtn{
  min-height:34px;border:1px solid var(--gray2)!important;border-radius:7px;background:#fff!important;
  color:var(--navy)!important;font-family:inherit;font-weight:650;cursor:pointer
}
.memoNavButton{flex:0 0 38px;padding:0;font-size:12px;line-height:1}
.memoTitleButton{
  min-width:0;flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;
  overflow:hidden;font-size:12px;white-space:nowrap
}
.memoTitleButton #memoTitle{overflow:hidden;text-overflow:ellipsis}
.memoHead .closeBtn{flex:0 0 36px!important;margin-left:2px!important;padding:0!important;font-size:12px!important}
.memoNavButton:hover,.memoTitleButton:hover,.memoCalendarNav:hover,.memoHead .closeBtn:hover{border-color:#b5c0cb!important;background:#f7f8fa!important}
.memoBody{background:#fff}
.diaryRangeBar{display:flex;gap:6px;flex-wrap:wrap;padding:11px 20px;border-bottom:1px solid var(--gray2);background:#f7f8fa}
.diaryRangeBtn{
  min-height:30px;padding:0 13px;border:1px solid var(--gray2);border-radius:6px;background:#fff;
  color:var(--gray4);font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer
}
.diaryRangeBtn.active{border-color:#aeb9c4;background:var(--navy);color:#fff;font-weight:700}
.diaryRangeCustomWrap{padding:10px 20px;border-bottom:1px solid var(--gray2);background:#fff}
.diaryRangeCustom{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--gray4);font-size:11px}
.diaryRangeInput{height:31px;padding:0 8px;border:1px solid var(--gray2);border-radius:6px;background:#fff;color:var(--text);font-size:11px}
.diaryRangeApply{height:31px;padding:0 12px;border:1px solid var(--navy);border-radius:6px;background:var(--navy);color:#fff;font-size:11px;font-weight:650;cursor:pointer}
#memoCalPop{
  display:none;position:absolute;top:61px;left:0;right:0;z-index:55;padding:12px 16px 16px;
  border-bottom:1px solid var(--gray2);background:#fff;box-shadow:0 12px 28px rgba(20,36,58,.12)
}
#memoCalLabel{color:var(--navy);font-size:12px;font-weight:700}
.memoCalendarNav{min-height:30px;padding:0 10px;font-size:11px}
.memoCalendarWeekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.memoCalendarWeekdays>div{padding:3px 2px;color:var(--gray3);font-size:10px;font-weight:650}
.memoCalendarWeekdays .sun{color:var(--red)}
.memoCalendarWeekdays .sat{color:var(--blue)}
.memoCalendarDay{
  min-height:29px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text);
  font-size:11px;font-weight:550;cursor:pointer
}
.memoCalendarDay:hover{background:#f1f3f5}
.memoCalendarDay.selected{background:var(--navy);color:#fff;font-weight:700}
.memoCalendarDay.sun:not(.selected){color:var(--red)}
.memoCalendarDay.sat:not(.selected){color:var(--blue)}

/* 통계의 월 선택은 모든 탭에서 같은 컨트롤과 팝업을 공유한다. */
.statsMonthPicker{
  display:none;position:absolute;right:0;top:calc(100% + 7px);z-index:2300;
  width:260px;max-width:calc(100vw - 24px);padding:12px;border:1px solid var(--gray2);border-radius:9px;
  background:#fff;box-shadow:0 16px 38px rgba(20,36,58,.16)
}
.statsMonthPicker.open{display:block}
.statsMonthPickerHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.statsMonthPickerHead strong{color:var(--navy);font-size:12px;font-weight:720}
.statsMonthPickerHead button{
  width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--gray2);border-radius:6px;
  background:#fff;color:var(--gray4);cursor:pointer
}
.statsMonthPickerHead .erpLineIcon{width:14px;height:14px}
.statsMonthPickerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.statsMonthOption{
  height:31px;padding:0;border:1px solid var(--gray2);border-radius:6px;background:#fff;color:var(--gray4);
  font-size:11px;font-weight:600;cursor:pointer
}
.statsMonthOption:hover{border-color:#b4bec9;background:#f7f8fa;color:var(--navy)}
.statsMonthOption.active{border-color:var(--navy);background:var(--navy);color:#fff;font-weight:700}
.statsReportAction{
  height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;
  border:1px solid var(--gray2);border-radius:6px;background:#fff;color:var(--navy);font-size:10px;font-weight:650;white-space:nowrap;cursor:pointer
}
.statsReportAction .erpLineIcon{width:14px;height:14px}
.statsReportAction:hover{border-color:#b4bec9;background:#f7f8fa}

#todayInputBtn span{white-space:nowrap}

@media(max-width:820px){
  .memoModal{border-left:0;border-right:0;border-bottom:0}
  .memoHead{padding:10px 11px;border-radius:14px 14px 0 0}
  .diaryRangeBar,.diaryRangeCustomWrap{padding-left:12px;padding-right:12px}
  #memoCalPop{top:55px;padding-left:12px;padding-right:12px}
  .erpCalendarPanel.showCalendarStats .calInner{min-width:900px!important;max-width:none!important}
  .statsMonthPicker{right:0}
  .statsReportAction{width:32px;padding:0}
  .statsReportAction span{display:none}
}

@media(max-width:390px){
  #todayInputBtn{max-width:128px;padding:0 9px;gap:5px;font-size:10px}
  #todayInputBtn .erpLineIcon{width:14px;height:14px;flex:0 0 14px}
}
