.sidebar { width: 76px; height: 100%; background: var(--color-sidebar-bg); backdrop-filter: var(--bf-glass-md); -webkit-backdrop-filter: var(--bf-glass-md); border-right: 1px solid var(--color-border-modal-soft); /* V2 玻璃顶边白高光 + 右侧立体阴影 */ box-shadow: inset 0 1px 0 var(--color-inset-highlight), 1px 0 0 var(--color-border-soft), 2px 0 12px rgba(0, 0, 0, 0.04); display: flex; flex-direction: column; align-items: center; padding: 16px 0; flex-shrink: 0; z-index: 50; } .logo { margin-bottom: 28px; cursor: pointer; display: flex; align-items: center; justify-content: center; } .navItems { display: flex; flex-direction: column; align-items: center; gap: 4px; } .navItem { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 0; width: 56px; border-radius: 8px; color: var(--color-text-disabled); cursor: pointer; transition: color 0.15s, background 0.15s; font-size: 11px; user-select: none; } .navItem:hover { color: var(--color-text-secondary); background: var(--color-bg-upload); } .navItem.active { color: var(--color-primary); background: var(--color-sidebar-active); } /* Bottom section */ .bottom { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 12px; padding-bottom: 8px; } /* Quota display — 今日剩余生成次数(v0.10.0 起次数制) */ .quota { display: flex; flex-direction: column; align-items: center; gap: 3px; cursor: pointer; padding: 8px 4px; border-radius: 8px; transition: background 0.15s; min-width: 56px; } .quota:hover { background: var(--color-bg-upload); } .quotaNumber { font-size: 18px; font-weight: 600; color: var(--color-text-primary); line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: 0.5px; } .quotaLabel { font-size: 10px; color: var(--color-text-secondary); white-space: nowrap; letter-spacing: 0.5px; } /* Theme toggle (moon/sun) */ .themeToggle { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; border: none; background: transparent; color: var(--color-text-secondary); cursor: pointer; transition: color 0.15s, background 0.15s; padding: 0; } .themeToggle:hover { color: var(--color-primary); background: var(--color-bg-card); } /* Admin button */ .adminBtn { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 8px; color: var(--color-text-disabled); cursor: pointer; transition: color 0.15s, background 0.15s; } .adminBtn:hover { color: var(--color-primary); background: var(--color-bg-card); } /* User avatar */ .avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--color-primary); color: var(--color-on-primary); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; cursor: pointer; transition: opacity 0.15s; } .avatar:hover { opacity: 0.85; } @media (max-width: 767px) { .sidebar { display: none; } }