@font-face {
  font-family: "Zhaobiao Noto Sans SC";
  src: url("/static/fonts/noto-sans-sc/NotoSansSC-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --brand: #2563eb;
  --brand-hover: #1d4ed8;
  --brand-active: #1e40af;
  --brand-soft: #eff6ff;
  --brand-border: #bfdbfe;
  --canvas: #f9fafb;
  --surface: #ffffff;
  --text: #111827;
  --text-secondary: #374151;
  --muted: #6b7280;
  --subtle: #9ca3af;
  --line: #e5e7eb;
  --line-soft: #f0f2f5;
  --success: #16a34a;
  --success-soft: #f0fdf4;
  --warning: #d97706;
  --warning-soft: #fffbeb;
  --danger: #dc2626;
  --danger-soft: #fef2f2;
  --info: #2563eb;
  --info-soft: #eff6ff;
  --control-height-sm: 32px;
  --control-height: 36px;
  --control-height-lg: 40px;
  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 12px;
  --shadow-card: 0 3px 12px rgba(15, 23, 42, 0.035);
  --shadow-popover: 0 16px 40px rgba(15, 23, 42, 0.14);
  --focus-ring: 0 0 0 3px rgba(37, 99, 235, 0.14);
  --duration-fast: 120ms;
  --duration: 180ms;
  --font-ui: "Zhaobiao Noto Sans SC", sans-serif;
  --sidebar-width: 240px;
  --topbar-height: 64px;
  --page-gutter: 24px;
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-width: 1200px;
  min-height: 100%;
}

html {
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

body.product-page {
  min-height: 100vh;
  overflow-x: clip;
  color: var(--text);
  background: var(--canvas);
  font-family: var(--font-ui);
  font-size: 14px;
  font-variant-numeric: tabular-nums lining-nums;
  line-height: 1.4;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

.app-shell {
  display: flex;
  width: 100%;
  min-height: 100vh;
  background: var(--canvas);
}

.app-sidebar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  width: var(--sidebar-width);
  height: 100vh;
  min-height: 100vh;
  flex: 0 0 var(--sidebar-width);
  flex-direction: column;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: var(--surface);
}

.app-brand {
  display: flex;
  height: 64px;
  align-items: center;
  gap: 12px;
  padding: 0 20px;
  border-bottom: 1px solid var(--line);
}

.app-brand > img {
  width: 32px;
  height: 32px;
  padding: 8px;
  border-radius: 8px;
  background: var(--brand);
  object-fit: contain;
}

.app-brand > span {
  display: grid;
}

.app-brand strong {
  font-size: 18px;
  line-height: 22px;
}

.app-brand small {
  color: var(--muted);
  font-size: 10px;
  line-height: 14px;
}

.app-navigation {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 12px 8px;
  scrollbar-color: #cbd5e1 transparent;
  scrollbar-width: thin;
}

.nav-item {
  display: grid;
  width: 100%;
  height: 40px;
  grid-template-columns: 20px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  padding: 0 12px;
  border-radius: 8px;
  color: var(--muted);
  font-size: 14px;
}

.nav-item + .nav-item,
.nav-group + .nav-item {
  margin-top: 4px;
}

.nav-group--single .nav-item {
  grid-template-columns: 20px minmax(0, 1fr);
}

.nav-item > img:first-child {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.nav-chevron {
  width: 16px;
  height: 16px;
  justify-self: end;
  object-fit: contain;
}

.nav-item:hover,
.nav-item.is-active {
  color: var(--brand);
  background: var(--brand-soft);
}

.nav-group {
  margin-top: 4px;
}

.nav-submenu {
  display: none;
  padding: 4px 0;
}

.nav-group.is-open .nav-submenu {
  display: grid;
  gap: 2px;
}

.nav-submenu a {
  position: relative;
  display: flex;
  height: 36px;
  align-items: center;
  padding-left: 62px;
  border-radius: 8px;
  color: #374151;
  font-size: 14px;
}

.nav-submenu a.is-active {
  color: var(--brand);
  background: #eff6ff;
}

.nav-submenu a.is-active span {
  position: absolute;
  left: 43px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
}

.sidebar-project-summary {
  flex: 0 0 84px;
  height: 84px;
  margin: 12px 16px 16px;
  padding: 12px;
  border-radius: 12px;
  background: var(--canvas);
}

.sidebar-project-summary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.sidebar-project-summary span,
.sidebar-project-summary small,
.sidebar-project-summary a {
  color: var(--muted);
  font-size: 10px;
}

.sidebar-project-summary strong,
.sidebar-project-summary a {
  color: var(--brand);
}

.sidebar-project-counts {
  margin-top: 9px;
  gap: 10px;
}

.sidebar-project-counts > span {
  display: grid;
  min-width: 0;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  gap: 4px;
}

.sidebar-project-counts strong {
  font-size: 16px;
  line-height: 20px;
}

.app-main {
  width: calc(100% - var(--sidebar-width));
  min-height: 100vh;
  min-width: 0;
  background: var(--canvas);
}

.app-main > main.product-content-canvas {
  width: 100%;
  max-width: none;
  margin-right: 0;
  margin-left: 0;
  padding: var(--page-gutter);
}

.app-topbar {
  position: relative;
  z-index: 10;
  display: flex;
  width: 100%;
  height: var(--topbar-height);
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--page-gutter);
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
  font-size: 14px;
}

.breadcrumb a,
.breadcrumb span {
  color: var(--muted);
}

.breadcrumb strong {
  font-weight: 500;
}

.topbar-actions {
  display: flex;
  width: auto;
  height: 44px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  margin-left: auto;
}

.global-search {
  position: relative;
  width: 256px;
  height: 36px;
  flex: 0 0 256px;
}

.global-search img {
  position: absolute;
  z-index: 1;
  top: 10px;
  left: 12px;
  width: 16px;
  height: 16px;
}

.global-search input {
  width: 100%;
  height: 100%;
  padding: 0 12px 0 36px;
  border: 1px solid var(--line);
  border-radius: 8px;
  outline: none;
  color: #374151;
  background: var(--canvas);
}

.global-search input:focus {
  border-color: #93c5fd;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.notification-button,
.user-menu {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.notification-button {
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
}

.notification-button img {
  width: 20px;
  height: 20px;
}

.points-link,
.support-link {
  display: flex;
  height: 36px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}

.points-link {
  width: 106px;
  flex: 0 0 106px;
  border-radius: 8px;
  background: #eff6ff;
}

.points-link img,
.support-link img {
  width: 16px;
  height: 16px;
}

.points-link strong {
  color: var(--brand);
  font-size: 16px;
}

.points-link span,
.support-link span {
  color: var(--muted);
  font-size: 12px;
}

.support-link {
  width: 94px;
  flex: 0 0 94px;
}

.user-menu {
  display: grid;
  width: 136px;
  height: 44px;
  flex: 0 0 136px;
  grid-template-columns: 36px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 5px;
  text-align: left;
}

.user-avatar {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  color: var(--brand);
  background: #eff6ff;
  font-weight: 600;
}

.user-copy {
  display: grid;
  min-width: 0;
}

.user-copy strong,
.user-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.user-copy strong {
  font-size: 13px;
}

.user-copy small {
  color: var(--muted);
  font-size: 10px;
}

.user-menu > img {
  width: 16px;
  height: 16px;
}

.primary-button {
  display: inline-flex;
  height: 40px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: var(--brand);
  box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.2), 0 4px 6px -4px rgba(37, 99, 235, 0.2);
  cursor: pointer;
  font-weight: 500;
}

.primary-button:hover {
  background: #1d4ed8;
}

.primary-button:focus-visible,
.nav-item:focus-visible,
.nav-submenu a:focus-visible,
.asset-card:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}


.topbar-popover-anchor{position:relative;display:flex}.notification-button{position:relative}.notification-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#ef4444}.topbar-popover{position:absolute;z-index:60;top:48px;right:0;width:300px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 18px 40px rgba(15,23,42,.14)}.topbar-popover[hidden]{display:none}.topbar-popover header{display:flex;min-height:48px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #f0f2f5}.topbar-popover header a{color:var(--brand);font-size:12px}.topbar-popover>a{display:grid;gap:3px;padding:12px 14px;border-bottom:1px solid #f0f2f5}.topbar-popover>a:last-child{border-bottom:0}.topbar-popover>a:hover{background:#f8fafc}.topbar-popover>a strong{font-size:13px}.topbar-popover>a span{color:var(--muted);font-size:11px}.user-popover{width:160px;padding:6px}.user-popover>a{display:flex;min-height:36px;align-items:center;padding:0 10px;border:0;border-radius:7px}@media(max-width:1440px){.topbar-actions{gap:10px}.global-search{width:220px;flex-basis:220px}.support-link{width:82px;flex-basis:82px}.points-link{width:96px;flex-basis:96px}}@media(max-width:1280px){.app-topbar{padding:0 var(--page-gutter)}.global-search{width:190px;flex-basis:190px}.support-link span,.points-link span{display:none}.support-link{width:36px;flex-basis:36px}.points-link{width:72px;flex-basis:72px}.user-menu{width:102px;flex-basis:102px;grid-template-columns:32px minmax(0,1fr) 14px}.user-avatar{width:32px;height:32px}}
