body.momo-v2-body { margin: 0; min-height: 100vh; background: var(--momo-bg-body); color: var(--momo-text-primary); } .momo-shell { display: grid; grid-template-columns: var(--momo-sidebar-width) minmax(0, 1fr); min-height: 100vh; background: var(--momo-bg-body); } .momo-sidebar { position: sticky; top: 0; height: 100vh; z-index: 20; display: flex; flex-direction: column; overflow: hidden; background: #1f1a14; border-right: 1px solid rgba(250, 247, 240, 0.08); } .momo-sidebar-logo { display: flex; align-items: center; gap: 10px; height: var(--momo-topbar-height); padding: 0 20px; color: var(--momo-text-inverse); text-decoration: none; border-bottom: 1px solid rgba(250, 247, 240, 0.08); } .momo-logo-mark { display: grid; flex: 0 0 auto; width: 32px; height: 32px; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 1.5px; padding: 5px; color: var(--momo-ink); background: var(--momo-text-inverse); border-radius: 2px; } .momo-logo-mark span { border-radius: 50%; background: currentColor; } .momo-logo-mark span:nth-child(5) { background: transparent; } .momo-brand-word { display: flex; flex-direction: column; line-height: 1.05; } .momo-brand-name { color: var(--momo-text-inverse); font-size: 18px; font-weight: 800; letter-spacing: -0.02em; } .momo-brand-subtitle { margin-top: 3px; color: rgba(250, 247, 240, 0.55); } .momo-nav { flex: 1; overflow-y: auto; padding: 12px 8px; } .momo-nav-group { margin-bottom: 4px; } .momo-nav-group-title { display: flex; align-items: center; gap: 8px; padding: 14px 12px 8px; color: rgba(250, 247, 240, 0.40); } .momo-nav-group-title::after { content: ""; flex: 1; height: 1px; background: rgba(250, 247, 240, 0.08); } .momo-nav-link { display: flex; align-items: center; gap: 12px; min-height: 38px; margin-bottom: 2px; padding: 9px 12px; border: 1px solid transparent; border-radius: var(--momo-radius-md); color: rgba(250, 247, 240, 0.72); font-size: var(--momo-font-size-sm); font-weight: var(--momo-font-weight-medium); text-decoration: none; transition: var(--momo-transition-base), transform var(--momo-duration-fast) var(--momo-ease-out); } .momo-nav-link:hover { color: var(--momo-text-inverse); background: rgba(250, 247, 240, 0.06); } .momo-nav-link.is-active { color: var(--momo-text-inverse); background: var(--momo-accent); font-weight: var(--momo-font-weight-semibold); } .momo-nav-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; color: inherit; } .momo-nav-label { flex: 1; min-width: 0; } .momo-nav-code { color: currentColor; font-size: 10px; font-weight: 700; opacity: 0.48; } .momo-nav-link.is-active .momo-nav-code { opacity: 0.8; } .momo-nav-badge { min-width: 20px; padding: 1px 6px; border-radius: 2px; color: var(--momo-text-inverse); background: var(--momo-accent); font-size: 10px; font-weight: 800; text-align: center; } .momo-status-card { position: relative; margin: 12px; padding: 14px; overflow: hidden; color: var(--momo-text-inverse); background: var(--momo-ink-strong); border: 1px solid rgba(201, 100, 66, 0.35); border-radius: var(--momo-radius-md); } .momo-status-card::before { position: absolute; inset: 0; content: ""; background-image: radial-gradient(circle, rgba(201, 100, 66, 0.12) 1px, transparent 1px); background-size: 6px 6px; } .momo-status-card > * { position: relative; } .momo-status-title { margin-bottom: 8px; color: rgba(250, 247, 240, 0.55); } .momo-status-active { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 11px; font-weight: 700; } .momo-live-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--momo-accent); box-shadow: 0 0 8px var(--momo-accent); animation: momo-pulse-dot 2s infinite; } .momo-status-meta { color: rgba(250, 247, 240, 0.62); font-size: 10px; line-height: 1.7; } .momo-main-shell { min-width: 0; min-height: 100vh; } .momo-topbar { position: sticky; top: 0; z-index: 15; display: flex; align-items: center; gap: 16px; height: var(--momo-topbar-height); padding: 0 24px; background: var(--momo-bg-surface); border-bottom: 1px solid var(--momo-border-light); } .momo-mobile-menu-button { display: none; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: var(--momo-radius-md); color: var(--momo-text-secondary); background: transparent; transition: var(--momo-transition-base); } .momo-mobile-menu-button:hover { background: var(--momo-bg-subtle); } .momo-search-box { display: flex; flex: 1 1 320px; align-items: center; max-width: 480px; min-width: 0; height: 38px; padding: 0 12px; overflow: hidden; color: var(--momo-text-secondary); background: var(--momo-bg-paper); border: 1px solid var(--momo-border); border-radius: var(--momo-radius-md); font-size: var(--momo-font-size-sm); transition: var(--momo-transition-base); } .momo-search-box:hover { background: var(--momo-bg-elevated); } .momo-search-box i { margin-right: 10px; } .momo-search-input { flex: 1; min-width: 0; padding: 0; overflow: hidden; color: var(--momo-text-primary); background: transparent; border: 0; outline: 0; text-overflow: ellipsis; white-space: nowrap; } .momo-search-input::placeholder { color: var(--momo-text-secondary); opacity: 1; } .momo-shortcut { padding: 2px 6px; color: var(--momo-text-inverse); background: var(--momo-accent); border-radius: 2px; font-size: 10px; font-weight: 700; } .momo-topbar-spacer { flex: 1; } .momo-topbar-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; color: var(--momo-text-inverse); background: var(--momo-ink-strong); border: 1px solid rgba(201, 100, 66, 0.35); border-radius: var(--momo-radius-md); font-size: 11px; } .momo-icon-button { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: var(--momo-radius-md); color: var(--momo-text-secondary); background: transparent; transition: var(--momo-transition-base); } .momo-icon-button:hover { color: var(--momo-text-primary); background: var(--momo-bg-subtle); } .momo-user-chip { display: inline-flex; align-items: center; gap: 8px; min-width: 0; height: 40px; padding: 4px 10px 4px 4px; border: 0; border-radius: var(--momo-radius-pill); color: var(--momo-text-primary); background: transparent; transition: var(--momo-transition-base); } .momo-user-chip:hover { background: var(--momo-bg-subtle); } .momo-avatar { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 32px; height: 32px; color: var(--momo-text-inverse); background: var(--momo-ink); border-radius: var(--momo-radius-circle); font-size: 13px; font-weight: 800; } .momo-user-meta { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; line-height: 1.2; } .momo-user-name { max-width: 96px; overflow: hidden; color: var(--momo-text-primary); font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; } .momo-user-role { color: var(--momo-text-tertiary); font-size: 11px; } .momo-content { min-width: 0; padding: 28px 32px 40px; } .momo-page-title { margin: 0; color: var(--momo-text-primary); font-size: var(--momo-font-size-xl); font-weight: 800; letter-spacing: 0; line-height: var(--momo-line-height-tight); } .momo-page-subtitle { margin-top: 6px; color: var(--momo-text-secondary); font-size: var(--momo-font-size-sm); } .momo-shell-backdrop { display: none; } @media (max-width: 1180px) { .momo-shell { grid-template-columns: var(--momo-sidebar-collapsed-width) minmax(0, 1fr); } .momo-sidebar-logo { justify-content: center; padding: 0; } .momo-brand-word, .momo-nav-group-title, .momo-nav-label, .momo-nav-code, .momo-status-card { display: none; } .momo-nav-link { justify-content: center; padding: 10px; } .momo-nav-badge { position: absolute; width: 8px; min-width: 8px; height: 8px; padding: 0; overflow: hidden; color: transparent; border: 2px solid #1f1a14; border-radius: 50%; transform: translate(12px, -10px); } } @media (max-width: 820px) { .momo-shell { display: block; } .momo-sidebar { position: fixed; left: 0; top: 0; width: var(--momo-sidebar-width); transform: translateX(-100%); transition: transform var(--momo-duration-normal) var(--momo-ease-in-out); } .momo-shell.is-sidebar-open .momo-sidebar { transform: translateX(0); } .momo-shell-backdrop { position: fixed; inset: 0; z-index: 18; display: none; background: var(--momo-bg-backdrop); } .momo-shell.is-sidebar-open .momo-shell-backdrop { display: block; } .momo-brand-word, .momo-nav-group-title, .momo-nav-label, .momo-nav-code, .momo-status-card { display: flex; } .momo-status-card { display: block; } .momo-nav-link { justify-content: flex-start; padding: 9px 12px; } .momo-nav-badge { position: static; width: auto; min-width: 20px; height: auto; padding: 1px 6px; overflow: visible; color: var(--momo-text-inverse); border: 0; border-radius: 2px; transform: none; } .momo-topbar { padding: 0 14px; } .momo-mobile-menu-button { display: inline-flex; } .momo-search-box { flex-basis: 160px; } .momo-shortcut, .momo-topbar-pill, .momo-user-meta { display: none; } .momo-content { padding: 20px 16px 32px; } }