.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 216px minmax(0, 1fr);
  background: var(--app-canvas);
  transition: grid-template-columns .18s ease;
}
.app-shell.is-sidebar-collapsed { grid-template-columns: 72px minmax(0, 1fr); }
.app-main { min-width: 0; }
.app-workspace {
  min-width: 0;
  min-height: calc(100vh - 54px);
  background-color: var(--app-canvas);
  background-image:
    linear-gradient(rgba(113, 82, 58, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(113, 82, 58, .025) 1px, transparent 1px);
  background-size: 32px 32px;
}
.app-workspace > .page {
  width: min(100%, 1600px);
  max-width: 1600px;
  margin: 0 auto;
  padding: 22px 24px 42px;
}
.app-workspace--immersive > * { max-width: none; }

.app-sidebar {
  position: sticky;
  top: 0;
  z-index: 40;
  height: 100vh;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 16px 13px 13px;
  background: var(--app-sidebar);
  color: #fff;
}
.app-sidebar__brand {
  min-height: 45px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 2px 7px 13px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  color: #fff;
  text-decoration: none;
}
.app-sidebar__brand:hover { color: #fff; }
.app-sidebar__brandmark {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 10px;
  background: var(--app-brand);
}
.app-sidebar__brandmark img { width: 40px; height: 40px; object-fit: contain; }
.app-sidebar__brandcopy { min-width: 0; }
.app-sidebar__brandcopy strong,
.app-sidebar__brandcopy small { display: block; white-space: nowrap; }
.app-sidebar__brandcopy strong { font-size: 15px; }
.app-sidebar__brandcopy small { margin-top: 2px; color: #bbaa9d; font-size: 8px; font-weight: 800; letter-spacing: .11em; }
.app-sidebar__context { margin: 13px 3px 7px; padding: 11px 11px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 9px; background: rgba(255, 255, 255, .04); }
.app-sidebar__context span,
.app-sidebar__context strong { display: block; white-space: nowrap; }
.app-sidebar__context span { color: #a89689; font-size: 10px; }
.app-sidebar__context strong { margin-top: 4px; font-size: 12px; }

.app-nav { flex: 1; overflow-y: auto; padding: 3px 0 16px; scrollbar-width: none; }
.app-nav::-webkit-scrollbar { display: none; }
.app-nav__group { margin-top: 12px; }
.app-nav__group-label { display: block; padding: 0 11px 6px; color: #8e7d72; font-size: 9px; font-weight: 800; letter-spacing: .12em; white-space: nowrap; }
.app-nav__item,
.app-nav__section-title {
  position: relative;
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 3px 0;
  padding: 5px 9px;
  border-radius: 9px;
  color: #c8bbb2;
  font-size: 13px;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}
.app-nav__item:hover { background: rgba(255, 255, 255, .055); color: #fff; }
.app-nav__item > i,
.app-nav__section-title > i {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 7px;
  background: rgba(255, 255, 255, .06);
  font-size: 17px;
}
.app-nav__item.is-active,
.app-nav__section.is-current > .app-nav__section-title { background: #59331f; color: #fff; }
.app-nav__item.is-active::before,
.app-nav__section.is-current > .app-nav__section-title::before {
  content: "";
  position: absolute;
  left: -13px;
  top: 9px;
  bottom: 9px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--app-brand);
}
.app-nav__item.is-active > i,
.app-nav__section.is-current > .app-nav__section-title > i { background: var(--app-brand); }
.app-nav__children { display: none; margin: 1px 0 7px 41px; padding-left: 9px; border-left: 1px solid rgba(255, 255, 255, .1); }
.app-nav__section.is-current .app-nav__children { display: grid; }
.app-nav__children a { position: relative; padding: 6px 7px; border-radius: 6px; color: #a99a90; font-size: 11px; font-weight: 600; text-decoration: none; }
.app-nav__children a:hover { color: #fff; background: rgba(255, 255, 255, .045); }
.app-nav__children a.is-active { color: #fff; }
.app-nav__children a.is-active::before { content: ""; position: absolute; left: -12px; top: 11px; width: 5px; height: 5px; border-radius: 50%; background: var(--app-brand); }

.app-sidebar__footer { min-height: 55px; display: flex; align-items: center; gap: 8px; padding: 11px 4px 0; border-top: 1px solid rgba(255, 255, 255, .1); }
.app-account-summary { min-width: 0; flex: 1; display: flex; align-items: center; gap: 9px; color: #fff; text-decoration: none; }
.app-account-summary:hover { color: #fff; }
.app-account-summary > span { width: 31px; height: 31px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff1d5; color: #8a512b; font-size: 12px; font-weight: 850; }
.app-account-summary strong,
.app-account-summary small { display: block; white-space: nowrap; }
.app-account-summary strong { font-size: 11px; }.app-account-summary small { margin-top: 2px; color: #a89689; font-size: 8px; }
.app-sidebar__collapse { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255, 255, 255, .12); border-radius: 8px; background: transparent; color: #c8bbb2; cursor: pointer; }
.app-sidebar__collapse:hover { color: #fff; background: rgba(255, 255, 255, .06); }

.app-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 0 22px;
  border-bottom: 1px solid var(--app-line);
  background: rgba(255, 252, 248, .94);
  backdrop-filter: blur(12px);
}
.app-topbar__path,
.app-topbar__actions { display: flex; align-items: center; gap: 9px; }
.app-topbar__path strong { font-size: 13px; }.app-topbar__path span { color: #c4b5a9; }.app-topbar__path small { color: var(--app-muted); font-size: 10px; }
.app-topbar__menu { display: none; width: 33px; height: 33px; place-items: center; border: 1px solid var(--app-line); border-radius: 8px; background: #fff; color: #6e5f55; cursor: pointer; }
.app-icon-button { position: relative; width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid var(--app-line); border-radius: 8px; background: #fff; color: #71645a; text-decoration: none; cursor: pointer; }
.app-icon-button:hover { border-color: #e4bd96; color: var(--app-brand-dark); }
.app-icon-button--notice > span { position: absolute; right: 6px; top: 6px; width: 6px; height: 6px; border: 1px solid #fff; border-radius: 50%; background: var(--app-brand); }
.app-user-menu { position: relative; }
.app-user-menu summary { min-height: 35px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--app-line); border-radius: 9px; background: #fff; list-style: none; cursor: pointer; }
.app-user-menu summary::-webkit-details-marker { display: none; }
.app-user-menu summary span { font-size: 11px; font-weight: 750; }.app-user-menu summary small { color: var(--app-muted); font-size: 9px; }
.app-user-menu__popover { position: absolute; right: 0; top: calc(100% + 8px); width: 168px; padding: 6px; border: 1px solid var(--app-line); border-radius: 10px; background: #fff; box-shadow: var(--app-shadow); }
.app-user-menu__popover a,
.app-user-menu__popover button { width: 100%; min-height: 36px; display: flex; align-items: center; gap: 8px; padding: 0 9px; border: 0; border-radius: 7px; background: transparent; color: #5f5148; font-size: 11px; text-decoration: none; cursor: pointer; }
.app-user-menu__popover a:hover,
.app-user-menu__popover button:hover { background: var(--app-warm); color: var(--app-brand-dark); }
.app-user-menu__popover form { margin: 0; }
.app-sidebar-backdrop { display: none; }

.app-shell.is-sidebar-collapsed .app-sidebar { padding-inline: 10px; }
.app-shell.is-sidebar-collapsed .app-sidebar__brandcopy,
.app-shell.is-sidebar-collapsed .app-sidebar__context,
.app-shell.is-sidebar-collapsed .app-nav__group-label,
.app-shell.is-sidebar-collapsed .app-nav__item span,
.app-shell.is-sidebar-collapsed .app-nav__section-title span,
.app-shell.is-sidebar-collapsed .app-nav__children,
.app-shell.is-sidebar-collapsed .app-account-summary div { display: none; }
.app-shell.is-sidebar-collapsed .app-sidebar__brand,
.app-shell.is-sidebar-collapsed .app-nav__item,
.app-shell.is-sidebar-collapsed .app-nav__section-title { justify-content: center; padding-inline: 0; }
.app-shell.is-sidebar-collapsed .app-sidebar__footer { flex-direction: column; justify-content: center; }
.app-shell.is-sidebar-collapsed .app-account-summary { flex: 0 0 auto; }
.app-shell.is-sidebar-collapsed .app-nav__item.is-active::before,
.app-shell.is-sidebar-collapsed .app-nav__section.is-current > .app-nav__section-title::before { left: -10px; }

/* 平板保留完整导航，确保一级菜单展开后可以直接选择子菜单。 */
@media (max-width: 1280px) and (min-width: 780px) {
  .app-shell,
  .app-shell.is-sidebar-collapsed { grid-template-columns: clamp(216px, 23vw, 248px) minmax(0, 1fr); }
  .app-shell .app-sidebar,
  .app-shell.is-sidebar-collapsed .app-sidebar { padding-inline: 13px; }
  .app-shell.is-sidebar-collapsed .app-sidebar__brandcopy,
  .app-shell.is-sidebar-collapsed .app-sidebar__context,
  .app-shell.is-sidebar-collapsed .app-nav__group-label,
  .app-shell.is-sidebar-collapsed .app-nav__item span,
  .app-shell.is-sidebar-collapsed .app-nav__section-title span,
  .app-shell.is-sidebar-collapsed .app-account-summary div { display: block; }
  .app-shell .app-sidebar__brand,
  .app-shell .app-nav__item,
  .app-shell .app-nav__section-title,
  .app-shell.is-sidebar-collapsed .app-sidebar__brand,
  .app-shell.is-sidebar-collapsed .app-nav__item,
  .app-shell.is-sidebar-collapsed .app-nav__section-title { justify-content: flex-start; padding-inline: 9px; }
  .app-shell .app-nav__section.is-expanded .app-nav__children { display: grid; }
  .app-shell .app-sidebar__footer,
  .app-shell.is-sidebar-collapsed .app-sidebar__footer { flex-direction: row; justify-content: flex-start; }
  .app-shell .app-account-summary,
  .app-shell.is-sidebar-collapsed .app-account-summary { flex: 1; }
  .app-sidebar__collapse { display: none; }
  .app-nav__item.is-active::before,
  .app-nav__section.is-current > .app-nav__section-title::before { left: -13px; }
}

@media (max-width: 779px) {
  .app-shell,
  .app-shell.is-sidebar-collapsed { display: block; }
  .app-sidebar { position: fixed; left: 0; top: 0; width: 216px; visibility: hidden; transform: translateX(-105%); box-shadow: 20px 0 50px rgba(46, 37, 31, .22); transition: transform .18s ease, visibility 0s linear .18s; }
  .app-shell.is-sidebar-open .app-sidebar { visibility: visible; transform: translateX(0); transition-delay: 0s; }
  .app-sidebar-backdrop { position: fixed; inset: 0; z-index: 35; border: 0; background: rgba(46, 37, 31, .42); }
  .app-shell.is-sidebar-open .app-sidebar-backdrop { display: block; }
  .app-topbar { padding-inline: 13px; }.app-topbar__menu { display: grid; }
  .app-user-menu summary small { display: none; }
  .app-workspace > .page { padding: 17px 14px 32px; }
}
