:root{
  --nav:#2d3035;--nav-deep:#24272b;--nav-active:#474b52;--nav-text:#d9dde2;
  --nav-muted:#aeb5bd;--nav-active-text:#fff;--brand:#233972;--brand-deep:#18274f;
  --brand-mid:#526b9d;--brand-soft:#eef2fa;--app:#f3f5f7;--surface:#fff;
  --surface-soft:#f8fafb;--text:#26343c;--muted:#6f7e87;--line:#d9e0e5;
  --danger:#b5443f;--success:#277553;
  --font-micro:12px;--font-helper:12px;--font-body:14px;--font-control:14px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--app);color:var(--text);font-family:Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif}
button,input,select,textarea{font:inherit}
.app-shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--nav);color:var(--nav-text);border-right:1px solid var(--nav-deep)}
.brand{height:94px;display:flex;align-items:center;padding:17px 18px 11px;background:var(--nav)}
.brand-logo-full{display:block;width:100%;height:auto;max-height:58px;object-fit:contain;object-position:left center}
.menu-label{padding:0 20px 12px;color:var(--nav-muted);font-size:var(--font-micro);font-weight:500;letter-spacing:.08em}
.nav-list{display:flex;flex-direction:column;padding:0 10px;gap:3px}
.nav-list.utility{margin-top:auto;padding-top:13px;padding-bottom:16px;position:relative}
.nav-list.utility:before{content:"";position:absolute;top:0;left:18px;right:18px;border-top:1px solid rgba(255,255,255,.12)}
.nav-item{width:100%;min-height:42px;display:flex;align-items:center;gap:10px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--nav-text);text-decoration:none;text-align:left;white-space:nowrap;cursor:pointer;font-size:14px;font-weight:500}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-item.active{background:var(--nav-active);color:var(--nav-active-text);font-weight:700}
.nav-item:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.nav-item[disabled]{cursor:default;color:#80878f}
.nav-item[disabled]:hover{background:transparent;color:#80878f}
.nav-icon{width:14px;color:var(--nav-muted);font-size:17px;line-height:1;text-align:center}
.nav-item.active .nav-icon{color:#fff}
.nav-text{overflow:hidden;text-overflow:ellipsis}
.nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,.12);font-size:var(--font-micro)}
.nav-pending{margin-left:auto;font-size:var(--font-micro);color:#89919a;font-weight:400}
.page-main{min-width:0;padding:28px 32px 48px}

/* v3에서 확정한 로고·메뉴 외형을 v4 안에 자체 포함한다. */
.sidebar{background:var(--nav)!important;color:var(--nav-text)!important;padding:0 10px 14px!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;border-right:1px solid var(--nav-deep)!important}
.sidebar .brand{height:92px!important;min-height:92px!important;margin:0 -10px!important;padding:15px 15px 11px!important;display:flex!important;align-items:center!important;background:var(--nav)!important;border-bottom:1px solid rgba(255,255,255,.1)!important}
.sidebar .brand-logo-full{display:block!important;width:100%!important;height:auto!important;max-height:62px!important;object-fit:contain!important;object-position:left center!important}
.sidebar .menu-label{margin:15px 10px 9px!important;padding:0!important;color:var(--nav-muted)!important;font-size:var(--font-micro)!important;font-weight:500!important;letter-spacing:.08em!important}
.sidebar .nav-list{display:flex!important;flex-direction:column!important;gap:3px!important;padding:0!important}
.sidebar .nav-list.utility{margin-top:auto!important;padding-top:13px!important;padding-bottom:0!important;position:relative!important}
.sidebar .nav-list.utility::before{content:"";position:absolute;top:0;left:9px;right:9px;border-top:1px solid rgba(255,255,255,.12)}
.sidebar .nav-item{width:100%!important;min-height:40px!important;display:flex!important;align-items:center!important;gap:9px!important;padding:0 11px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--nav-text)!important;text-decoration:none!important;text-align:left!important;white-space:nowrap!important;font-size:13px!important;font-weight:500!important}
.sidebar .nav-item:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}
.sidebar .nav-item.active{background:var(--nav-active)!important;color:#fff!important;font-weight:700!important}
.sidebar .nav-item:focus-visible{outline:2px solid #fff!important;outline-offset:-3px!important}
.sidebar .nav-item[disabled]{cursor:default!important;color:#80878f!important}
.sidebar .nav-item[disabled]:hover{background:transparent!important;color:#80878f!important}
.sidebar .nav-icon{width:13px!important;height:auto!important;display:grid!important;place-items:center!important;border:0!important;background:transparent!important;color:var(--nav-muted)!important;font-size:17px!important;line-height:1!important}
.sidebar .nav-item.active .nav-icon{color:#fff!important}
.sidebar .nav-text{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important}
.sidebar .nav-badge{margin-left:auto!important;min-width:20px!important;height:20px!important;padding:0 6px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;background:rgba(255,255,255,.12)!important;font-size:var(--font-micro)!important}
.sidebar .nav-pending{margin-left:auto!important;color:#89919a!important;font-size:var(--font-micro)!important;font-weight:400!important}
.sidebar .sidebar-foot{display:none!important}
.sidebar-menu-toggle,.sidebar-drawer-overlay{display:none}

@media(max-width:1180px) and (min-width:761px){
  :root{--sidebar:156px!important}
  .app-shell{grid-template-columns:156px minmax(0,1fr)}
  .sidebar{display:flex!important;padding-left:10px!important;padding-right:10px!important}
  .sidebar .brand{height:80px!important;min-height:80px!important;padding:12px 10px!important}
  .sidebar .brand-logo-full{display:block!important;max-height:52px!important}
  .sidebar .menu-label,.sidebar .nav-text{display:block!important}
  .sidebar .nav-item{padding:0 8px!important;justify-content:flex-start!important}
  .sidebar .nav-icon{display:grid!important;width:13px!important}
  .sidebar .nav-badge,.sidebar .nav-pending{display:none!important}
  .page-main{padding:22px 20px 40px}
}
@media(max-width:760px){
  :root{--sidebar:0px!important}
  .app-shell{display:block}
  .sidebar{display:flex!important;position:fixed!important;inset:0 auto 0 0!important;z-index:121!important;width:min(82vw,260px)!important;height:100vh!important;padding:0 10px 14px!important;transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s;box-shadow:12px 0 38px rgba(15,21,27,.28)}
  .sidebar .brand{height:92px!important;min-height:92px!important;padding:15px!important}
  .sidebar .brand-logo-full{display:block!important;max-height:62px!important}
  .sidebar .menu-label,.sidebar .nav-text,.sidebar .nav-pending{display:block!important}
  .sidebar .nav-item{justify-content:flex-start!important;padding:0 11px!important}
  .sidebar .nav-icon{display:grid!important;width:13px!important;height:auto!important}
  .sidebar-menu-toggle{position:fixed;top:10px;left:10px;z-index:119;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 11px;border:1px solid #cfd7dd;border-radius:8px;background:#fff;color:#31434d;box-shadow:0 4px 14px rgba(25,38,47,.12);font-size:var(--font-micro);font-weight:650}
  .sidebar-menu-toggle span:first-child{font-size:15px;line-height:1}
  .sidebar-drawer-overlay{position:fixed;inset:0;z-index:120;display:block;border:0;background:rgba(13,20,26,.42);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}
  .sidebar-drawer-open .sidebar{transform:translateX(0);visibility:visible;transition:transform .22s ease}
  .sidebar-drawer-open .sidebar-drawer-overlay{opacity:1;visibility:visible;transition:opacity .2s ease}
  .sidebar-drawer-open .sidebar-menu-toggle{visibility:hidden}
  .page-main{padding:56px 14px 32px}
}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-drawer-overlay{transition:none!important}}
@media print{.sidebar-menu-toggle,.sidebar-drawer-overlay{display:none!important}}
