/* Payroll Copilot v42 — polished, definitive application sidebar */
:root{
  --pc42-ink:#101828;
  --pc42-text:#344054;
  --pc42-muted:#667085;
  --pc42-faint:#98a2b3;
  --pc42-border:#e4e7ec;
  --pc42-hover:#f9fafb;
  --pc42-active:#f2f4f7;
  --pc42-accent:#0a7a68;
  --pc42-accent-soft:#eef8f5;
}

/* Lock the shell geometry so older sidebar rules cannot leak through. */
.app{grid-template-columns:248px minmax(0,1fr)!important}
.app > .app-sidebar{
  width:248px!important;
  min-width:248px!important;
  height:100vh!important;
  position:sticky!important;
  top:0!important;
  z-index:40!important;
  display:flex!important;
  flex-direction:column!important;
  padding:16px 12px 14px!important;
  background:#fff!important;
  color:var(--pc42-text)!important;
  border-right:1px solid var(--pc42-border)!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:none!important;
  overflow:hidden!important;
}

.app > .app-sidebar .brand-lockup{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  min-height:48px!important;
  padding:2px 8px 14px!important;
  margin:0 0 8px!important;
}
.app > .app-sidebar .brand-mark{
  width:32px!important;
  height:32px!important;
  flex:0 0 32px!important;
  border-radius:9px!important;
  display:grid!important;
  place-items:center!important;
  background:#14213d!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1!important;
  box-shadow:none!important;
}
.app > .app-sidebar .brand-copy{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
}
.app > .app-sidebar .brand-copy strong{
  color:var(--pc42-ink)!important;
  font-size:14px!important;
  font-weight:720!important;
  letter-spacing:-.01em!important;
  line-height:1.2!important;
  white-space:nowrap!important;
}
.app > .app-sidebar .brand-copy span{
  color:var(--pc42-muted)!important;
  font-size:11.5px!important;
  font-weight:500!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}

.app > .app-sidebar .sidebar-section-label{
  padding:0 10px!important;
  margin:4px 0 7px!important;
  color:var(--pc42-faint)!important;
  font-size:10.5px!important;
  font-weight:720!important;
  line-height:1!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
.app > .app-sidebar .primary-nav,
.app > .app-sidebar .sidebar-secondary{
  display:grid!important;
  gap:3px!important;
  padding:0!important;
  margin:0!important;
}

/* Normalize both button and link navigation controls. */
.app > .app-sidebar .primary-nav > button,
.app > .app-sidebar .sidebar-secondary > button,
.app > .app-sidebar .sidebar-secondary > a{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:relative!important;
  display:grid!important;
  grid-template-columns:20px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
  min-height:40px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid transparent!important;
  border-radius:8px!important;
  background:transparent!important;
  color:var(--pc42-text)!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:600!important;
  line-height:1.25!important;
  text-align:left!important;
  text-decoration:none!important;
  box-shadow:none!important;
  opacity:1!important;
  filter:none!important;
  cursor:pointer!important;
  transition:background .14s ease,border-color .14s ease,color .14s ease!important;
}
.app > .app-sidebar .primary-nav > button:hover,
.app > .app-sidebar .sidebar-secondary > button:hover,
.app > .app-sidebar .sidebar-secondary > a:hover{
  background:var(--pc42-hover)!important;
  border-color:#f2f4f7!important;
  color:var(--pc42-ink)!important;
}
.app > .app-sidebar .primary-nav > button:focus-visible,
.app > .app-sidebar .sidebar-secondary > button:focus-visible,
.app > .app-sidebar .sidebar-secondary > a:focus-visible{
  outline:2px solid rgba(10,122,104,.24)!important;
  outline-offset:2px!important;
}
.app > .app-sidebar .primary-nav > button.active{
  background:var(--pc42-active)!important;
  border-color:#eaecf0!important;
  color:var(--pc42-ink)!important;
  font-weight:680!important;
  box-shadow:none!important;
}
.app > .app-sidebar .primary-nav > button.active::before{
  content:""!important;
  position:absolute!important;
  left:-1px!important;
  top:9px!important;
  bottom:9px!important;
  width:2px!important;
  border-radius:2px!important;
  background:var(--pc42-accent)!important;
}

.app > .app-sidebar .nav-icon{
  width:20px!important;
  height:20px!important;
  display:grid!important;
  place-items:center!important;
  color:var(--pc42-muted)!important;
  line-height:0!important;
}
.app > .app-sidebar .primary-nav > button.active .nav-icon{color:var(--pc42-accent)!important}
.app > .app-sidebar .nav-icon svg{
  width:17px!important;
  height:17px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.app > .app-sidebar .primary-nav > button > span:nth-child(2),
.app > .app-sidebar .sidebar-secondary > button > span:nth-child(2),
.app > .app-sidebar .sidebar-secondary > a > span:nth-child(2){
  min-width:0!important;
  color:inherit!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.app > .app-sidebar .nav-count{
  min-width:20px!important;
  height:20px!important;
  padding:0 6px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid #fecdca!important;
  border-radius:999px!important;
  background:#fff2f0!important;
  color:#b42318!important;
  font-size:11px!important;
  font-weight:750!important;
  line-height:1!important;
}
.app > .app-sidebar .nav-count[hidden]{display:none!important}

.app > .app-sidebar .sidebar-bottom{
  margin-top:auto!important;
  padding-top:12px!important;
  border-top:1px solid var(--pc42-border)!important;
}
.app > .app-sidebar .sidebar-section-label-bottom{margin-top:0!important}
.app > .app-sidebar .sidebar-env{
  display:flex!important;
  align-items:flex-start!important;
  gap:9px!important;
  margin:12px 2px 0!important;
  padding:10px!important;
  border:1px solid #eaecf0!important;
  border-radius:9px!important;
  background:#fcfcfd!important;
  color:var(--pc42-muted)!important;
  line-height:1.35!important;
}
.app > .app-sidebar .sidebar-env-dot{
  width:7px!important;
  height:7px!important;
  flex:0 0 7px!important;
  margin-top:5px!important;
  border-radius:50%!important;
  background:#12b76a!important;
  box-shadow:0 0 0 3px #ecfdf3!important;
}
.app > .app-sidebar .sidebar-env > span:last-child{display:grid!important;gap:2px!important}
.app > .app-sidebar .sidebar-env strong{
  margin:0!important;
  color:var(--pc42-ink)!important;
  font-size:11.5px!important;
  font-weight:650!important;
}
.app > .app-sidebar .sidebar-env small{
  color:var(--pc42-muted)!important;
  font-size:10.5px!important;
  font-weight:500!important;
}

/* Workspace caret: crisp CSS chevron, never a font glyph. */
.pc-workspace-chevron{
  width:7px!important;
  height:7px!important;
  margin-left:3px!important;
  border-right:1.5px solid #667085!important;
  border-bottom:1.5px solid #667085!important;
  transform:rotate(45deg) translateY(-2px)!important;
  transform-origin:50% 50%!important;
  flex:0 0 auto!important;
}

@media (max-width:980px){
  .app{grid-template-columns:72px minmax(0,1fr)!important}
  .app > .app-sidebar{width:72px!important;min-width:72px!important;padding:14px 9px!important}
  .app > .app-sidebar .brand-lockup{justify-content:center!important;padding:0 0 12px!important}
  .app > .app-sidebar .brand-copy,
  .app > .app-sidebar .sidebar-section-label,
  .app > .app-sidebar .primary-nav > button > span:not(.nav-icon):not(.nav-count),
  .app > .app-sidebar .sidebar-secondary > button > span:not(.nav-icon),
  .app > .app-sidebar .sidebar-secondary > a > span:not(.nav-icon),
  .app > .app-sidebar .sidebar-env{display:none!important}
  .app > .app-sidebar .primary-nav > button,
  .app > .app-sidebar .sidebar-secondary > button,
  .app > .app-sidebar .sidebar-secondary > a{
    display:flex!important;
    justify-content:center!important;
    width:44px!important;
    min-width:44px!important;
    margin-inline:auto!important;
    padding:9px!important;
  }
  .app > .app-sidebar .primary-nav > button.active::before{left:-5px!important}
  .app > .app-sidebar .nav-count{position:absolute!important;right:-2px!important;top:-3px!important}
}

@media (max-width:700px){
  .app{grid-template-columns:1fr!important}
  .app > .app-sidebar{
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    position:sticky!important;
    top:0!important;
    z-index:50!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:6px!important;
    padding:8px 10px!important;
    border-right:0!important;
    border-bottom:1px solid var(--pc42-border)!important;
    overflow-x:auto!important;
  }
  .app > .app-sidebar .brand-lockup{min-height:0!important;padding:0 4px!important;margin:0!important;flex:0 0 auto!important}
  .app > .app-sidebar .brand-mark{width:30px!important;height:30px!important;flex-basis:30px!important}
  .app > .app-sidebar .primary-nav{display:flex!important;gap:3px!important}
  .app > .app-sidebar .sidebar-bottom{display:flex!important;margin:0!important;padding:0!important;border:0!important}
  .app > .app-sidebar .sidebar-secondary{display:flex!important;gap:3px!important}
  .app > .app-sidebar .primary-nav > button,
  .app > .app-sidebar .sidebar-secondary > button,
  .app > .app-sidebar .sidebar-secondary > a{width:40px!important;min-width:40px!important;min-height:38px!important}
  .app > .app-sidebar .primary-nav > button.active::before{left:8px!important;right:8px!important;top:auto!important;bottom:-3px!important;width:auto!important;height:2px!important}
}
